react-native-timer-picker 2.1.1 → 2.2.1

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 (139) hide show
  1. package/README.md +250 -174
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js +417 -0
  3. package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -0
  4. package/dist/commonjs/components/DurationScroll/index.js +20 -392
  5. package/dist/commonjs/components/DurationScroll/index.js.map +1 -1
  6. package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
  7. package/dist/commonjs/components/Modal/Modal.js +107 -0
  8. package/dist/commonjs/components/Modal/Modal.js.map +1 -0
  9. package/dist/commonjs/components/Modal/index.js +20 -101
  10. package/dist/commonjs/components/Modal/index.js.map +1 -1
  11. package/dist/commonjs/components/TimerPicker/TimerPicker.js +225 -0
  12. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -0
  13. package/dist/commonjs/components/TimerPicker/index.js +29 -166
  14. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  15. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
  16. package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
  17. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js +143 -0
  18. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
  19. package/dist/commonjs/components/TimerPickerModal/index.js +30 -131
  20. package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -1
  21. package/dist/commonjs/components/TimerPickerModal/types.js.map +1 -1
  22. package/dist/commonjs/index.js +9 -13
  23. package/dist/commonjs/index.js.map +1 -1
  24. package/dist/commonjs/tests/DurationScroll.test.js +94 -0
  25. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
  26. package/dist/commonjs/tests/Modal.test.js +79 -2
  27. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  28. package/dist/commonjs/tests/TimerPicker.test.js +119 -1
  29. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
  30. package/dist/commonjs/tests/TimerPickerModal.test.js +120 -0
  31. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  32. package/dist/commonjs/tests/colorToRgba.test.js +176 -0
  33. package/dist/commonjs/tests/colorToRgba.test.js.map +1 -0
  34. package/dist/commonjs/tests/generateNumbers.test.js +350 -0
  35. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -0
  36. package/dist/commonjs/tests/getAdjustedLimit.test.js +324 -0
  37. package/dist/commonjs/tests/getAdjustedLimit.test.js.map +1 -0
  38. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js +424 -0
  39. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  40. package/dist/commonjs/tests/getInitialScrollIndex.test.js +396 -0
  41. package/dist/commonjs/tests/getInitialScrollIndex.test.js.map +1 -0
  42. package/dist/commonjs/tests/getSafeInitialValue.test.js +497 -0
  43. package/dist/commonjs/tests/getSafeInitialValue.test.js.map +1 -0
  44. package/dist/commonjs/tests/padNumber.test.js +301 -0
  45. package/dist/commonjs/tests/padNumber.test.js.map +1 -0
  46. package/dist/commonjs/utils/colorToRgba.js +40 -4
  47. package/dist/commonjs/utils/colorToRgba.js.map +1 -1
  48. package/dist/commonjs/utils/generateNumbers.js +67 -0
  49. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  50. package/dist/commonjs/utils/getAdjustedLimit.js +28 -3
  51. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
  52. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js +38 -0
  53. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  54. package/dist/commonjs/utils/getInitialScrollIndex.js +38 -0
  55. package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -1
  56. package/dist/commonjs/utils/getSafeInitialValue.js +28 -0
  57. package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -1
  58. package/dist/commonjs/utils/padNumber.js +25 -0
  59. package/dist/commonjs/utils/padNumber.js.map +1 -1
  60. package/dist/module/components/DurationScroll/DurationScroll.js +410 -0
  61. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -0
  62. package/dist/module/components/DurationScroll/index.js +2 -390
  63. package/dist/module/components/DurationScroll/index.js.map +1 -1
  64. package/dist/module/components/DurationScroll/types.js.map +1 -1
  65. package/dist/module/components/Modal/Modal.js +99 -0
  66. package/dist/module/components/Modal/Modal.js.map +1 -0
  67. package/dist/module/components/Modal/index.js +2 -98
  68. package/dist/module/components/Modal/index.js.map +1 -1
  69. package/dist/module/components/TimerPicker/TimerPicker.js +217 -0
  70. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -0
  71. package/dist/module/components/TimerPicker/index.js +3 -166
  72. package/dist/module/components/TimerPicker/index.js.map +1 -1
  73. package/dist/module/components/TimerPicker/styles.js.map +1 -1
  74. package/dist/module/components/TimerPicker/types.js.map +1 -1
  75. package/dist/module/components/TimerPickerModal/TimerPickerModal.js +135 -0
  76. package/dist/module/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
  77. package/dist/module/components/TimerPickerModal/index.js +3 -130
  78. package/dist/module/components/TimerPickerModal/index.js.map +1 -1
  79. package/dist/module/components/TimerPickerModal/types.js.map +1 -1
  80. package/dist/module/index.js +2 -6
  81. package/dist/module/index.js.map +1 -1
  82. package/dist/module/tests/DurationScroll.test.js +94 -0
  83. package/dist/module/tests/DurationScroll.test.js.map +1 -1
  84. package/dist/module/tests/Modal.test.js +80 -3
  85. package/dist/module/tests/Modal.test.js.map +1 -1
  86. package/dist/module/tests/TimerPicker.test.js +119 -1
  87. package/dist/module/tests/TimerPicker.test.js.map +1 -1
  88. package/dist/module/tests/TimerPickerModal.test.js +121 -1
  89. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  90. package/dist/module/tests/colorToRgba.test.js +174 -0
  91. package/dist/module/tests/colorToRgba.test.js.map +1 -0
  92. package/dist/module/tests/generateNumbers.test.js +348 -0
  93. package/dist/module/tests/generateNumbers.test.js.map +1 -0
  94. package/dist/module/tests/getAdjustedLimit.test.js +322 -0
  95. package/dist/module/tests/getAdjustedLimit.test.js.map +1 -0
  96. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js +422 -0
  97. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  98. package/dist/module/tests/getInitialScrollIndex.test.js +394 -0
  99. package/dist/module/tests/getInitialScrollIndex.test.js.map +1 -0
  100. package/dist/module/tests/getSafeInitialValue.test.js +495 -0
  101. package/dist/module/tests/getSafeInitialValue.test.js.map +1 -0
  102. package/dist/module/tests/padNumber.test.js +299 -0
  103. package/dist/module/tests/padNumber.test.js.map +1 -0
  104. package/dist/module/utils/colorToRgba.js +40 -4
  105. package/dist/module/utils/colorToRgba.js.map +1 -1
  106. package/dist/module/utils/generateNumbers.js +68 -0
  107. package/dist/module/utils/generateNumbers.js.map +1 -1
  108. package/dist/module/utils/getAdjustedLimit.js +28 -3
  109. package/dist/module/utils/getAdjustedLimit.js.map +1 -1
  110. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js +38 -0
  111. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  112. package/dist/module/utils/getInitialScrollIndex.js +38 -0
  113. package/dist/module/utils/getInitialScrollIndex.js.map +1 -1
  114. package/dist/module/utils/getSafeInitialValue.js +28 -0
  115. package/dist/module/utils/getSafeInitialValue.js.map +1 -1
  116. package/dist/module/utils/padNumber.js +25 -0
  117. package/dist/module/utils/padNumber.js.map +1 -1
  118. package/dist/typescript/components/DurationScroll/DurationScroll.d.ts +4 -0
  119. package/dist/typescript/components/DurationScroll/index.d.ts +2 -4
  120. package/dist/typescript/components/DurationScroll/types.d.ts +13 -9
  121. package/dist/typescript/components/Modal/Modal.d.ts +5 -0
  122. package/dist/typescript/components/Modal/index.d.ts +2 -5
  123. package/dist/typescript/components/TimerPicker/TimerPicker.d.ts +4 -0
  124. package/dist/typescript/components/TimerPicker/index.d.ts +3 -4
  125. package/dist/typescript/components/TimerPicker/styles.d.ts +922 -771
  126. package/dist/typescript/components/TimerPicker/types.d.ts +26 -10
  127. package/dist/typescript/components/TimerPickerModal/TimerPickerModal.d.ts +4 -0
  128. package/dist/typescript/components/TimerPickerModal/index.d.ts +3 -4
  129. package/dist/typescript/components/TimerPickerModal/styles.d.ts +570 -474
  130. package/dist/typescript/components/TimerPickerModal/types.d.ts +8 -5
  131. package/dist/typescript/index.d.ts +2 -6
  132. package/dist/typescript/utils/colorToRgba.d.ts +34 -0
  133. package/dist/typescript/utils/generateNumbers.d.ts +66 -0
  134. package/dist/typescript/utils/getAdjustedLimit.d.ts +27 -2
  135. package/dist/typescript/utils/getDurationAndIndexFromScrollOffset.d.ts +38 -0
  136. package/dist/typescript/utils/getInitialScrollIndex.d.ts +38 -0
  137. package/dist/typescript/utils/getSafeInitialValue.d.ts +29 -0
  138. package/dist/typescript/utils/padNumber.d.ts +25 -0
  139. package/package.json +12 -30
