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