@ledgerhq/lumen-ui-rnative-visualization 0.1.14 → 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 (152) 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/DefaultScrubberTooltip.test.js +4 -4
  41. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js +31 -10
  42. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js.map +1 -1
  43. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.js +4 -4
  44. package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.js.map +1 -1
  45. package/dist/module/lib/Components/Scrubber/ScrubberProvider.js +35 -7
  46. package/dist/module/lib/Components/Scrubber/ScrubberProvider.js.map +1 -1
  47. package/dist/module/lib/Components/Scrubber/utils.js +64 -0
  48. package/dist/module/lib/Components/Scrubber/utils.js.map +1 -1
  49. package/dist/module/lib/Components/Scrubber/utils.test.js +128 -1
  50. package/dist/module/lib/Components/Scrubber/utils.test.js.map +1 -1
  51. package/dist/module/lib/utils/domain/domain.js.map +1 -1
  52. package/dist/module/lib/utils/scales/scales.js +13 -4
  53. package/dist/module/lib/utils/scales/scales.js.map +1 -1
  54. package/dist/module/lib/utils/scales/scales.test.js +29 -0
  55. package/dist/module/lib/utils/scales/scales.test.js.map +1 -1
  56. package/dist/module/lib/utils/ticks/ticks.js +13 -3
  57. package/dist/module/lib/utils/ticks/ticks.js.map +1 -1
  58. package/dist/module/lib/utils/ticks/ticks.test.js +34 -0
  59. package/dist/module/lib/utils/ticks/ticks.test.js.map +1 -1
  60. package/dist/typescript/src/lib/Components/Axis/Axis.constants.d.ts +5 -0
  61. package/dist/typescript/src/lib/Components/Axis/Axis.constants.d.ts.map +1 -0
  62. package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts +39 -0
  63. package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts.map +1 -1
  64. package/dist/typescript/src/lib/Components/Axis/index.d.ts +3 -0
  65. package/dist/typescript/src/lib/Components/Axis/index.d.ts.map +1 -0
  66. package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts +1 -1
  67. package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts.map +1 -1
  68. package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts +5 -4
  69. package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts.map +1 -1
  70. package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts +11 -3
  71. package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts.map +1 -1
  72. package/dist/typescript/src/lib/Components/CartesianChart/utils.d.ts +18 -8
  73. package/dist/typescript/src/lib/Components/CartesianChart/utils.d.ts.map +1 -1
  74. package/dist/typescript/src/lib/Components/Line/utils.d.ts +4 -0
  75. package/dist/typescript/src/lib/Components/Line/utils.d.ts.map +1 -1
  76. package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts +1 -1
  77. package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts.map +1 -1
  78. package/dist/typescript/src/lib/Components/LineChart/types.d.ts +10 -3
  79. package/dist/typescript/src/lib/Components/LineChart/types.d.ts.map +1 -1
  80. package/dist/typescript/src/lib/Components/Point/Point.d.ts +1 -1
  81. package/dist/typescript/src/lib/Components/Point/Point.d.ts.map +1 -1
  82. package/dist/typescript/src/lib/Components/Point/constants.d.ts +7 -0
  83. package/dist/typescript/src/lib/Components/Point/constants.d.ts.map +1 -0
  84. package/dist/typescript/src/lib/Components/Point/pointContext/MagneticPointsProvider.d.ts +7 -0
  85. package/dist/typescript/src/lib/Components/Point/pointContext/MagneticPointsProvider.d.ts.map +1 -0
  86. package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts +3 -0
  87. package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts.map +1 -0
  88. package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts +13 -0
  89. package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts.map +1 -0
  90. package/dist/typescript/src/lib/Components/Point/types.d.ts +7 -0
  91. package/dist/typescript/src/lib/Components/Point/types.d.ts.map +1 -1
  92. package/dist/typescript/src/lib/Components/Point/utils.d.ts +8 -6
  93. package/dist/typescript/src/lib/Components/Point/utils.d.ts.map +1 -1
  94. package/dist/typescript/src/lib/Components/ReferenceLine/utils.d.ts +3 -2
  95. package/dist/typescript/src/lib/Components/ReferenceLine/utils.d.ts.map +1 -1
  96. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.d.ts +5 -1
  97. package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.d.ts.map +1 -1
  98. package/dist/typescript/src/lib/Components/Scrubber/ScrubberProvider.d.ts +1 -1
  99. package/dist/typescript/src/lib/Components/Scrubber/ScrubberProvider.d.ts.map +1 -1
  100. package/dist/typescript/src/lib/Components/Scrubber/types.d.ts +13 -0
  101. package/dist/typescript/src/lib/Components/Scrubber/types.d.ts.map +1 -1
  102. package/dist/typescript/src/lib/Components/Scrubber/utils.d.ts +33 -3
  103. package/dist/typescript/src/lib/Components/Scrubber/utils.d.ts.map +1 -1
  104. package/dist/typescript/src/lib/utils/domain/domain.d.ts +5 -4
  105. package/dist/typescript/src/lib/utils/domain/domain.d.ts.map +1 -1
  106. package/dist/typescript/src/lib/utils/index.d.ts +1 -1
  107. package/dist/typescript/src/lib/utils/index.d.ts.map +1 -1
  108. package/dist/typescript/src/lib/utils/scales/scales.d.ts +11 -5
  109. package/dist/typescript/src/lib/utils/scales/scales.d.ts.map +1 -1
  110. package/dist/typescript/src/lib/utils/ticks/ticks.d.ts +13 -5
  111. package/dist/typescript/src/lib/utils/ticks/ticks.d.ts.map +1 -1
  112. package/dist/typescript/src/lib/utils/types.d.ts +3 -28
  113. package/dist/typescript/src/lib/utils/types.d.ts.map +1 -1
  114. package/package.json +4 -4
  115. package/src/lib/Components/Axis/Axis.constants.ts +23 -0
  116. package/src/lib/Components/Axis/Axis.types.ts +40 -0
  117. package/src/lib/Components/Axis/index.ts +2 -0
  118. package/src/lib/Components/CartesianChart/CartesianChart.tsx +39 -23
  119. package/src/lib/Components/CartesianChart/context/useBuildChartContext.test.ts +56 -0
  120. package/src/lib/Components/CartesianChart/context/useBuildChartContext.ts +8 -8
  121. package/src/lib/Components/CartesianChart/types.ts +11 -3
  122. package/src/lib/Components/CartesianChart/utils.ts +18 -8
  123. package/src/lib/Components/Line/utils.test.ts +90 -0
  124. package/src/lib/Components/Line/utils.ts +6 -1
  125. package/src/lib/Components/LineChart/LineChart.stories.tsx +36 -0
  126. package/src/lib/Components/LineChart/LineChart.test.tsx +156 -0
  127. package/src/lib/Components/LineChart/LineChart.tsx +30 -40
  128. package/src/lib/Components/LineChart/types.ts +10 -3
  129. package/src/lib/Components/Point/Point.tsx +9 -3
  130. package/src/lib/Components/Point/constants.ts +6 -0
  131. package/src/lib/Components/Point/pointContext/MagneticPointsProvider.test.tsx +162 -0
  132. package/src/lib/Components/Point/pointContext/MagneticPointsProvider.tsx +45 -0
  133. package/src/lib/Components/Point/pointContext/index.ts +5 -0
  134. package/src/lib/Components/Point/pointContext/magneticPointsContext.ts +19 -0
  135. package/src/lib/Components/Point/types.ts +7 -0
  136. package/src/lib/Components/Point/utils.test.ts +95 -5
  137. package/src/lib/Components/Point/utils.ts +35 -7
  138. package/src/lib/Components/ReferenceLine/utils.ts +4 -7
  139. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.test.tsx +4 -4
  140. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.ts +4 -4
  141. package/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.ts +29 -15
  142. package/src/lib/Components/Scrubber/ScrubberProvider.tsx +41 -5
  143. package/src/lib/Components/Scrubber/types.ts +13 -0
  144. package/src/lib/Components/Scrubber/utils.test.ts +150 -0
  145. package/src/lib/Components/Scrubber/utils.ts +93 -3
  146. package/src/lib/utils/domain/domain.ts +6 -5
  147. package/src/lib/utils/index.ts +0 -2
  148. package/src/lib/utils/scales/scales.test.ts +19 -0
  149. package/src/lib/utils/scales/scales.ts +15 -9
  150. package/src/lib/utils/ticks/ticks.test.ts +45 -0
  151. package/src/lib/utils/ticks/ticks.ts +19 -9
  152. package/src/lib/utils/types.ts +3 -26