@@ -0,0 +1,394 @@
1
+ import { getInitialScrollIndex } from "../utils/getInitialScrollIndex";
2
+ describe("getInitialScrollIndex", () => {
3
+ describe("infinite scroll disabled", () => {
4
+ it("calculates index for value 0", () => {
5
+ const result = getInitialScrollIndex({
6
+ disableInfiniteScroll: true,
7
+ interval: 1,
8
+ numberOfItems: 60,
9
+ padWithNItems: 2,
10
+ repeatNumbersNTimes: 1,
11
+ value: 0
12
+ });
13
+ expect(result).toBe(0);
14
+ });
15
+ it("calculates index for middle value", () => {
16
+ const result = getInitialScrollIndex({
17
+ disableInfiniteScroll: true,
18
+ interval: 1,
19
+ numberOfItems: 60,
20
+ padWithNItems: 2,
21
+ repeatNumbersNTimes: 1,
22
+ value: 30
23
+ });
24
+ expect(result).toBe(30);
25
+ });
26
+ it("calculates index for max value", () => {
27
+ const result = getInitialScrollIndex({
28
+ disableInfiniteScroll: true,
29
+ interval: 1,
30
+ numberOfItems: 60,
31
+ padWithNItems: 2,
32
+ repeatNumbersNTimes: 1,
33
+ value: 59
34
+ });
35
+ expect(result).toBe(59);
36
+ });
37
+ it("handles interval of 5", () => {
38
+ const result = getInitialScrollIndex({
39
+ disableInfiniteScroll: true,
40
+ interval: 5,
41
+ numberOfItems: 12,
42
+ padWithNItems: 2,
43
+ repeatNumbersNTimes: 1,
44
+ value: 25
45
+ });
46
+ expect(result).toBe(5); // 25 / 5 = 5
47
+ });
48
+ it("handles interval of 15", () => {
49
+ const result = getInitialScrollIndex({
50
+ disableInfiniteScroll: true,
51
+ interval: 15,
52
+ numberOfItems: 4,
53
+ padWithNItems: 2,
54
+ repeatNumbersNTimes: 1,
55
+ value: 45
56
+ });
57
+ expect(result).toBe(3); // 45 / 15 = 3
58
+ });
59
+ it("handles different padding values", () => {
60
+ const result = getInitialScrollIndex({
61
+ disableInfiniteScroll: true,
62
+ interval: 1,
63
+ numberOfItems: 24,
64
+ padWithNItems: 5,
65
+ repeatNumbersNTimes: 1,
66
+ value: 12
67
+ });
68
+ expect(result).toBe(12);
69
+ });
70
+ });
71
+ describe("infinite scroll enabled", () => {
72
+ it("accounts for padding offset at value 0", () => {
73
+ const result = getInitialScrollIndex({
74
+ disableInfiniteScroll: false,
75
+ interval: 1,
76
+ numberOfItems: 60,
77
+ padWithNItems: 2,
78
+ repeatNumbersNTimes: 3,
79
+ value: 0
80
+ });
81
+ expect(result).toBe(58); // 60 * 1 + 0 - 2 = 58
82
+ });
83
+ it("calculates index with padding offset for middle value", () => {
84
+ const result = getInitialScrollIndex({
85
+ disableInfiniteScroll: false,
86
+ interval: 1,
87
+ numberOfItems: 60,
88
+ padWithNItems: 2,
89
+ repeatNumbersNTimes: 3,
90
+ value: 30
91
+ });
92
+ expect(result).toBe(88); // 60 * 1 + 30 - 2 = 88
93
+ });
94
+ it("handles larger padding", () => {
95
+ const result = getInitialScrollIndex({
96
+ disableInfiniteScroll: false,
97
+ interval: 1,
98
+ numberOfItems: 60,
99
+ padWithNItems: 5,
100
+ repeatNumbersNTimes: 3,
101
+ value: 15
102
+ });
103
+ expect(result).toBe(70); // 60 * 1 + 15 - 5 = 70
104
+ });
105
+ it("handles zero padding", () => {
106
+ const result = getInitialScrollIndex({
107
+ disableInfiniteScroll: false,
108
+ interval: 1,
109
+ numberOfItems: 60,
110
+ padWithNItems: 0,
111
+ repeatNumbersNTimes: 3,
112
+ value: 30
113
+ });
114
+ expect(result).toBe(90); // 60 * 1 + 30 - 0 = 90
115
+ });
116
+ it("handles interval of 5 with padding", () => {
117
+ const result = getInitialScrollIndex({
118
+ disableInfiniteScroll: false,
119
+ interval: 5,
120
+ numberOfItems: 12,
121
+ padWithNItems: 2,
122
+ repeatNumbersNTimes: 3,
123
+ value: 30
124
+ });
125
+ expect(result).toBe(16); // 12 * 1 + 6 - 2 = 16
126
+ });
127
+ });
128
+ describe("repeat numbers", () => {
129
+ it("positions at middle repetition when repeatNTimes is 3", () => {
130
+ const result = getInitialScrollIndex({
131
+ disableInfiniteScroll: false,
132
+ interval: 1,
133
+ numberOfItems: 24,
134
+ padWithNItems: 2,
135
+ repeatNumbersNTimes: 3,
136
+ value: 12
137
+ });
138
+ expect(result).toBe(34); // 24 * 1 + 12 - 2 = 34
139
+ });
140
+ it("positions at middle repetition when repeatNTimes is 5", () => {
141
+ const result = getInitialScrollIndex({
142
+ disableInfiniteScroll: false,
143
+ interval: 1,
144
+ numberOfItems: 24,
145
+ padWithNItems: 2,
146
+ repeatNumbersNTimes: 5,
147
+ value: 12
148
+ });
149
+ expect(result).toBe(58); // 24 * 2 + 12 - 2 = 58
150
+ });
151
+ it("handles even repeatNTimes", () => {
152
+ const result = getInitialScrollIndex({
153
+ disableInfiniteScroll: false,
154
+ interval: 1,
155
+ numberOfItems: 60,
156
+ padWithNItems: 2,
157
+ repeatNumbersNTimes: 4,
158
+ value: 30
159
+ });
160
+ expect(result).toBe(148); // 60 * 2 + 30 - 2 = 148
161
+ });
162
+ it("handles repeatNTimes of 1", () => {
163
+ const result = getInitialScrollIndex({
164
+ disableInfiniteScroll: false,
165
+ interval: 1,
166
+ numberOfItems: 60,
167
+ padWithNItems: 2,
168
+ repeatNumbersNTimes: 1,
169
+ value: 30
170
+ });
171
+ expect(result).toBe(28); // 60 * 0 + 30 - 2 = 28
172
+ });
173
+ it("handles large repeatNTimes", () => {
174
+ const result = getInitialScrollIndex({
175
+ disableInfiniteScroll: false,
176
+ interval: 1,
177
+ numberOfItems: 24,
178
+ padWithNItems: 2,
179
+ repeatNumbersNTimes: 7,
180
+ value: 12
181
+ });
182
+ expect(result).toBe(82); // 24 * 3 + 12 - 2 = 82
183
+ });
184
+ });
185
+ describe("different intervals", () => {
186
+ it("handles interval of 1", () => {
187
+ const result = getInitialScrollIndex({
188
+ disableInfiniteScroll: false,
189
+ interval: 1,
190
+ numberOfItems: 60,
191
+ padWithNItems: 2,
192
+ repeatNumbersNTimes: 3,
193
+ value: 45
194
+ });
195
+ expect(result).toBe(103); // 60 * 1 + 45 - 2 = 103
196
+ });
197
+ it("handles interval of 5", () => {
198
+ const result = getInitialScrollIndex({
199
+ disableInfiniteScroll: false,
200
+ interval: 5,
201
+ numberOfItems: 12,
202
+ padWithNItems: 2,
203
+ repeatNumbersNTimes: 3,
204
+ value: 35
205
+ });
206
+ expect(result).toBe(17); // 12 * 1 + 7 - 2 = 17
207
+ });
208
+ it("handles interval of 15", () => {
209
+ const result = getInitialScrollIndex({
210
+ disableInfiniteScroll: false,
211
+ interval: 15,
212
+ numberOfItems: 4,
213
+ padWithNItems: 2,
214
+ repeatNumbersNTimes: 3,
215
+ value: 30
216
+ });
217
+ expect(result).toBe(4); // 4 * 1 + 2 - 2 = 4
218
+ });
219
+ it("handles interval of 10", () => {
220
+ const result = getInitialScrollIndex({
221
+ disableInfiniteScroll: false,
222
+ interval: 10,
223
+ numberOfItems: 6,
224
+ padWithNItems: 2,
225
+ repeatNumbersNTimes: 3,
226
+ value: 40
227
+ });
228
+ expect(result).toBe(8); // 6 * 1 + 4 - 2 = 8
229
+ });
230
+ });
231
+ describe("wrap-around behavior", () => {
232
+ it("handles value greater than numberOfItems * interval", () => {
233
+ const result = getInitialScrollIndex({
234
+ disableInfiniteScroll: false,
235
+ interval: 1,
236
+ numberOfItems: 24,
237
+ padWithNItems: 2,
238
+ repeatNumbersNTimes: 3,
239
+ value: 72
240
+ });
241
+ expect(result).toBe(22); // 24 * 1 + (72 % 24) - 2 = 22
242
+ });
243
+ it("handles negative result from Math.max", () => {
244
+ const result = getInitialScrollIndex({
245
+ disableInfiniteScroll: false,
246
+ interval: 1,
247
+ numberOfItems: 60,
248
+ padWithNItems: 10,
249
+ repeatNumbersNTimes: 1,
250
+ value: 5
251
+ });
252
+ expect(result).toBe(0); // Math.max(0 + 5 - 10, 0) = 0
253
+ });
254
+ it("ensures non-negative result with large padding", () => {
255
+ const result = getInitialScrollIndex({
256
+ disableInfiniteScroll: false,
257
+ interval: 1,
258
+ numberOfItems: 24,
259
+ padWithNItems: 50,
260
+ repeatNumbersNTimes: 1,
261
+ value: 0
262
+ });
263
+ expect(result).toBe(0); // Math.max ensures >= 0
264
+ });
265
+ });
266
+ describe("edge cases", () => {
267
+ it("handles value of 0", () => {
268
+ const result = getInitialScrollIndex({
269
+ disableInfiniteScroll: false,
270
+ interval: 1,
271
+ numberOfItems: 60,
272
+ padWithNItems: 2,
273
+ repeatNumbersNTimes: 3,
274
+ value: 0
275
+ });
276
+ expect(result).toBe(58);
277
+ });
278
+ it("handles small numberOfItems", () => {
279
+ const result = getInitialScrollIndex({
280
+ disableInfiniteScroll: false,
281
+ interval: 1,
282
+ numberOfItems: 2,
283
+ padWithNItems: 1,
284
+ repeatNumbersNTimes: 3,
285
+ value: 1
286
+ });
287
+ expect(result).toBe(2); // 2 * 1 + 1 - 1 = 2
288
+ });
289
+ it("handles large value", () => {
290
+ const result = getInitialScrollIndex({
291
+ disableInfiniteScroll: false,
292
+ interval: 1,
293
+ numberOfItems: 60,
294
+ padWithNItems: 2,
295
+ repeatNumbersNTimes: 3,
296
+ value: 200
297
+ });
298
+ expect(result).toBe(78); // 60 * floor(3/2) + ((200 + 60) % 60) - 2 = 60 + 20 - 2 = 78
299
+ });
300
+ it("handles numberOfItems of 1", () => {
301
+ const result = getInitialScrollIndex({
302
+ disableInfiniteScroll: false,
303
+ interval: 1,
304
+ numberOfItems: 1,
305
+ padWithNItems: 0,
306
+ repeatNumbersNTimes: 3,
307
+ value: 0
308
+ });
309
+ expect(result).toBe(1); // 1 * 1 + 0 - 0 = 1
310
+ });
311
+ });
312
+ describe("real-world scenarios", () => {
313
+ it("handles typical hour picker initialization", () => {
314
+ const result = getInitialScrollIndex({
315
+ disableInfiniteScroll: false,
316
+ interval: 1,
317
+ numberOfItems: 24,
318
+ padWithNItems: 2,
319
+ repeatNumbersNTimes: 3,
320
+ value: 14
321
+ });
322
+ expect(result).toBe(36); // 24 * 1 + 14 - 2 = 36
323
+ });
324
+ it("handles typical minute picker initialization", () => {
325
+ const result = getInitialScrollIndex({
326
+ disableInfiniteScroll: false,
327
+ interval: 1,
328
+ numberOfItems: 60,
329
+ padWithNItems: 2,
330
+ repeatNumbersNTimes: 3,
331
+ value: 45
332
+ });
333
+ expect(result).toBe(103); // 60 * 1 + 45 - 2 = 103
334
+ });
335
+ it("handles minute picker with 5-minute interval", () => {
336
+ const result = getInitialScrollIndex({
337
+ disableInfiniteScroll: false,
338
+ interval: 5,
339
+ numberOfItems: 12,
340
+ padWithNItems: 2,
341
+ repeatNumbersNTimes: 3,
342
+ value: 30
343
+ });
344
+ expect(result).toBe(16); // 12 * 1 + 6 - 2 = 16
345
+ });
346
+ it("handles second picker initialization", () => {
347
+ const result = getInitialScrollIndex({
348
+ disableInfiniteScroll: false,
349
+ interval: 1,
350
+ numberOfItems: 60,
351
+ padWithNItems: 2,
352
+ repeatNumbersNTimes: 3,
353
+ value: 0
354
+ });
355
+ expect(result).toBe(58); // 60 * 1 + 0 - 2 = 58
356
+ });
357
+ it("handles day picker without repetition", () => {
358
+ const result = getInitialScrollIndex({
359
+ disableInfiniteScroll: true,
360
+ interval: 1,
361
+ numberOfItems: 100,
362
+ padWithNItems: 2,
363
+ repeatNumbersNTimes: 1,
364
+ value: 15
365
+ });
366
+ expect(result).toBe(15);
367
+ });
368
+ });
369
+ describe("combination scenarios", () => {
370
+ it("combines interval, padding, and repetition", () => {
371
+ const result = getInitialScrollIndex({
372
+ disableInfiniteScroll: false,
373
+ interval: 15,
374
+ numberOfItems: 4,
375
+ padWithNItems: 3,
376
+ repeatNumbersNTimes: 5,
377
+ value: 45
378
+ });
379
+ expect(result).toBe(8); // 4 * 2 + 3 - 3 = 8
380
+ });
381
+ it("handles disabled infinite scroll with repetition", () => {
382
+ const result = getInitialScrollIndex({
383
+ disableInfiniteScroll: true,
384
+ interval: 5,
385
+ numberOfItems: 12,
386
+ padWithNItems: 5,
387
+ repeatNumbersNTimes: 3,
388
+ value: 35
389
+ });
390
+ expect(result).toBe(19); // 12 * 1 + 7 = 19
391
+ });
392
+ });
393
+ });
394
+ //# sourceMappingURL=getInitialScrollIndex.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getInitialScrollIndex","describe","it","result","disableInfiniteScroll","interval","numberOfItems","padWithNItems","repeatNumbersNTimes","value","expect","toBe"],"sources":["getInitialScrollIndex.test.ts"],"sourcesContent":["import { getInitialScrollIndex } from \"../utils/getInitialScrollIndex\";\n\ndescribe(\"getInitialScrollIndex\", () => {\n describe(\"infinite scroll disabled\", () => {\n it(\"calculates index for value 0\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 1,\n value: 0,\n });\n expect(result).toBe(0);\n });\n\n it(\"calculates index for middle value\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 1,\n value: 30,\n });\n expect(result).toBe(30);\n });\n\n it(\"calculates index for max value\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 1,\n value: 59,\n });\n expect(result).toBe(59);\n });\n\n it(\"handles interval of 5\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 5,\n numberOfItems: 12,\n padWithNItems: 2,\n repeatNumbersNTimes: 1,\n value: 25,\n });\n expect(result).toBe(5); // 25 / 5 = 5\n });\n\n it(\"handles interval of 15\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 15,\n numberOfItems: 4,\n padWithNItems: 2,\n repeatNumbersNTimes: 1,\n value: 45,\n });\n expect(result).toBe(3); // 45 / 15 = 3\n });\n\n it(\"handles different padding values\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 1,\n numberOfItems: 24,\n padWithNItems: 5,\n repeatNumbersNTimes: 1,\n value: 12,\n });\n expect(result).toBe(12);\n });\n });\n\n describe(\"infinite scroll enabled\", () => {\n it(\"accounts for padding offset at value 0\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 0,\n });\n expect(result).toBe(58); // 60 * 1 + 0 - 2 = 58\n });\n\n it(\"calculates index with padding offset for middle value\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 30,\n });\n expect(result).toBe(88); // 60 * 1 + 30 - 2 = 88\n });\n\n it(\"handles larger padding\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 5,\n repeatNumbersNTimes: 3,\n value: 15,\n });\n expect(result).toBe(70); // 60 * 1 + 15 - 5 = 70\n });\n\n it(\"handles zero padding\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 0,\n repeatNumbersNTimes: 3,\n value: 30,\n });\n expect(result).toBe(90); // 60 * 1 + 30 - 0 = 90\n });\n\n it(\"handles interval of 5 with padding\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 5,\n numberOfItems: 12,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 30,\n });\n expect(result).toBe(16); // 12 * 1 + 6 - 2 = 16\n });\n });\n\n describe(\"repeat numbers\", () => {\n it(\"positions at middle repetition when repeatNTimes is 3\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 24,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 12,\n });\n expect(result).toBe(34); // 24 * 1 + 12 - 2 = 34\n });\n\n it(\"positions at middle repetition when repeatNTimes is 5\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 24,\n padWithNItems: 2,\n repeatNumbersNTimes: 5,\n value: 12,\n });\n expect(result).toBe(58); // 24 * 2 + 12 - 2 = 58\n });\n\n it(\"handles even repeatNTimes\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 4,\n value: 30,\n });\n expect(result).toBe(148); // 60 * 2 + 30 - 2 = 148\n });\n\n it(\"handles repeatNTimes of 1\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 1,\n value: 30,\n });\n expect(result).toBe(28); // 60 * 0 + 30 - 2 = 28\n });\n\n it(\"handles large repeatNTimes\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 24,\n padWithNItems: 2,\n repeatNumbersNTimes: 7,\n value: 12,\n });\n expect(result).toBe(82); // 24 * 3 + 12 - 2 = 82\n });\n });\n\n describe(\"different intervals\", () => {\n it(\"handles interval of 1\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 45,\n });\n expect(result).toBe(103); // 60 * 1 + 45 - 2 = 103\n });\n\n it(\"handles interval of 5\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 5,\n numberOfItems: 12,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 35,\n });\n expect(result).toBe(17); // 12 * 1 + 7 - 2 = 17\n });\n\n it(\"handles interval of 15\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 15,\n numberOfItems: 4,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 30,\n });\n expect(result).toBe(4); // 4 * 1 + 2 - 2 = 4\n });\n\n it(\"handles interval of 10\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 10,\n numberOfItems: 6,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 40,\n });\n expect(result).toBe(8); // 6 * 1 + 4 - 2 = 8\n });\n });\n\n describe(\"wrap-around behavior\", () => {\n it(\"handles value greater than numberOfItems * interval\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 24,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 72,\n });\n expect(result).toBe(22); // 24 * 1 + (72 % 24) - 2 = 22\n });\n\n it(\"handles negative result from Math.max\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 10,\n repeatNumbersNTimes: 1,\n value: 5,\n });\n expect(result).toBe(0); // Math.max(0 + 5 - 10, 0) = 0\n });\n\n it(\"ensures non-negative result with large padding\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 24,\n padWithNItems: 50,\n repeatNumbersNTimes: 1,\n value: 0,\n });\n expect(result).toBe(0); // Math.max ensures >= 0\n });\n });\n\n describe(\"edge cases\", () => {\n it(\"handles value of 0\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 0,\n });\n expect(result).toBe(58);\n });\n\n it(\"handles small numberOfItems\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 2,\n padWithNItems: 1,\n repeatNumbersNTimes: 3,\n value: 1,\n });\n expect(result).toBe(2); // 2 * 1 + 1 - 1 = 2\n });\n\n it(\"handles large value\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 200,\n });\n expect(result).toBe(78); // 60 * floor(3/2) + ((200 + 60) % 60) - 2 = 60 + 20 - 2 = 78\n });\n\n it(\"handles numberOfItems of 1\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 1,\n padWithNItems: 0,\n repeatNumbersNTimes: 3,\n value: 0,\n });\n expect(result).toBe(1); // 1 * 1 + 0 - 0 = 1\n });\n });\n\n describe(\"real-world scenarios\", () => {\n it(\"handles typical hour picker initialization\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 24,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 14,\n });\n expect(result).toBe(36); // 24 * 1 + 14 - 2 = 36\n });\n\n it(\"handles typical minute picker initialization\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 45,\n });\n expect(result).toBe(103); // 60 * 1 + 45 - 2 = 103\n });\n\n it(\"handles minute picker with 5-minute interval\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 5,\n numberOfItems: 12,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 30,\n });\n expect(result).toBe(16); // 12 * 1 + 6 - 2 = 16\n });\n\n it(\"handles second picker initialization\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 1,\n numberOfItems: 60,\n padWithNItems: 2,\n repeatNumbersNTimes: 3,\n value: 0,\n });\n expect(result).toBe(58); // 60 * 1 + 0 - 2 = 58\n });\n\n it(\"handles day picker without repetition\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 1,\n numberOfItems: 100,\n padWithNItems: 2,\n repeatNumbersNTimes: 1,\n value: 15,\n });\n expect(result).toBe(15);\n });\n });\n\n describe(\"combination scenarios\", () => {\n it(\"combines interval, padding, and repetition\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: false,\n interval: 15,\n numberOfItems: 4,\n padWithNItems: 3,\n repeatNumbersNTimes: 5,\n value: 45,\n });\n expect(result).toBe(8); // 4 * 2 + 3 - 3 = 8\n });\n\n it(\"handles disabled infinite scroll with repetition\", () => {\n const result = getInitialScrollIndex({\n disableInfiniteScroll: true,\n interval: 5,\n numberOfItems: 12,\n padWithNItems: 5,\n repeatNumbersNTimes: 3,\n value: 35,\n });\n expect(result).toBe(19); // 12 * 1 + 7 = 19\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}