@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.
Files changed (182) hide show
  1. package/dist/module/lib/Components/Axis/Axis.constants.js +21 -0
  2. package/dist/module/lib/Components/Axis/Axis.constants.js.map +1 -0
  3. package/dist/module/lib/Components/Axis/index.js +5 -0
  4. package/dist/module/lib/Components/Axis/index.js.map +1 -0
  5. package/dist/module/lib/Components/CartesianChart/CartesianChart.js +34 -22
  6. package/dist/module/lib/Components/CartesianChart/CartesianChart.js.map +1 -1
  7. package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.js +5 -4
  8. package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.js.map +1 -1
  9. package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.test.js +54 -0
  10. package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.test.js.map +1 -1
  11. package/dist/module/lib/Components/CartesianChart/utils.js +18 -8
  12. package/dist/module/lib/Components/CartesianChart/utils.js.map +1 -1
  13. package/dist/module/lib/Components/Line/utils.js +6 -1
  14. package/dist/module/lib/Components/Line/utils.js.map +1 -1
  15. package/dist/module/lib/Components/Line/utils.test.js +88 -0
  16. package/dist/module/lib/Components/Line/utils.test.js.map +1 -0
  17. package/dist/module/lib/Components/LineChart/LineChart.js +19 -31
  18. package/dist/module/lib/Components/LineChart/LineChart.js.map +1 -1
  19. package/dist/module/lib/Components/LineChart/LineChart.stories.js +38 -0
  20. package/dist/module/lib/Components/LineChart/LineChart.stories.js.map +1 -1
  21. package/dist/module/lib/Components/LineChart/LineChart.test.js +192 -0
  22. package/dist/module/lib/Components/LineChart/LineChart.test.js.map +1 -1
  23. package/dist/module/lib/Components/Point/Point.js +8 -2
  24. package/dist/module/lib/Components/Point/Point.js.map +1 -1
  25. package/dist/module/lib/Components/Point/constants.js +9 -0
  26. package/dist/module/lib/Components/Point/constants.js.map +1 -0
  27. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.js +35 -0
  28. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.js.map +1 -0
  29. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.test.js +153 -0
  30. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.test.js.map +1 -0
  31. package/dist/module/lib/Components/Point/pointContext/index.js +5 -0
  32. package/dist/module/lib/Components/Point/pointContext/index.js.map +1 -0
  33. package/dist/module/lib/Components/Point/pointContext/magneticPointsContext.js +10 -0
  34. package/dist/module/lib/Components/Point/pointContext/magneticPointsContext.js.map +1 -0
  35. package/dist/module/lib/Components/Point/utils.js +26 -6
  36. package/dist/module/lib/Components/Point/utils.js.map +1 -1
  37. package/dist/module/lib/Components/Point/utils.test.js +84 -2
  38. package/dist/module/lib/Components/Point/utils.test.js.map +1 -1
  39. package/dist/module/lib/Components/ReferenceLine/utils.js.map +1 -1
  40. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.js +52 -0
  41. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.js.map +1 -0
  42. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.js +81 -0
  43. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.js.map +1 -0
  44. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.test.js +340 -0
  45. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.test.js.map +1 -0
  46. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/constants.js +12 -0
  47. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/constants.js.map +1 -0
  48. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js +166 -0
  49. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js.map +1 -0
  50. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.js +253 -0
  51. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.js.map +1 -0
  52. package/dist/module/lib/Components/Scrubber/Scrubber.js +40 -21
  53. package/dist/module/lib/Components/Scrubber/Scrubber.js.map +1 -1
  54. package/dist/module/lib/Components/Scrubber/Scrubber.stories.js +80 -30
  55. package/dist/module/lib/Components/Scrubber/Scrubber.stories.js.map +1 -1
  56. package/dist/module/lib/Components/Scrubber/Scrubber.test.js +10 -5
  57. package/dist/module/lib/Components/Scrubber/Scrubber.test.js.map +1 -1
  58. package/dist/module/lib/Components/Scrubber/ScrubberProvider.js +81 -29
  59. package/dist/module/lib/Components/Scrubber/ScrubberProvider.js.map +1 -1
  60. package/dist/module/lib/Components/Scrubber/utils.js +64 -0
  61. package/dist/module/lib/Components/Scrubber/utils.js.map +1 -1
  62. package/dist/module/lib/Components/Scrubber/utils.test.js +128 -1
  63. package/dist/module/lib/Components/Scrubber/utils.test.js.map +1 -1
  64. package/dist/module/lib/utils/domain/domain.js.map +1 -1
  65. package/dist/module/lib/utils/scales/scales.js +13 -4
  66. package/dist/module/lib/utils/scales/scales.js.map +1 -1
  67. package/dist/module/lib/utils/scales/scales.test.js +29 -0
  68. package/dist/module/lib/utils/scales/scales.test.js.map +1 -1
  69. package/dist/module/lib/utils/ticks/ticks.js +13 -3
  70. package/dist/module/lib/utils/ticks/ticks.js.map +1 -1
  71. package/dist/module/lib/utils/ticks/ticks.test.js +34 -0
  72. package/dist/module/lib/utils/ticks/ticks.test.js.map +1 -1
  73. package/dist/typescript/src/lib/Components/Axis/Axis.constants.d.ts +5 -0
  74. package/dist/typescript/src/lib/Components/Axis/Axis.constants.d.ts.map +1 -0
  75. package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts +39 -0
  76. package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts.map +1 -1
  77. package/dist/typescript/src/lib/Components/Axis/index.d.ts +3 -0
  78. package/dist/typescript/src/lib/Components/Axis/index.d.ts.map +1 -0
  79. package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts +1 -1
  80. package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts.map +1 -1
  81. package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts +5 -4
  82. package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts.map +1 -1
  83. package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts +11 -3
  84. package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts.map +1 -1
  85. package/dist/typescript/src/lib/Components/CartesianChart/utils.d.ts +18 -8
  86. package/dist/typescript/src/lib/Components/CartesianChart/utils.d.ts.map +1 -1
  87. package/dist/typescript/src/lib/Components/Line/utils.d.ts +4 -0
  88. package/dist/typescript/src/lib/Components/Line/utils.d.ts.map +1 -1
  89. package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts +1 -1
  90. package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts.map +1 -1
  91. package/dist/typescript/src/lib/Components/LineChart/types.d.ts +10 -3
  92. package/dist/typescript/src/lib/Components/LineChart/types.d.ts.map +1 -1
  93. package/dist/typescript/src/lib/Components/Point/Point.d.ts +1 -1
  94. package/dist/typescript/src/lib/Components/Point/Point.d.ts.map +1 -1
  95. package/dist/typescript/src/lib/Components/Point/constants.d.ts +7 -0
  96. package/dist/typescript/src/lib/Components/Point/constants.d.ts.map +1 -0
  97. package/dist/typescript/src/lib/Components/Point/pointContext/MagneticPointsProvider.d.ts +7 -0
  98. package/dist/typescript/src/lib/Components/Point/pointContext/MagneticPointsProvider.d.ts.map +1 -0
  99. package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts +3 -0
  100. package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts.map +1 -0
  101. package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts +13 -0
  102. package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts.map +1 -0
  103. package/dist/typescript/src/lib/Components/Point/types.d.ts +7 -0
  104. package/dist/typescript/src/lib/Components/Point/types.d.ts.map +1 -1
  105. package/dist/typescript/src/lib/Components/Point/utils.d.ts +8 -6
  106. package/dist/typescript/src/lib/Components/Point/utils.d.ts.map +1 -1
  107. package/dist/typescript/src/lib/Components/ReferenceLine/utils.d.ts +3 -2
  108. package/dist/typescript/src/lib/Components/ReferenceLine/utils.d.ts.map +1 -1
  109. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts +9 -0
  110. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts.map +1 -0
  111. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts +12 -0
  112. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts.map +1 -0
  113. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/constants.d.ts +10 -0
  114. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/constants.d.ts.map +1 -0
  115. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.d.ts +69 -0
  116. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.d.ts.map +1 -0
  117. package/dist/typescript/src/lib/Components/Scrubber/Scrubber.d.ts +14 -2
  118. package/dist/typescript/src/lib/Components/Scrubber/Scrubber.d.ts.map +1 -1
  119. package/dist/typescript/src/lib/Components/Scrubber/ScrubberProvider.d.ts +1 -1
  120. package/dist/typescript/src/lib/Components/Scrubber/ScrubberProvider.d.ts.map +1 -1
  121. package/dist/typescript/src/lib/Components/Scrubber/index.d.ts +1 -1
  122. package/dist/typescript/src/lib/Components/Scrubber/index.d.ts.map +1 -1
  123. package/dist/typescript/src/lib/Components/Scrubber/types.d.ts +116 -4
  124. package/dist/typescript/src/lib/Components/Scrubber/types.d.ts.map +1 -1
  125. package/dist/typescript/src/lib/Components/Scrubber/utils.d.ts +33 -3
  126. package/dist/typescript/src/lib/Components/Scrubber/utils.d.ts.map +1 -1
  127. package/dist/typescript/src/lib/utils/domain/domain.d.ts +5 -4
  128. package/dist/typescript/src/lib/utils/domain/domain.d.ts.map +1 -1
  129. package/dist/typescript/src/lib/utils/index.d.ts +1 -1
  130. package/dist/typescript/src/lib/utils/index.d.ts.map +1 -1
  131. package/dist/typescript/src/lib/utils/scales/scales.d.ts +11 -5
  132. package/dist/typescript/src/lib/utils/scales/scales.d.ts.map +1 -1
  133. package/dist/typescript/src/lib/utils/ticks/ticks.d.ts +13 -5
  134. package/dist/typescript/src/lib/utils/ticks/ticks.d.ts.map +1 -1
  135. package/dist/typescript/src/lib/utils/types.d.ts +3 -28
  136. package/dist/typescript/src/lib/utils/types.d.ts.map +1 -1
  137. package/package.json +4 -4
  138. package/src/lib/Components/Axis/Axis.constants.ts +23 -0
  139. package/src/lib/Components/Axis/Axis.types.ts +40 -0
  140. package/src/lib/Components/Axis/index.ts +2 -0
  141. package/src/lib/Components/CartesianChart/CartesianChart.tsx +39 -24
  142. package/src/lib/Components/CartesianChart/context/useBuildChartContext.test.ts +56 -0
  143. package/src/lib/Components/CartesianChart/context/useBuildChartContext.ts +8 -8
  144. package/src/lib/Components/CartesianChart/types.ts +11 -3
  145. package/src/lib/Components/CartesianChart/utils.ts +18 -8
  146. package/src/lib/Components/Line/utils.test.ts +90 -0
  147. package/src/lib/Components/Line/utils.ts +6 -1
  148. package/src/lib/Components/LineChart/LineChart.stories.tsx +36 -0
  149. package/src/lib/Components/LineChart/LineChart.test.tsx +156 -0
  150. package/src/lib/Components/LineChart/LineChart.tsx +30 -40
  151. package/src/lib/Components/LineChart/types.ts +10 -3
  152. package/src/lib/Components/Point/Point.tsx +9 -3
  153. package/src/lib/Components/Point/constants.ts +6 -0
  154. package/src/lib/Components/Point/pointContext/MagneticPointsProvider.test.tsx +162 -0
  155. package/src/lib/Components/Point/pointContext/MagneticPointsProvider.tsx +45 -0
  156. package/src/lib/Components/Point/pointContext/index.ts +5 -0
  157. package/src/lib/Components/Point/pointContext/magneticPointsContext.ts +19 -0
  158. package/src/lib/Components/Point/types.ts +7 -0
  159. package/src/lib/Components/Point/utils.test.ts +95 -5
  160. package/src/lib/Components/Point/utils.ts +35 -7
  161. package/src/lib/Components/ReferenceLine/utils.ts +4 -7
  162. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.tsx +54 -0
  163. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.test.tsx +259 -0
  164. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.tsx +105 -0
  165. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/constants.ts +9 -0
  166. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.ts +264 -0
  167. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.ts +243 -0
  168. package/src/lib/Components/Scrubber/Scrubber.stories.tsx +104 -42
  169. package/src/lib/Components/Scrubber/Scrubber.test.tsx +7 -5
  170. package/src/lib/Components/Scrubber/Scrubber.tsx +47 -24
  171. package/src/lib/Components/Scrubber/ScrubberProvider.tsx +92 -28
  172. package/src/lib/Components/Scrubber/index.ts +10 -1
  173. package/src/lib/Components/Scrubber/types.ts +122 -4
  174. package/src/lib/Components/Scrubber/utils.test.ts +150 -0
  175. package/src/lib/Components/Scrubber/utils.ts +93 -3
  176. package/src/lib/utils/domain/domain.ts +6 -5
  177. package/src/lib/utils/index.ts +0 -2
  178. package/src/lib/utils/scales/scales.test.ts +19 -0
  179. package/src/lib/utils/scales/scales.ts +15 -9
  180. package/src/lib/utils/ticks/ticks.test.ts +45 -0
  181. package/src/lib/utils/ticks/ticks.ts +19 -9
  182. 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","label","i"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/Scrubber.test.tsx"],"mappings":"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","ignoreList":[]}
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 isScrubbing = useSharedValue(false);
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 clamped = index === undefined || dataLength <= 0 ? undefined : Math.max(0, Math.min(index, dataLength - 1));
43
- if (clamped === lastPositionRef.current) return;
44
- lastPositionRef.current = clamped;
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
- onScrubberPositionChange?.(clamped);
47
- }, [dataLength, onScrubberPositionChange]);
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 scale = getXScale();
54
- if (!scale || dataLength <= 0) return;
55
- const axisConfig = getXAxisConfig();
56
- const index = getDataIndexFromPosition(pixelX, scale, axisConfig, dataLength);
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
- }, [getXScale, getXAxisConfig, dataLength, setScrubberPositionAndNotify]);
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(50).onStart(e => {
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: /*#__PURE__*/_jsxs(View, {
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","scrubberPosition","setScrubberPosition","lastPositionRef","undefined","getXScale","getXAxisConfig","dataLength","isScrubbing","setScrubberPositionAndNotify","index","clamped","Math","max","min","current","handlePositionChange","pixelX","scale","axisConfig","resetScrubber","value","composed","longPress","LongPress","minDuration","onStart","e","x","pan","Pan","manualActivation","onTouchesMove","_","manager","activate","onUpdate","onEnd","onFinalize","Simultaneous","contextValue","style","gesture","testID","absoluteFill"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/ScrubberProvider.tsx"],"mappings":"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","ignoreList":[]}
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":"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","ignoreList":[]}
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":"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","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":"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","ignoreList":[]}
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 with `.nice()` applied so the domain
6
- * extends to clean rounded boundaries (e.g. `[4, 98]` → `[0, 100]`).
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
- return scale.domain([domain.min, domain.max]).nice().range([range.min, range.max]);
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","nice","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;AAU3D;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,SAAS;EACTC,MAAM;EACNC;AAKF,CAAC,KAAmB;EAClB,MAAMC,KAAK,GAAGH,SAAS,KAAK,KAAK,GAAGF,QAAQ,CAAC,CAAC,GAAGD,WAAW,CAAC,CAAC;EAC9D,OAAOM,KAAK,CACTF,MAAM,CAAC,CAACA,MAAM,CAACG,GAAG,EAAEH,MAAM,CAACI,GAAG,CAAC,CAAC,CAChCC,IAAI,CAAC,CAAC,CACNJ,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,OAAO,MAAME,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,CAACI,GAAG,GAAGJ,MAAM,CAACG,GAAG,GAAG;EAAE,CAAC,EACvC,CAACS,CAAC,EAAEC,CAAC,KAAKb,MAAM,CAACG,GAAG,GAAGU,CACzB,CAAC;EACD,OAAOlB,SAAS,CAAS,CAAC,CACvBK,MAAM,CAACQ,WAAW,CAAC,CACnBP,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC,CAC7BU,YAAY,CAACP,OAAO,CAAC,CACrBQ,YAAY,CAACR,OAAO,GAAG,CAAC,CAAC;AAC9B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,eAAe,GAC1BjB,SAAuC,IACfA,SAAS,KAAK,MAAM;;AAE9C;AACA;AACA;AACA,OAAO,MAAMkB,kBAAkB,GAC7Bf,KAAyB,IACK;EAC9B,OAAO,WAAW,IAAIA,KAAK,IAAI,OAAOA,KAAK,CAACgB,SAAS,KAAK,UAAU;AACtE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBjB,KAAyB,IACC;EAC1B,OAAO,CAACe,kBAAkB,CAACf,KAAK,CAAC;AACnC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMkB,eAAe,GAAGA,CAC7BC,SAAiB,EACjBnB,KAAyB,KACd;EACX,IAAIe,kBAAkB,CAACf,KAAK,CAAC,EAAE;IAC7B,OAAO,CAACA,KAAK,CAACmB,SAAS,CAAC,IAAI,CAAC,IAAInB,KAAK,CAACgB,SAAS,CAAC,CAAC,GAAG,CAAC;EACxD;EACA,OAAOhB,KAAK,CAACmB,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":[]}
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', () => {