react-native-timer-picker 2.2.0 → 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 (56) hide show
  1. package/README.md +35 -34
  2. package/dist/commonjs/tests/DurationScroll.test.js +94 -0
  3. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
  4. package/dist/commonjs/tests/Modal.test.js +79 -2
  5. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  6. package/dist/commonjs/tests/TimerPicker.test.js +115 -0
  7. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
  8. package/dist/commonjs/tests/TimerPickerModal.test.js +120 -0
  9. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  10. package/dist/commonjs/tests/colorToRgba.test.js +176 -0
  11. package/dist/commonjs/tests/colorToRgba.test.js.map +1 -0
  12. package/dist/commonjs/tests/generateNumbers.test.js +350 -0
  13. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -0
  14. package/dist/commonjs/tests/getAdjustedLimit.test.js +324 -0
  15. package/dist/commonjs/tests/getAdjustedLimit.test.js.map +1 -0
  16. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js +424 -0
  17. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  18. package/dist/commonjs/tests/getInitialScrollIndex.test.js +396 -0
  19. package/dist/commonjs/tests/getInitialScrollIndex.test.js.map +1 -0
  20. package/dist/commonjs/tests/getSafeInitialValue.test.js +497 -0
  21. package/dist/commonjs/tests/getSafeInitialValue.test.js.map +1 -0
  22. package/dist/commonjs/tests/padNumber.test.js +301 -0
  23. package/dist/commonjs/tests/padNumber.test.js.map +1 -0
  24. package/dist/commonjs/utils/colorToRgba.js +5 -0
  25. package/dist/commonjs/utils/colorToRgba.js.map +1 -1
  26. package/dist/commonjs/utils/getAdjustedLimit.js +3 -3
  27. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
  28. package/dist/module/tests/DurationScroll.test.js +94 -0
  29. package/dist/module/tests/DurationScroll.test.js.map +1 -1
  30. package/dist/module/tests/Modal.test.js +80 -3
  31. package/dist/module/tests/Modal.test.js.map +1 -1
  32. package/dist/module/tests/TimerPicker.test.js +115 -0
  33. package/dist/module/tests/TimerPicker.test.js.map +1 -1
  34. package/dist/module/tests/TimerPickerModal.test.js +121 -1
  35. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  36. package/dist/module/tests/colorToRgba.test.js +174 -0
  37. package/dist/module/tests/colorToRgba.test.js.map +1 -0
  38. package/dist/module/tests/generateNumbers.test.js +348 -0
  39. package/dist/module/tests/generateNumbers.test.js.map +1 -0
  40. package/dist/module/tests/getAdjustedLimit.test.js +322 -0
  41. package/dist/module/tests/getAdjustedLimit.test.js.map +1 -0
  42. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js +422 -0
  43. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  44. package/dist/module/tests/getInitialScrollIndex.test.js +394 -0
  45. package/dist/module/tests/getInitialScrollIndex.test.js.map +1 -0
  46. package/dist/module/tests/getSafeInitialValue.test.js +495 -0
  47. package/dist/module/tests/getSafeInitialValue.test.js.map +1 -0
  48. package/dist/module/tests/padNumber.test.js +299 -0
  49. package/dist/module/tests/padNumber.test.js.map +1 -0
  50. package/dist/module/utils/colorToRgba.js +5 -0
  51. package/dist/module/utils/colorToRgba.js.map +1 -1
  52. package/dist/module/utils/getAdjustedLimit.js +3 -3
  53. package/dist/module/utils/getAdjustedLimit.js.map +1 -1
  54. package/dist/typescript/components/TimerPicker/styles.d.ts +0 -247
  55. package/dist/typescript/components/TimerPickerModal/styles.d.ts +0 -152
  56. package/package.json +3 -4