@@ -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":";;AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,eAAe;AAEpD,SACEC,mBAAmB,EACnBC,eAAe,QACV,8BAA2B;AAClC,SACEC,wBAAwB,EACxBC,aAAa,EACbC,aAAa,QACR,YAAS;AAEhBP,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACzCA,QAAQ,CAAC,iCAAiC,EAAE,MAAM;IAChD,MAAMQ,KAAK,GAAGL,mBAAmB,CAAC;MAChCM,MAAM,EAAE;QAAEC,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAE,CAAC;MAC1BC,KAAK,EAAE;QAAEF,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC;MAC3BE,OAAO,EAAE;IACX,CAAC,CAAC;IAEFX,EAAE,CAAC,0DAA0D,EAAE,MAAM;MACnE,MAAMY,SAAS,GAAGN,KAAK,CAACM,SAAS,CAAC,CAAC;MACnC,MAAMC,OAAO,GAAG,CAACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAIM,SAAS,GAAG,CAAC;MAC/Cb,MAAM,CAACI,wBAAwB,CAACU,OAAO,EAAEP,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;IAEFf,EAAE,CAAC,2DAA2D,EAAE,MAAM;MACpE,MAAMY,SAAS,GAAGN,KAAK,CAACM,SAAS,CAAC,CAAC;MACnC,MAAMI,OAAO,GAAG,CAACV,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAIM,SAAS,GAAG,CAAC;MAC/Cb,MAAM,CAACI,wBAAwB,CAACa,OAAO,EAAEV,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;IAEFf,EAAE,CAAC,uDAAuD,EAAE,MAAM;MAChED,MAAM,CAACI,wBAAwB,CAAC,GAAG,EAAEG,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;MAClEhB,MAAM,CAACI,wBAAwB,CAAC,GAAG,EAAEG,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;IAEFf,EAAE,CAAC,sDAAsD,EAAE,MAAM;MAC/DD,MAAM,CAACI,wBAAwB,CAAC,GAAG,EAAEG,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFjB,QAAQ,CAAC,+CAA+C,EAAE,MAAM;IAC9D,MAAMQ,KAAK,GAAGJ,eAAe,CAAC;MAC5Be,SAAS,EAAE,QAAQ;MACnBV,MAAM,EAAE;QAAEC,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAE,CAAC;MAC1BC,KAAK,EAAE;QAAEF,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAI;IAC5B,CAAC,CAAC;IAEFT,EAAE,CAAC,uBAAuB,EAAE,MAAM;MAChCD,MAAM,CAACI,wBAAwB,CAAC,CAAC,EAAEG,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC;IAEFf,EAAE,CAAC,oCAAoC,EAAE,MAAM;MAC7CD,MAAM,CAACI,wBAAwB,CAAC,GAAG,EAAEG,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;IAEFf,EAAE,CAAC,oCAAoC,EAAE,MAAM;MAC7CD,MAAM,CAACI,wBAAwB,CAAC,CAAC,EAAE,EAAEG,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;IAEFf,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC5DD,MAAM,CAACI,wBAAwB,CAAC,GAAG,EAAEG,KAAK,EAAEQ,SAAS,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFjB,QAAQ,CAAC,2CAA2C,EAAE,MAAM;IAC1D,MAAMQ,KAAK,GAAGJ,eAAe,CAAC;MAC5Be,SAAS,EAAE,QAAQ;MACnBV,MAAM,EAAE;QAAEC,GAAG,EAAE,EAAE;QAAEC,GAAG,EAAE;MAAG,CAAC;MAC5BC,KAAK,EAAE;QAAEF,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAI;IAC5B,CAAC,CAAC;IACF,MAAMS,UAAU,GAAG;MAAEC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAAc,CAAC;IAErDnB,EAAE,CAAC,iDAAiD,EAAE,MAAM;MAC1DD,MAAM,CAACI,wBAAwB,CAAC,EAAE,EAAEG,KAAK,EAAEY,UAAU,EAAE,CAAC,CAAC,CAAC,CAACH,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;IAEFf,EAAE,CAAC,kDAAkD,EAAE,MAAM;MAC3DD,MAAM,CAACI,wBAAwB,CAAC,GAAG,EAAEG,KAAK,EAAEY,UAAU,EAAE,CAAC,CAAC,CAAC,CAACH,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEFf,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACzDD,MAAM,CAACI,wBAAwB,CAAC,GAAG,EAAEG,KAAK,EAAEY,UAAU,EAAE,CAAC,CAAC,CAAC,CAACH,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFjB,QAAQ,CAAC,eAAe,EAAE,MAAM;EAC9BE,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7D,MAAMoB,SAAS,GAAGA,CAAA,KAAMN,SAAS;IACjCf,MAAM,CAACK,aAAa,CAAC,CAAC,EAAEgB,SAAS,CAAC,CAAC,CAACC,aAAa,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFrB,EAAE,CAAC,+CAA+C,EAAE,MAAM;IACxD,MAAMM,KAAK,GAAGJ,eAAe,CAAC;MAC5Be,SAAS,EAAE,QAAQ;MACnBV,MAAM,EAAE;QAAEC,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAE,CAAC;MAC1BC,KAAK,EAAE;QAAEF,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAI;IAC5B,CAAC,CAAC;IACF,MAAMW,SAAS,GAAGA,CAAA,KAAMd,KAAK;IAC7B,MAAMgB,MAAM,GAAGlB,aAAa,CAAC,CAAC,EAAEgB,SAAS,CAAC;IAC1CrB,MAAM,CAACuB,MAAM,CAAC,CAACP,IAAI,CAACT,KAAK,CAAC,CAAC,CAAC,CAAC;EAC/B,CAAC,CAAC;EAEFN,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,MAAMM,KAAK,GAAGL,mBAAmB,CAAC;MAChCM,MAAM,EAAE;QAAEC,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAE,CAAC;MAC1BC,KAAK,EAAE;QAAEF,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAI,CAAC;MAC3BE,OAAO,EAAE;IACX,CAAC,CAAC;IACF,MAAMS,SAAS,GAAGA,CAAA,KAAMd,KAAK;IAC7B,MAAMiB,QAAQ,GAAG,CAACjB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAIA,KAAK,CAACM,SAAS,CAAC,CAAC,GAAG,CAAC;IACxDb,MAAM,CAACK,aAAa,CAAC,CAAC,EAAEgB,SAAS,CAAC,CAAC,CAACL,IAAI,CAACQ,QAAQ,CAAC;EACpD,CAAC,CAAC;EAEFvB,EAAE,CAAC,0DAA0D,EAAE,MAAM;IACnE,MAAMM,KAAK,GAAGJ,eAAe,CAAC;MAC5Be,SAAS,EAAE,QAAQ;MACnBV,MAAM,EAAE;QAAEC,GAAG,EAAE,EAAE;QAAEC,GAAG,EAAE;MAAG,CAAC;MAC5BC,KAAK,EAAE;QAAEF,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAI;IAC5B,CAAC,CAAC;IACF,MAAMW,SAAS,GAAGA,CAAA,KAAMd,KAAK;IAC7B,MAAMY,UAAU,GAAG;MAAEC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAAc,CAAC;IAErD,MAAMK,OAAO,GAAGpB,aAAa,CAAC,CAAC,EAAEgB,SAAS,CAAC;IAC3C,MAAMK,WAAW,GAAGrB,aAAa,CAAC,CAAC,EAAEgB,SAAS,EAAEF,UAAU,CAAC;IAE3DnB,MAAM,CAAC0B,WAAW,CAAC,CAACC,GAAG,CAACX,IAAI,CAACS,OAAO,CAAC;IACrCzB,MAAM,CAAC0B,WAAW,CAAC,CAACV,IAAI,CAACT,KAAK,CAAC,EAAE,CAAC,CAAC;EACrC,CAAC,CAAC;EAEFN,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC9D,MAAMM,KAAK,GAAGJ,eAAe,CAAC;MAC5Be,SAAS,EAAE,QAAQ;MACnBV,MAAM,EAAE;QAAEC,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAE,CAAC;MAC1BC,KAAK,EAAE;QAAEF,GAAG,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAI;IAC5B,CAAC,CAAC;IACF,MAAMW,SAAS,GAAGA,CAAA,KAAMd,KAAK;IAC7B,MAAMY,UAAU,GAAG;MAAEC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;IAAc,CAAC;IAExDpB,MAAM,CAACK,aAAa,CAAC,CAAC,EAAEgB,SAAS,EAAEF,UAAU,CAAC,CAAC,CAACH,IAAI,CAClDX,aAAa,CAAC,CAAC,EAAEgB,SAAS,CAC5B,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFtB,QAAQ,CAAC,eAAe,EAAE,MAAM;EAC9B,MAAMQ,KAAK,GAAGJ,eAAe,CAAC;IAC5Be,SAAS,EAAE,QAAQ;IACnBV,MAAM,EAAE;MAAEC,GAAG,EAAE,CAAC;MAAEC,GAAG,EAAE;IAAI,CAAC;IAC5BC,KAAK,EAAE;MAAEF,GAAG,EAAE,GAAG;MAAEC,GAAG,EAAE;IAAE;EAC5B,CAAC,CAAC;EACF,MAAMkB,SAAS,GAAGA,CAAA,KAAMrB,KAAK;EAE7BN,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7DD,MAAM,CAACM,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAMS,SAAS,CAAC,CAAC,CAACO,aAAa,CAAC,CAAC;EACrE,CAAC,CAAC;EAEFrB,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzDD,MAAM,CAACM,aAAa,CAAC,CAAC,EAAES,SAAS,EAAEa,SAAS,CAAC,CAAC,CAACN,aAAa,CAAC,CAAC;EAChE,CAAC,CAAC;EAEFrB,EAAE,CAAC,yCAAyC,EAAE,MAAM;IAClDD,MAAM,CAACM,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAEsB,SAAS,CAAC,CAAC,CAACN,aAAa,CAAC,CAAC;EACrE,CAAC,CAAC;EAEFrB,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC7D,MAAMsB,MAAM,GAAGjB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEsB,SAAS,CAAC;IAChD5B,MAAM,CAACuB,MAAM,CAAC,CAACP,IAAI,CAACT,KAAK,CAAC,EAAE,CAAC,CAAC;EAChC,CAAC,CAAC;AACJ,CAAC,CAAC","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', () => {
@@ -1 +1 @@
1
- {"version":3,"names":["describe","expect","it","getCategoricalScale","getNumericScale","getPointOnScale","isBandScaleType","isCategoricalScale","isNumericScale","projectPoint","scale","scaleType","domain","min","max","range","toBe","padding","toEqual","bandwidth","toBeGreaterThan","toBeGreaterThanOrEqual","toBeLessThanOrEqual","undefined","numericScale","bandScale","expected","xScale","yScale","pt","x","y","expectedX"],"sourceRoot":"../../../../../src","sources":["lib/utils/scales/scales.test.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["describe","expect","it","getCategoricalScale","getNumericScale","getPointOnScale","isBandScaleType","isCategoricalScale","isNumericScale","projectPoint","scale","scaleType","domain","min","max","range","toBe","toEqual","nice","padding","bandwidth","toBeGreaterThan","toBeGreaterThanOrEqual","toBeLessThanOrEqual","undefined","numericScale","bandScale","expected","xScale","yScale","pt","x","y","expectedX"],"sourceRoot":"../../../../../src","sources":["lib/utils/scales/scales.test.ts"],"mappings":"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","ignoreList":[]}
@@ -4,10 +4,20 @@ import { isCategoricalScale, isNumericScale } from "../scales/scales.js";
4
4
  export const APPROXIMATE_TICK_COUNT = 5;
5
5
  /**
6
6
  * Resolves which numeric tick values should appear on the axis.
7
- * Explicit ticks take priority, then scale-specific defaults.
7
+ *
8
+ * Priority:
9
+ * 1. Explicit `ticks` provided by the consumer.
10
+ * 2. Axis `data` — when provided, ticks come from the data itself (numeric
11
+ * values for numeric data, indices for string data) so the rendered ticks
12
+ * mirror exactly what the consumer asked for, with no d3-invented
13
+ * intermediate values.
14
+ * 3. Scale-specific defaults (band domain, or `scale.ticks()` for numeric).
8
15
  */
9
- export const getTickValues = (scale, explicitTicks) => {
16
+ export const getTickValues = (scale, explicitTicks, axisData) => {
10
17
  if (explicitTicks) return explicitTicks;
18
+ if (axisData && axisData.length > 0) {
19
+ return typeof axisData[0] === 'number' ? axisData : axisData.map((_, i) => i);
20
+ }
11
21
  if (isCategoricalScale(scale)) return scale.domain();
12
22
  if (isNumericScale(scale)) return scale.ticks(APPROXIMATE_TICK_COUNT);
13
23
  return [];
@@ -44,8 +54,8 @@ export const getTickLabel = (tick, axisData, formatter) => {
44
54
  * Builds the complete tick data array from a scale and axis configuration.
45
55
  */
46
56
  export const buildTicksData = (scale, axisConfig, explicitTicks, formatter) => {
47
- const tickValues = getTickValues(scale, explicitTicks);
48
57
  const axisData = axisConfig?.data;
58
+ const tickValues = getTickValues(scale, explicitTicks, axisData);
49
59
  return tickValues.map(tick => ({
50
60
  position: getTickPosition(scale, tick),
51
61
  value: tick,
@@ -1 +1 @@
1
- {"version":3,"names":["isCategoricalScale","isNumericScale","APPROXIMATE_TICK_COUNT","getTickValues","scale","explicitTicks","domain","ticks","getTickPosition","tick","bandwidth","getTickLabel","axisData","formatter","hasStringLabels","Array","isArray","rawValue","undefined","String","buildTicksData","axisConfig","tickValues","data","map","position","value","label","isTickOnXAxisDomainEdge","drawingArea","x","isTickOnYAxisDomainEdge","y","height"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.ts"],"mappings":";;AAAA,SAASA,kBAAkB,EAAEC,cAAc,QAAQ,qBAAkB;AAOrE,OAAO,MAAMC,sBAAsB,GAAG,CAAC;AAQvC;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,KAAyB,EACzBC,aAAwB,KACX;EACb,IAAIA,aAAa,EAAE,OAAOA,aAAa;EACvC,IAAIL,kBAAkB,CAACI,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACE,MAAM,CAAC,CAAC;EACpD,IAAIL,cAAc,CAACG,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACG,KAAK,CAACL,sBAAsB,CAAC;EACrE,OAAO,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,eAAe,GAAGA,CAC7BJ,KAAyB,EACzBK,IAAY,KACD;EACX,IAAIT,kBAAkB,CAACI,KAAK,CAAC,EAAE;IAC7B,OAAO,CAACA,KAAK,CAACK,IAAI,CAAC,IAAI,CAAC,IAAIL,KAAK,CAACM,SAAS,CAAC,CAAC,GAAG,CAAC;EACnD;EACA,OAAQN,KAAK,CAA2BK,IAAI,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,YAAY,GAAGA,CAC1BF,IAAY,EACZG,QAAiC,EACjCC,SAA8C,KACnC;EACX,MAAMC,eAAe,GACnBF,QAAQ,IAAIG,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,IAAI,OAAOA,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;EAExE,IAAIC,SAAS,EAAE;IACb,MAAMI,QAAQ,GACZH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,GAAGN,QAAQ,CAACH,IAAI,CAAC,GAAGA,IAAI;IACzE,OAAOU,MAAM,CAACN,SAAS,CAACI,QAA2B,CAAC,CAAC;EACvD;EAEA,IAAIH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,EAAE;IACnD,OAAOC,MAAM,CAACP,QAAQ,CAACH,IAAI,CAAC,CAAC;EAC/B;EAEA,OAAOU,MAAM,CAACV,IAAI,CAAC;AACrB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMW,cAAc,GAAGA,CAC5BhB,KAAyB,EACzBiB,UAA4B,EAC5BhB,aAAwB,EACxBQ,SAA8C,KAC/B;EACf,MAAMS,UAAU,GAAGnB,aAAa,CAACC,KAAK,EAAEC,aAAa,CAAC;EACtD,MAAMO,QAAQ,GAAGS,UAAU,EAAEE,IAAI;EAEjC,OAAOD,UAAU,CAACE,GAAG,CAAEf,IAAI,KAAM;IAC/BgB,QAAQ,EAAEjB,eAAe,CAACJ,KAAK,EAAEK,IAAI,CAAC;IACtCiB,KAAK,EAAEjB,IAAI;IACXkB,KAAK,EAAEhB,YAAY,CAACF,IAAI,EAAEG,QAAQ,EAAEC,SAAS;EAC/C,CAAC,CAAC,CAAC;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMe,uBAAuB,GAAGA,CACrCnB,IAAc,EACdoB,WAAwB,KACZ;EACZ,OAAOpB,IAAI,CAACgB,QAAQ,KAAKI,WAAW,CAACC,CAAC;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CACrCtB,IAAc,EACdoB,WAAwB,KACZ;EACZ,OAAOpB,IAAI,CAACgB,QAAQ,KAAKI,WAAW,CAACG,CAAC,GAAGH,WAAW,CAACI,MAAM;AAC7D,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["isCategoricalScale","isNumericScale","APPROXIMATE_TICK_COUNT","getTickValues","scale","explicitTicks","axisData","length","map","_","i","domain","ticks","getTickPosition","tick","bandwidth","getTickLabel","formatter","hasStringLabels","Array","isArray","rawValue","undefined","String","buildTicksData","axisConfig","data","tickValues","position","value","label","isTickOnXAxisDomainEdge","drawingArea","x","isTickOnYAxisDomainEdge","y","height"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.ts"],"mappings":"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","ignoreList":[]}
@@ -38,6 +38,15 @@ describe('getTickValues', () => {
38
38
  it('should return full domain for band scales', () => {
39
39
  expect(getTickValues(bandScale)).toEqual([0, 1, 2, 3, 4]);
40
40
  });
41
+ it('should return numeric axis data verbatim (no d3-invented intermediate ticks)', () => {
42
+ expect(getTickValues(numericScale, undefined, [0, 2, 4])).toEqual([0, 2, 4]);
43
+ });
44
+ it('should return indices for string axis data', () => {
45
+ expect(getTickValues(numericScale, undefined, ['Jan', 'Feb', 'Mar'])).toEqual([0, 1, 2]);
46
+ });
47
+ it('should prioritize explicit ticks over axis data', () => {
48
+ expect(getTickValues(numericScale, [10, 20], ['Jan', 'Feb', 'Mar'])).toEqual([10, 20]);
49
+ });
41
50
  });
42
51
  describe('getTickPosition', () => {
43
52
  it('should map value through numeric scale', () => {
@@ -106,6 +115,31 @@ describe('buildTicksData', () => {
106
115
  expect(result[0].label).toBe('Mon');
107
116
  expect(result[1].label).toBe('Tue');
108
117
  });
118
+ it('should derive ticks from numeric axis data (no intermediate ticks)', () => {
119
+ const result = buildTicksData(numericScale, {
120
+ data: [0, 2, 4]
121
+ });
122
+ expect(result.map(t => t.value)).toEqual([0, 2, 4]);
123
+ expect(result.map(t => t.label)).toEqual(['0', '2', '4']);
124
+ });
125
+ it('should derive ticks from string axis data without intermediate values', () => {
126
+ const stringScale = getNumericScale({
127
+ scaleType: 'linear',
128
+ domain: {
129
+ min: 0,
130
+ max: 2
131
+ },
132
+ range: {
133
+ min: 0,
134
+ max: 500
135
+ }
136
+ });
137
+ const result = buildTicksData(stringScale, {
138
+ data: ['Jan', 'Feb', 'Mar']
139
+ });
140
+ expect(result.map(t => t.value)).toEqual([0, 1, 2]);
141
+ expect(result.map(t => t.label)).toEqual(['Jan', 'Feb', 'Mar']);
142
+ });
109
143
  it('should apply tick formatter', () => {
110
144
  const formatter = v => `$${v}`;
111
145
  const result = buildTicksData(numericScale, undefined, [0, 50], formatter);
@@ -1 +1 @@
1
- {"version":3,"names":["describe","expect","it","jest","getCategoricalScale","getNumericScale","buildTicksData","getTickLabel","getTickPosition","getTickValues","numericScale","scaleType","domain","min","max","range","bandScale","padding","toEqual","ticks","length","toBeGreaterThan","toContain","toBe","pos","bandwidth","undefined","axisData","formatter","fn","v","String","slice","toHaveBeenCalledWith","result","tick","toHaveProperty","position","label","toHaveLength","map","t","value","data"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.test.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["describe","expect","it","jest","getCategoricalScale","getNumericScale","buildTicksData","getTickLabel","getTickPosition","getTickValues","numericScale","scaleType","domain","min","max","range","bandScale","padding","toEqual","ticks","length","toBeGreaterThan","toContain","undefined","toBe","pos","bandwidth","axisData","formatter","fn","v","String","slice","toHaveBeenCalledWith","result","tick","toHaveProperty","position","label","toHaveLength","map","t","value","data","stringScale"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.test.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { XAxisProps } from './XAxis';
2
+ import type { YAxisProps } from './YAxis';
3
+ export declare const defaultXAxisProps: XAxisProps;
4
+ export declare const defaultYAxisProps: YAxisProps;
5
+ //# sourceMappingURL=Axis.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Axis.constants.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/Axis/Axis.constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,iBAAiB,EAAE,UAO/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAQ/B,CAAC"}
@@ -1,3 +1,7 @@
1
+ export type AxisBounds = {
2
+ min: number;
3
+ max: number;
4
+ };
1
5
  export type BaseAxisProps = {
2
6
  /**
3
7
  * Whether to render grid lines at each tick.
@@ -29,5 +33,40 @@ export type BaseAxisProps = {
29
33
  * Receives the raw tick value (number or string label) and must return a string.
30
34
  */
31
35
  tickLabelFormatter?: (value: number | string) => string;
36
+ /**
37
+ * Scale algorithm used by this axis.
38
+ * @default 'linear'
39
+ */
40
+ scaleType?: 'linear' | 'log' | 'band';
41
+ /**
42
+ * Explicit data values for band scales or category labels.
43
+ * For band scales, provides the discrete domain. For numeric scales, string values
44
+ * are used as tick labels at corresponding indices.
45
+ */
46
+ data?: string[] | number[];
47
+ /**
48
+ * Fixed domain bounds or a function that adjusts the computed bounds.
49
+ * A partial object overrides only the specified bound(s).
50
+ * A function receives the auto-computed bounds and returns adjusted ones.
51
+ *
52
+ * Applied before {@link BaseAxisProps.nice}. To keep your bounds exactly as
53
+ * provided, set `nice: false` alongside a full `{ min, max }` override.
54
+ */
55
+ domain?: Partial<AxisBounds> | ((bounds: AxisBounds) => AxisBounds);
56
+ /**
57
+ * Round the domain outward to clean boundaries via d3's `.nice()`
58
+ * (e.g. `[4, 98]` becomes `[0, 100]`).
59
+ *
60
+ * Defaults to `true` for Y Axis and `false` for X Axis.
61
+ *
62
+ * Set to `false` to keep the domain exactly as provided
63
+ * so data fills the plot area boundary-to-boundary — typically only useful
64
+ * when you also pass a full `domain: { min, max }` and don't have overlays
65
+ * (reference lines, scrubber positions, annotations) that may sit outside
66
+ * the data range.
67
+ *
68
+ * Applied after any {@link BaseAxisProps.domain} override.
69
+ */
70
+ nice?: boolean;
32
71
  };
33
72
  //# sourceMappingURL=Axis.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Axis.types.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/Axis/Axis.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACzD,CAAC"}
1
+ {"version":3,"file":"Axis.types.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/Axis/Axis.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACxD;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACtC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC;IACpE;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC"}