@@ -0,0 +1,424 @@
1
+ "use strict";
2
+
3
+ var _getDurationAndIndexFromScrollOffset = require("../utils/getDurationAndIndexFromScrollOffset");
4
+ describe("getDurationAndIndexFromScrollOffset", () => {
5
+ describe("infinite scroll disabled", () => {
6
+ it("calculates duration and index at start position", () => {
7
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
8
+ disableInfiniteScroll: true,
9
+ interval: 1,
10
+ itemHeight: 50,
11
+ numberOfItems: 60,
12
+ padWithNItems: 2,
13
+ yContentOffset: 0
14
+ });
15
+ expect(result).toEqual({
16
+ duration: 0,
17
+ index: 0
18
+ });
19
+ });
20
+ it("calculates duration and index at middle position", () => {
21
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
22
+ disableInfiniteScroll: true,
23
+ interval: 1,
24
+ itemHeight: 50,
25
+ numberOfItems: 60,
26
+ padWithNItems: 2,
27
+ yContentOffset: 500
28
+ });
29
+ expect(result).toEqual({
30
+ duration: 10,
31
+ index: 10
32
+ });
33
+ });
34
+ it("calculates duration and index with interval of 5", () => {
35
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
36
+ disableInfiniteScroll: true,
37
+ interval: 5,
38
+ itemHeight: 50,
39
+ numberOfItems: 12,
40
+ padWithNItems: 2,
41
+ yContentOffset: 200
42
+ });
43
+ expect(result).toEqual({
44
+ duration: 20,
45
+ index: 4
46
+ });
47
+ });
48
+ it("calculates duration and index with different item height", () => {
49
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
50
+ disableInfiniteScroll: true,
51
+ interval: 1,
52
+ itemHeight: 40,
53
+ numberOfItems: 60,
54
+ padWithNItems: 2,
55
+ yContentOffset: 200
56
+ });
57
+ expect(result).toEqual({
58
+ duration: 5,
59
+ index: 5
60
+ });
61
+ });
62
+ it("rounds to nearest index", () => {
63
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
64
+ disableInfiniteScroll: true,
65
+ interval: 1,
66
+ itemHeight: 50,
67
+ numberOfItems: 60,
68
+ padWithNItems: 2,
69
+ yContentOffset: 127
70
+ });
71
+ expect(result).toEqual({
72
+ duration: 3,
73
+ index: 3
74
+ }); // 127/50 = 2.54, rounds to 3
75
+ });
76
+ it("handles wrap-around at max value", () => {
77
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
78
+ disableInfiniteScroll: true,
79
+ interval: 1,
80
+ itemHeight: 50,
81
+ numberOfItems: 24,
82
+ padWithNItems: 2,
83
+ yContentOffset: 1200
84
+ });
85
+ expect(result).toEqual({
86
+ duration: 0,
87
+ index: 24
88
+ }); // 24 % 24 = 0
89
+ });
90
+ });
91
+ describe("infinite scroll enabled", () => {
92
+ it("calculates duration and index at start position", () => {
93
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
94
+ disableInfiniteScroll: false,
95
+ interval: 1,
96
+ itemHeight: 50,
97
+ numberOfItems: 60,
98
+ padWithNItems: 2,
99
+ yContentOffset: 0
100
+ });
101
+ expect(result).toEqual({
102
+ duration: 2,
103
+ index: 0
104
+ });
105
+ });
106
+ it("accounts for padding offset in infinite scroll", () => {
107
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
108
+ disableInfiniteScroll: false,
109
+ interval: 1,
110
+ itemHeight: 50,
111
+ numberOfItems: 60,
112
+ padWithNItems: 2,
113
+ yContentOffset: 100
114
+ });
115
+ expect(result).toEqual({
116
+ duration: 4,
117
+ index: 2
118
+ });
119
+ });
120
+ it("calculates duration with larger padding", () => {
121
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
122
+ disableInfiniteScroll: false,
123
+ interval: 1,
124
+ itemHeight: 50,
125
+ numberOfItems: 60,
126
+ padWithNItems: 5,
127
+ yContentOffset: 0
128
+ });
129
+ expect(result).toEqual({
130
+ duration: 5,
131
+ index: 0
132
+ });
133
+ });
134
+ it("handles modulo wrap-around correctly", () => {
135
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
136
+ disableInfiniteScroll: false,
137
+ interval: 1,
138
+ itemHeight: 50,
139
+ numberOfItems: 24,
140
+ padWithNItems: 2,
141
+ yContentOffset: 1100
142
+ });
143
+ expect(result).toEqual({
144
+ duration: 0,
145
+ index: 22
146
+ }); // (22 + 2) % 24 = 0, wraps to duration 0
147
+ });
148
+ it("calculates with interval of 15", () => {
149
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
150
+ disableInfiniteScroll: false,
151
+ interval: 15,
152
+ itemHeight: 50,
153
+ numberOfItems: 4,
154
+ padWithNItems: 2,
155
+ yContentOffset: 100
156
+ });
157
+ expect(result).toEqual({
158
+ duration: 0,
159
+ index: 2
160
+ }); // (2 + 2) % 4 = 0, 0 * 15 = 0
161
+ });
162
+ });
163
+ describe("different intervals", () => {
164
+ it("handles interval of 1", () => {
165
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
166
+ disableInfiniteScroll: true,
167
+ interval: 1,
168
+ itemHeight: 50,
169
+ numberOfItems: 60,
170
+ padWithNItems: 2,
171
+ yContentOffset: 300
172
+ });
173
+ expect(result).toEqual({
174
+ duration: 6,
175
+ index: 6
176
+ });
177
+ });
178
+ it("handles interval of 5", () => {
179
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
180
+ disableInfiniteScroll: true,
181
+ interval: 5,
182
+ itemHeight: 50,
183
+ numberOfItems: 12,
184
+ padWithNItems: 2,
185
+ yContentOffset: 300
186
+ });
187
+ expect(result).toEqual({
188
+ duration: 30,
189
+ index: 6
190
+ });
191
+ });
192
+ it("handles interval of 15 for minutes", () => {
193
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
194
+ disableInfiniteScroll: true,
195
+ interval: 15,
196
+ itemHeight: 50,
197
+ numberOfItems: 4,
198
+ padWithNItems: 2,
199
+ yContentOffset: 150
200
+ });
201
+ expect(result).toEqual({
202
+ duration: 45,
203
+ index: 3
204
+ });
205
+ });
206
+ it("handles interval of 10", () => {
207
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
208
+ disableInfiniteScroll: true,
209
+ interval: 10,
210
+ itemHeight: 50,
211
+ numberOfItems: 6,
212
+ padWithNItems: 2,
213
+ yContentOffset: 100
214
+ });
215
+ expect(result).toEqual({
216
+ duration: 20,
217
+ index: 2
218
+ });
219
+ });
220
+ });
221
+ describe("different item heights", () => {
222
+ it("handles item height of 30", () => {
223
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
224
+ disableInfiniteScroll: true,
225
+ interval: 1,
226
+ itemHeight: 30,
227
+ numberOfItems: 60,
228
+ padWithNItems: 2,
229
+ yContentOffset: 180
230
+ });
231
+ expect(result).toEqual({
232
+ duration: 6,
233
+ index: 6
234
+ });
235
+ });
236
+ it("handles item height of 60", () => {
237
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
238
+ disableInfiniteScroll: true,
239
+ interval: 1,
240
+ itemHeight: 60,
241
+ numberOfItems: 60,
242
+ padWithNItems: 2,
243
+ yContentOffset: 360
244
+ });
245
+ expect(result).toEqual({
246
+ duration: 6,
247
+ index: 6
248
+ });
249
+ });
250
+ it("handles item height of 100", () => {
251
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
252
+ disableInfiniteScroll: true,
253
+ interval: 1,
254
+ itemHeight: 100,
255
+ numberOfItems: 60,
256
+ padWithNItems: 2,
257
+ yContentOffset: 500
258
+ });
259
+ expect(result).toEqual({
260
+ duration: 5,
261
+ index: 5
262
+ });
263
+ });
264
+ });
265
+ describe("rounding behavior", () => {
266
+ it("rounds down when closer to lower index", () => {
267
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
268
+ disableInfiniteScroll: true,
269
+ interval: 1,
270
+ itemHeight: 50,
271
+ numberOfItems: 60,
272
+ padWithNItems: 2,
273
+ yContentOffset: 124
274
+ });
275
+ expect(result).toEqual({
276
+ duration: 2,
277
+ index: 2
278
+ }); // 124/50 = 2.48
279
+ });
280
+ it("rounds up when closer to upper index", () => {
281
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
282
+ disableInfiniteScroll: true,
283
+ interval: 1,
284
+ itemHeight: 50,
285
+ numberOfItems: 60,
286
+ padWithNItems: 2,
287
+ yContentOffset: 126
288
+ });
289
+ expect(result).toEqual({
290
+ duration: 3,
291
+ index: 3
292
+ }); // 126/50 = 2.52
293
+ });
294
+ it("rounds to nearest for exact halfway point", () => {
295
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
296
+ disableInfiniteScroll: true,
297
+ interval: 1,
298
+ itemHeight: 50,
299
+ numberOfItems: 60,
300
+ padWithNItems: 2,
301
+ yContentOffset: 125
302
+ });
303
+ expect(result).toEqual({
304
+ duration: 3,
305
+ index: 3
306
+ }); // 125/50 = 2.5, rounds to 3
307
+ });
308
+ });
309
+ describe("edge cases", () => {
310
+ it("handles zero offset", () => {
311
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
312
+ disableInfiniteScroll: true,
313
+ interval: 1,
314
+ itemHeight: 50,
315
+ numberOfItems: 60,
316
+ padWithNItems: 2,
317
+ yContentOffset: 0
318
+ });
319
+ expect(result).toEqual({
320
+ duration: 0,
321
+ index: 0
322
+ });
323
+ });
324
+ it("handles very large offset", () => {
325
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
326
+ disableInfiniteScroll: true,
327
+ interval: 1,
328
+ itemHeight: 50,
329
+ numberOfItems: 24,
330
+ padWithNItems: 2,
331
+ yContentOffset: 5000
332
+ });
333
+ expect(result.index).toBe(100);
334
+ expect(result.duration).toBe(4); // (100 % 24) * 1 = 4
335
+ });
336
+ it("handles small numberOfItems", () => {
337
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
338
+ disableInfiniteScroll: true,
339
+ interval: 1,
340
+ itemHeight: 50,
341
+ numberOfItems: 2,
342
+ padWithNItems: 1,
343
+ yContentOffset: 150
344
+ });
345
+ expect(result).toEqual({
346
+ duration: 1,
347
+ index: 3
348
+ }); // 3 % 2 = 1
349
+ });
350
+ it("handles no padding", () => {
351
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
352
+ disableInfiniteScroll: false,
353
+ interval: 1,
354
+ itemHeight: 50,
355
+ numberOfItems: 60,
356
+ padWithNItems: 0,
357
+ yContentOffset: 100
358
+ });
359
+ expect(result).toEqual({
360
+ duration: 2,
361
+ index: 2
362
+ });
363
+ });
364
+ });
365
+ describe("real-world scenarios", () => {
366
+ it("handles typical hour picker scroll", () => {
367
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
368
+ disableInfiniteScroll: false,
369
+ interval: 1,
370
+ itemHeight: 50,
371
+ numberOfItems: 24,
372
+ padWithNItems: 2,
373
+ yContentOffset: 600
374
+ });
375
+ expect(result).toEqual({
376
+ duration: 14,
377
+ index: 12
378
+ }); // (12 + 2) % 24 = 14
379
+ });
380
+ it("handles typical minute picker scroll", () => {
381
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
382
+ disableInfiniteScroll: false,
383
+ interval: 1,
384
+ itemHeight: 50,
385
+ numberOfItems: 60,
386
+ padWithNItems: 2,
387
+ yContentOffset: 1500
388
+ });
389
+ expect(result).toEqual({
390
+ duration: 32,
391
+ index: 30
392
+ }); // (30 + 2) % 60 = 32
393
+ });
394
+ it("handles minute picker with 5-minute interval", () => {
395
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
396
+ disableInfiniteScroll: false,
397
+ interval: 5,
398
+ itemHeight: 50,
399
+ numberOfItems: 12,
400
+ padWithNItems: 2,
401
+ yContentOffset: 250
402
+ });
403
+ expect(result).toEqual({
404
+ duration: 35,
405
+ index: 5
406
+ }); // (5 + 2) % 12 = 7, 7 * 5 = 35
407
+ });
408
+ it("handles second picker scroll", () => {
409
+ const result = (0, _getDurationAndIndexFromScrollOffset.getDurationAndIndexFromScrollOffset)({
410
+ disableInfiniteScroll: true,
411
+ interval: 1,
412
+ itemHeight: 40,
413
+ numberOfItems: 60,
414
+ padWithNItems: 2,
415
+ yContentOffset: 800
416
+ });
417
+ expect(result).toEqual({
418
+ duration: 20,
419
+ index: 20
420
+ });
421
+ });
422
+ });
423
+ });
424
+ //# sourceMappingURL=getDurationAndIndexFromScrollOffset.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_getDurationAndIndexFromScrollOffset","require","describe","it","result","getDurationAndIndexFromScrollOffset","disableInfiniteScroll","interval","itemHeight","numberOfItems","padWithNItems","yContentOffset","expect","toEqual","duration","index","toBe"],"sources":["getDurationAndIndexFromScrollOffset.test.ts"],"sourcesContent":["import { getDurationAndIndexFromScrollOffset } from \"../utils/getDurationAndIndexFromScrollOffset\";\n\ndescribe(\"getDurationAndIndexFromScrollOffset\", () => {\n describe(\"infinite scroll disabled\", () => {\n it(\"calculates duration and index at start position\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 0,\n });\n expect(result).toEqual({ duration: 0, index: 0 });\n });\n\n it(\"calculates duration and index at middle position\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 500,\n });\n expect(result).toEqual({ duration: 10, index: 10 });\n });\n\n it(\"calculates duration and index with interval of 5\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 5,\n itemHeight: 50,\n numberOfItems: 12,\n padWithNItems: 2,\n yContentOffset: 200,\n });\n expect(result).toEqual({ duration: 20, index: 4 });\n });\n\n it(\"calculates duration and index with different item height\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 40,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 200,\n });\n expect(result).toEqual({ duration: 5, index: 5 });\n });\n\n it(\"rounds to nearest index\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 127,\n });\n expect(result).toEqual({ duration: 3, index: 3 }); // 127/50 = 2.54, rounds to 3\n });\n\n it(\"handles wrap-around at max value\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 24,\n padWithNItems: 2,\n yContentOffset: 1200,\n });\n expect(result).toEqual({ duration: 0, index: 24 }); // 24 % 24 = 0\n });\n });\n\n describe(\"infinite scroll enabled\", () => {\n it(\"calculates duration and index at start position\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 0,\n });\n expect(result).toEqual({ duration: 2, index: 0 });\n });\n\n it(\"accounts for padding offset in infinite scroll\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 100,\n });\n expect(result).toEqual({ duration: 4, index: 2 });\n });\n\n it(\"calculates duration with larger padding\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 5,\n yContentOffset: 0,\n });\n expect(result).toEqual({ duration: 5, index: 0 });\n });\n\n it(\"handles modulo wrap-around correctly\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 24,\n padWithNItems: 2,\n yContentOffset: 1100,\n });\n expect(result).toEqual({ duration: 0, index: 22 }); // (22 + 2) % 24 = 0, wraps to duration 0\n });\n\n it(\"calculates with interval of 15\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 15,\n itemHeight: 50,\n numberOfItems: 4,\n padWithNItems: 2,\n yContentOffset: 100,\n });\n expect(result).toEqual({ duration: 0, index: 2 }); // (2 + 2) % 4 = 0, 0 * 15 = 0\n });\n });\n\n describe(\"different intervals\", () => {\n it(\"handles interval of 1\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 300,\n });\n expect(result).toEqual({ duration: 6, index: 6 });\n });\n\n it(\"handles interval of 5\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 5,\n itemHeight: 50,\n numberOfItems: 12,\n padWithNItems: 2,\n yContentOffset: 300,\n });\n expect(result).toEqual({ duration: 30, index: 6 });\n });\n\n it(\"handles interval of 15 for minutes\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 15,\n itemHeight: 50,\n numberOfItems: 4,\n padWithNItems: 2,\n yContentOffset: 150,\n });\n expect(result).toEqual({ duration: 45, index: 3 });\n });\n\n it(\"handles interval of 10\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 10,\n itemHeight: 50,\n numberOfItems: 6,\n padWithNItems: 2,\n yContentOffset: 100,\n });\n expect(result).toEqual({ duration: 20, index: 2 });\n });\n });\n\n describe(\"different item heights\", () => {\n it(\"handles item height of 30\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 30,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 180,\n });\n expect(result).toEqual({ duration: 6, index: 6 });\n });\n\n it(\"handles item height of 60\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 60,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 360,\n });\n expect(result).toEqual({ duration: 6, index: 6 });\n });\n\n it(\"handles item height of 100\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 100,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 500,\n });\n expect(result).toEqual({ duration: 5, index: 5 });\n });\n });\n\n describe(\"rounding behavior\", () => {\n it(\"rounds down when closer to lower index\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 124,\n });\n expect(result).toEqual({ duration: 2, index: 2 }); // 124/50 = 2.48\n });\n\n it(\"rounds up when closer to upper index\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 126,\n });\n expect(result).toEqual({ duration: 3, index: 3 }); // 126/50 = 2.52\n });\n\n it(\"rounds to nearest for exact halfway point\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 125,\n });\n expect(result).toEqual({ duration: 3, index: 3 }); // 125/50 = 2.5, rounds to 3\n });\n });\n\n describe(\"edge cases\", () => {\n it(\"handles zero offset\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 0,\n });\n expect(result).toEqual({ duration: 0, index: 0 });\n });\n\n it(\"handles very large offset\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 24,\n padWithNItems: 2,\n yContentOffset: 5000,\n });\n expect(result.index).toBe(100);\n expect(result.duration).toBe(4); // (100 % 24) * 1 = 4\n });\n\n it(\"handles small numberOfItems\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 2,\n padWithNItems: 1,\n yContentOffset: 150,\n });\n expect(result).toEqual({ duration: 1, index: 3 }); // 3 % 2 = 1\n });\n\n it(\"handles no padding\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 0,\n yContentOffset: 100,\n });\n expect(result).toEqual({ duration: 2, index: 2 });\n });\n });\n\n describe(\"real-world scenarios\", () => {\n it(\"handles typical hour picker scroll\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 24,\n padWithNItems: 2,\n yContentOffset: 600,\n });\n expect(result).toEqual({ duration: 14, index: 12 }); // (12 + 2) % 24 = 14\n });\n\n it(\"handles typical minute picker scroll\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 1,\n itemHeight: 50,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 1500,\n });\n expect(result).toEqual({ duration: 32, index: 30 }); // (30 + 2) % 60 = 32\n });\n\n it(\"handles minute picker with 5-minute interval\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: false,\n interval: 5,\n itemHeight: 50,\n numberOfItems: 12,\n padWithNItems: 2,\n yContentOffset: 250,\n });\n expect(result).toEqual({ duration: 35, index: 5 }); // (5 + 2) % 12 = 7, 7 * 5 = 35\n });\n\n it(\"handles second picker scroll\", () => {\n const result = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll: true,\n interval: 1,\n itemHeight: 40,\n numberOfItems: 60,\n padWithNItems: 2,\n yContentOffset: 800,\n });\n expect(result).toEqual({ duration: 20, index: 20 });\n });\n });\n});\n"],"mappings":";;AAAA,IAAAA,oCAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,qCAAqC,EAAE,MAAM;EAClDA,QAAQ,CAAC,0BAA0B,EAAE,MAAM;IACvCC,EAAE,CAAC,iDAAiD,EAAE,MAAM;MACxD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,kDAAkD,EAAE,MAAM;MACzD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG,CAAC,CAAC;IACvD,CAAC,CAAC;IAEFZ,EAAE,CAAC,kDAAkD,EAAE,MAAM;MACzD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACtD,CAAC,CAAC;IAEFZ,EAAE,CAAC,0DAA0D,EAAE,MAAM;MACjE,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,yBAAyB,EAAE,MAAM;MAChC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEFZ,EAAE,CAAC,kCAAkC,EAAE,MAAM;MACzC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAG,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFb,QAAQ,CAAC,yBAAyB,EAAE,MAAM;IACtCC,EAAE,CAAC,iDAAiD,EAAE,MAAM;MACxD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACvD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAChD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC7C,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAG,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IAEFZ,EAAE,CAAC,gCAAgC,EAAE,MAAM;MACvC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,EAAE;QACZC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,CAAC;QAChBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFb,QAAQ,CAAC,qBAAqB,EAAE,MAAM;IAClCC,EAAE,CAAC,uBAAuB,EAAE,MAAM;MAC9B,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,uBAAuB,EAAE,MAAM;MAC9B,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACtD,CAAC,CAAC;IAEFZ,EAAE,CAAC,oCAAoC,EAAE,MAAM;MAC3C,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,EAAE;QACZC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,CAAC;QAChBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACtD,CAAC,CAAC;IAEFZ,EAAE,CAAC,wBAAwB,EAAE,MAAM;MAC/B,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,EAAE;QACZC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,CAAC;QAChBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACtD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFb,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACrCC,EAAE,CAAC,2BAA2B,EAAE,MAAM;MAClC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,2BAA2B,EAAE,MAAM;MAClC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,4BAA4B,EAAE,MAAM;MACnC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,GAAG;QACfC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFb,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IAChCC,EAAE,CAAC,wCAAwC,EAAE,MAAM;MAC/C,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEFZ,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC7C,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEFZ,EAAE,CAAC,2CAA2C,EAAE,MAAM;MAClD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFb,QAAQ,CAAC,YAAY,EAAE,MAAM;IACzBC,EAAE,CAAC,qBAAqB,EAAE,MAAM;MAC5B,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEFZ,EAAE,CAAC,2BAA2B,EAAE,MAAM;MAClC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAACW,KAAK,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MAC9BJ,MAAM,CAACR,MAAM,CAACU,QAAQ,CAAC,CAACE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEFb,EAAE,CAAC,6BAA6B,EAAE,MAAM;MACpC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,CAAC;QAChBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEFZ,EAAE,CAAC,oBAAoB,EAAE,MAAM;MAC3B,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC;IACrD,CAAC,CAAC;EACN,CAAC,CAAC;EAEFb,QAAQ,CAAC,sBAAsB,EAAE,MAAM;IACnCC,EAAE,CAAC,oCAAoC,EAAE,MAAM;MAC3C,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IAEFZ,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC7C,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IAEFZ,EAAE,CAAC,8CAA8C,EAAE,MAAM;MACrD,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,KAAK;QAC5BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IAEFZ,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACrC,MAAMC,MAAM,GAAG,IAAAC,wEAAmC,EAAC;QAC/CC,qBAAqB,EAAE,IAAI;QAC3BC,QAAQ,EAAE,CAAC;QACXC,UAAU,EAAE,EAAE;QACdC,aAAa,EAAE,EAAE;QACjBC,aAAa,EAAE,CAAC;QAChBC,cAAc,EAAE;MACpB,CAAC,CAAC;MACFC,MAAM,CAACR,MAAM,CAAC,CAACS,OAAO,CAAC;QAAEC,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAG,CAAC,CAAC;IACvD,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}