react-native-timer-picker 2.2.0 → 2.2.2
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.
- package/README.md +37 -35
- package/dist/commonjs/components/TimerPicker/TimerPicker.js +20 -9
- package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
- package/dist/commonjs/tests/DurationScroll.test.js +94 -0
- package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
- package/dist/commonjs/tests/Modal.test.js +79 -2
- package/dist/commonjs/tests/Modal.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPicker.test.js +115 -0
- package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPickerModal.test.js +120 -0
- package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/commonjs/tests/colorToRgba.test.js +176 -0
- package/dist/commonjs/tests/colorToRgba.test.js.map +1 -0
- package/dist/commonjs/tests/generateNumbers.test.js +350 -0
- package/dist/commonjs/tests/generateNumbers.test.js.map +1 -0
- package/dist/commonjs/tests/getAdjustedLimit.test.js +324 -0
- package/dist/commonjs/tests/getAdjustedLimit.test.js.map +1 -0
- package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js +424 -0
- package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
- package/dist/commonjs/tests/getInitialScrollIndex.test.js +396 -0
- package/dist/commonjs/tests/getInitialScrollIndex.test.js.map +1 -0
- package/dist/commonjs/tests/getSafeInitialValue.test.js +497 -0
- package/dist/commonjs/tests/getSafeInitialValue.test.js.map +1 -0
- package/dist/commonjs/tests/padNumber.test.js +301 -0
- package/dist/commonjs/tests/padNumber.test.js.map +1 -0
- package/dist/commonjs/utils/colorToRgba.js +5 -0
- package/dist/commonjs/utils/colorToRgba.js.map +1 -1
- package/dist/commonjs/utils/getAdjustedLimit.js +3 -3
- package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
- package/dist/module/components/TimerPicker/TimerPicker.js +20 -9
- package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
- package/dist/module/components/TimerPicker/types.js.map +1 -1
- package/dist/module/tests/DurationScroll.test.js +94 -0
- package/dist/module/tests/DurationScroll.test.js.map +1 -1
- package/dist/module/tests/Modal.test.js +80 -3
- package/dist/module/tests/Modal.test.js.map +1 -1
- package/dist/module/tests/TimerPicker.test.js +115 -0
- package/dist/module/tests/TimerPicker.test.js.map +1 -1
- package/dist/module/tests/TimerPickerModal.test.js +121 -1
- package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/module/tests/colorToRgba.test.js +174 -0
- package/dist/module/tests/colorToRgba.test.js.map +1 -0
- package/dist/module/tests/generateNumbers.test.js +348 -0
- package/dist/module/tests/generateNumbers.test.js.map +1 -0
- package/dist/module/tests/getAdjustedLimit.test.js +322 -0
- package/dist/module/tests/getAdjustedLimit.test.js.map +1 -0
- package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js +422 -0
- package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
- package/dist/module/tests/getInitialScrollIndex.test.js +394 -0
- package/dist/module/tests/getInitialScrollIndex.test.js.map +1 -0
- package/dist/module/tests/getSafeInitialValue.test.js +495 -0
- package/dist/module/tests/getSafeInitialValue.test.js.map +1 -0
- package/dist/module/tests/padNumber.test.js +299 -0
- package/dist/module/tests/padNumber.test.js.map +1 -0
- package/dist/module/utils/colorToRgba.js +5 -0
- package/dist/module/utils/colorToRgba.js.map +1 -1
- package/dist/module/utils/getAdjustedLimit.js +3 -3
- package/dist/module/utils/getAdjustedLimit.js.map +1 -1
- package/dist/typescript/components/TimerPicker/styles.d.ts +0 -247
- package/dist/typescript/components/TimerPicker/types.d.ts +4 -4
- package/dist/typescript/components/TimerPickerModal/styles.d.ts +0 -152
- package/package.json +3 -4
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _padNumber = require("../utils/padNumber");
|
|
4
|
+
describe("padNumber", () => {
|
|
5
|
+
describe("padding with zero", () => {
|
|
6
|
+
it("pads single digit with zero", () => {
|
|
7
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
8
|
+
padWithZero: true
|
|
9
|
+
})).toBe("00");
|
|
10
|
+
expect((0, _padNumber.padNumber)(1, {
|
|
11
|
+
padWithZero: true
|
|
12
|
+
})).toBe("01");
|
|
13
|
+
expect((0, _padNumber.padNumber)(5, {
|
|
14
|
+
padWithZero: true
|
|
15
|
+
})).toBe("05");
|
|
16
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
17
|
+
padWithZero: true
|
|
18
|
+
})).toBe("09");
|
|
19
|
+
});
|
|
20
|
+
it("does not pad double digits", () => {
|
|
21
|
+
expect((0, _padNumber.padNumber)(10, {
|
|
22
|
+
padWithZero: true
|
|
23
|
+
})).toBe("10");
|
|
24
|
+
expect((0, _padNumber.padNumber)(15, {
|
|
25
|
+
padWithZero: true
|
|
26
|
+
})).toBe("15");
|
|
27
|
+
expect((0, _padNumber.padNumber)(99, {
|
|
28
|
+
padWithZero: true
|
|
29
|
+
})).toBe("99");
|
|
30
|
+
});
|
|
31
|
+
it("does not pad triple digits", () => {
|
|
32
|
+
expect((0, _padNumber.padNumber)(100, {
|
|
33
|
+
padWithZero: true
|
|
34
|
+
})).toBe("100");
|
|
35
|
+
expect((0, _padNumber.padNumber)(255, {
|
|
36
|
+
padWithZero: true
|
|
37
|
+
})).toBe("255");
|
|
38
|
+
expect((0, _padNumber.padNumber)(999, {
|
|
39
|
+
padWithZero: true
|
|
40
|
+
})).toBe("999");
|
|
41
|
+
});
|
|
42
|
+
it("handles very large numbers", () => {
|
|
43
|
+
expect((0, _padNumber.padNumber)(1000, {
|
|
44
|
+
padWithZero: true
|
|
45
|
+
})).toBe("1000");
|
|
46
|
+
expect((0, _padNumber.padNumber)(99999, {
|
|
47
|
+
padWithZero: true
|
|
48
|
+
})).toBe("99999");
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe("padding with space", () => {
|
|
52
|
+
it("pads single digit with space", () => {
|
|
53
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
54
|
+
padWithZero: false
|
|
55
|
+
})).toBe(" 0");
|
|
56
|
+
expect((0, _padNumber.padNumber)(1, {
|
|
57
|
+
padWithZero: false
|
|
58
|
+
})).toBe(" 1");
|
|
59
|
+
expect((0, _padNumber.padNumber)(5, {
|
|
60
|
+
padWithZero: false
|
|
61
|
+
})).toBe(" 5");
|
|
62
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
63
|
+
padWithZero: false
|
|
64
|
+
})).toBe(" 9");
|
|
65
|
+
});
|
|
66
|
+
it("does not pad double digits", () => {
|
|
67
|
+
expect((0, _padNumber.padNumber)(10, {
|
|
68
|
+
padWithZero: false
|
|
69
|
+
})).toBe("10");
|
|
70
|
+
expect((0, _padNumber.padNumber)(15, {
|
|
71
|
+
padWithZero: false
|
|
72
|
+
})).toBe("15");
|
|
73
|
+
expect((0, _padNumber.padNumber)(99, {
|
|
74
|
+
padWithZero: false
|
|
75
|
+
})).toBe("99");
|
|
76
|
+
});
|
|
77
|
+
it("does not pad triple digits", () => {
|
|
78
|
+
expect((0, _padNumber.padNumber)(100, {
|
|
79
|
+
padWithZero: false
|
|
80
|
+
})).toBe("100");
|
|
81
|
+
expect((0, _padNumber.padNumber)(255, {
|
|
82
|
+
padWithZero: false
|
|
83
|
+
})).toBe("255");
|
|
84
|
+
expect((0, _padNumber.padNumber)(999, {
|
|
85
|
+
padWithZero: false
|
|
86
|
+
})).toBe("999");
|
|
87
|
+
});
|
|
88
|
+
it("handles very large numbers", () => {
|
|
89
|
+
expect((0, _padNumber.padNumber)(1000, {
|
|
90
|
+
padWithZero: false
|
|
91
|
+
})).toBe("1000");
|
|
92
|
+
expect((0, _padNumber.padNumber)(99999, {
|
|
93
|
+
padWithZero: false
|
|
94
|
+
})).toBe("99999");
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe("no options provided", () => {
|
|
98
|
+
it("defaults to space padding for single digits", () => {
|
|
99
|
+
expect((0, _padNumber.padNumber)(0)).toBe(" 0");
|
|
100
|
+
expect((0, _padNumber.padNumber)(1)).toBe(" 1");
|
|
101
|
+
expect((0, _padNumber.padNumber)(5)).toBe(" 5");
|
|
102
|
+
expect((0, _padNumber.padNumber)(9)).toBe(" 9");
|
|
103
|
+
});
|
|
104
|
+
it("does not pad double digits", () => {
|
|
105
|
+
expect((0, _padNumber.padNumber)(10)).toBe("10");
|
|
106
|
+
expect((0, _padNumber.padNumber)(15)).toBe("15");
|
|
107
|
+
expect((0, _padNumber.padNumber)(99)).toBe("99");
|
|
108
|
+
});
|
|
109
|
+
it("does not pad triple digits", () => {
|
|
110
|
+
expect((0, _padNumber.padNumber)(100)).toBe("100");
|
|
111
|
+
expect((0, _padNumber.padNumber)(255)).toBe("255");
|
|
112
|
+
expect((0, _padNumber.padNumber)(999)).toBe("999");
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe("undefined padWithZero option", () => {
|
|
116
|
+
it("defaults to space padding", () => {
|
|
117
|
+
expect((0, _padNumber.padNumber)(0, {})).toBe(" 0");
|
|
118
|
+
expect((0, _padNumber.padNumber)(5, {})).toBe(" 5");
|
|
119
|
+
expect((0, _padNumber.padNumber)(9, {})).toBe(" 9");
|
|
120
|
+
});
|
|
121
|
+
it("does not pad double digits", () => {
|
|
122
|
+
expect((0, _padNumber.padNumber)(10, {})).toBe("10");
|
|
123
|
+
expect((0, _padNumber.padNumber)(50, {})).toBe("50");
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
describe("edge cases at boundary", () => {
|
|
127
|
+
it("handles value exactly 9 (last single digit)", () => {
|
|
128
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
129
|
+
padWithZero: true
|
|
130
|
+
})).toBe("09");
|
|
131
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
132
|
+
padWithZero: false
|
|
133
|
+
})).toBe(" 9");
|
|
134
|
+
expect((0, _padNumber.padNumber)(9)).toBe(" 9");
|
|
135
|
+
});
|
|
136
|
+
it("handles value exactly 10 (first double digit)", () => {
|
|
137
|
+
expect((0, _padNumber.padNumber)(10, {
|
|
138
|
+
padWithZero: true
|
|
139
|
+
})).toBe("10");
|
|
140
|
+
expect((0, _padNumber.padNumber)(10, {
|
|
141
|
+
padWithZero: false
|
|
142
|
+
})).toBe("10");
|
|
143
|
+
expect((0, _padNumber.padNumber)(10)).toBe("10");
|
|
144
|
+
});
|
|
145
|
+
it("handles value exactly 0", () => {
|
|
146
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
147
|
+
padWithZero: true
|
|
148
|
+
})).toBe("00");
|
|
149
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
150
|
+
padWithZero: false
|
|
151
|
+
})).toBe(" 0");
|
|
152
|
+
expect((0, _padNumber.padNumber)(0)).toBe(" 0");
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
describe("real-world scenarios", () => {
|
|
156
|
+
it("formats hours for 12-hour display", () => {
|
|
157
|
+
expect((0, _padNumber.padNumber)(1, {
|
|
158
|
+
padWithZero: true
|
|
159
|
+
})).toBe("01");
|
|
160
|
+
expect((0, _padNumber.padNumber)(12, {
|
|
161
|
+
padWithZero: true
|
|
162
|
+
})).toBe("12");
|
|
163
|
+
});
|
|
164
|
+
it("formats hours for 24-hour display", () => {
|
|
165
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
166
|
+
padWithZero: true
|
|
167
|
+
})).toBe("00");
|
|
168
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
169
|
+
padWithZero: true
|
|
170
|
+
})).toBe("09");
|
|
171
|
+
expect((0, _padNumber.padNumber)(23, {
|
|
172
|
+
padWithZero: true
|
|
173
|
+
})).toBe("23");
|
|
174
|
+
});
|
|
175
|
+
it("formats minutes", () => {
|
|
176
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
177
|
+
padWithZero: true
|
|
178
|
+
})).toBe("00");
|
|
179
|
+
expect((0, _padNumber.padNumber)(5, {
|
|
180
|
+
padWithZero: true
|
|
181
|
+
})).toBe("05");
|
|
182
|
+
expect((0, _padNumber.padNumber)(30, {
|
|
183
|
+
padWithZero: true
|
|
184
|
+
})).toBe("30");
|
|
185
|
+
expect((0, _padNumber.padNumber)(59, {
|
|
186
|
+
padWithZero: true
|
|
187
|
+
})).toBe("59");
|
|
188
|
+
});
|
|
189
|
+
it("formats seconds", () => {
|
|
190
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
191
|
+
padWithZero: true
|
|
192
|
+
})).toBe("00");
|
|
193
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
194
|
+
padWithZero: true
|
|
195
|
+
})).toBe("09");
|
|
196
|
+
expect((0, _padNumber.padNumber)(45, {
|
|
197
|
+
padWithZero: true
|
|
198
|
+
})).toBe("45");
|
|
199
|
+
expect((0, _padNumber.padNumber)(59, {
|
|
200
|
+
padWithZero: true
|
|
201
|
+
})).toBe("59");
|
|
202
|
+
});
|
|
203
|
+
it("formats days without padding preference", () => {
|
|
204
|
+
expect((0, _padNumber.padNumber)(1, {
|
|
205
|
+
padWithZero: false
|
|
206
|
+
})).toBe(" 1");
|
|
207
|
+
expect((0, _padNumber.padNumber)(7, {
|
|
208
|
+
padWithZero: false
|
|
209
|
+
})).toBe(" 7");
|
|
210
|
+
expect((0, _padNumber.padNumber)(30, {
|
|
211
|
+
padWithZero: false
|
|
212
|
+
})).toBe("30");
|
|
213
|
+
expect((0, _padNumber.padNumber)(365, {
|
|
214
|
+
padWithZero: false
|
|
215
|
+
})).toBe("365");
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
describe("all single digits", () => {
|
|
219
|
+
it("correctly pads all single digits 0-9 with zero", () => {
|
|
220
|
+
for (let i = 0; i < 10; i++) {
|
|
221
|
+
const result = (0, _padNumber.padNumber)(i, {
|
|
222
|
+
padWithZero: true
|
|
223
|
+
});
|
|
224
|
+
expect(result).toBe(`0${i}`);
|
|
225
|
+
expect(result).toHaveLength(2);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
it("correctly pads all single digits 0-9 with space", () => {
|
|
229
|
+
for (let i = 0; i < 10; i++) {
|
|
230
|
+
const result = (0, _padNumber.padNumber)(i, {
|
|
231
|
+
padWithZero: false
|
|
232
|
+
});
|
|
233
|
+
expect(result).toBe(` ${i}`);
|
|
234
|
+
expect(result).toHaveLength(2);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
describe("return type", () => {
|
|
239
|
+
it("always returns a string", () => {
|
|
240
|
+
expect(typeof (0, _padNumber.padNumber)(0, {
|
|
241
|
+
padWithZero: true
|
|
242
|
+
})).toBe("string");
|
|
243
|
+
expect(typeof (0, _padNumber.padNumber)(5, {
|
|
244
|
+
padWithZero: true
|
|
245
|
+
})).toBe("string");
|
|
246
|
+
expect(typeof (0, _padNumber.padNumber)(10, {
|
|
247
|
+
padWithZero: true
|
|
248
|
+
})).toBe("string");
|
|
249
|
+
expect(typeof (0, _padNumber.padNumber)(100, {
|
|
250
|
+
padWithZero: true
|
|
251
|
+
})).toBe("string");
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
describe("string length", () => {
|
|
255
|
+
it("returns 2-character string for single digits", () => {
|
|
256
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
257
|
+
padWithZero: true
|
|
258
|
+
})).toHaveLength(2);
|
|
259
|
+
expect((0, _padNumber.padNumber)(5, {
|
|
260
|
+
padWithZero: true
|
|
261
|
+
})).toHaveLength(2);
|
|
262
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
263
|
+
padWithZero: true
|
|
264
|
+
})).toHaveLength(2);
|
|
265
|
+
});
|
|
266
|
+
it("returns 2-character string for single digits with space", () => {
|
|
267
|
+
expect((0, _padNumber.padNumber)(0, {
|
|
268
|
+
padWithZero: false
|
|
269
|
+
})).toHaveLength(2);
|
|
270
|
+
expect((0, _padNumber.padNumber)(5, {
|
|
271
|
+
padWithZero: false
|
|
272
|
+
})).toHaveLength(2);
|
|
273
|
+
expect((0, _padNumber.padNumber)(9, {
|
|
274
|
+
padWithZero: false
|
|
275
|
+
})).toHaveLength(2);
|
|
276
|
+
});
|
|
277
|
+
it("returns correct length for double digits", () => {
|
|
278
|
+
expect((0, _padNumber.padNumber)(10, {
|
|
279
|
+
padWithZero: true
|
|
280
|
+
})).toHaveLength(2);
|
|
281
|
+
expect((0, _padNumber.padNumber)(50, {
|
|
282
|
+
padWithZero: true
|
|
283
|
+
})).toHaveLength(2);
|
|
284
|
+
expect((0, _padNumber.padNumber)(99, {
|
|
285
|
+
padWithZero: true
|
|
286
|
+
})).toHaveLength(2);
|
|
287
|
+
});
|
|
288
|
+
it("returns correct length for triple digits", () => {
|
|
289
|
+
expect((0, _padNumber.padNumber)(100, {
|
|
290
|
+
padWithZero: true
|
|
291
|
+
})).toHaveLength(3);
|
|
292
|
+
expect((0, _padNumber.padNumber)(500, {
|
|
293
|
+
padWithZero: true
|
|
294
|
+
})).toHaveLength(3);
|
|
295
|
+
expect((0, _padNumber.padNumber)(999, {
|
|
296
|
+
padWithZero: true
|
|
297
|
+
})).toHaveLength(3);
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
//# sourceMappingURL=padNumber.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_padNumber","require","describe","it","expect","padNumber","padWithZero","toBe","i","result","toHaveLength"],"sources":["padNumber.test.ts"],"sourcesContent":["import { padNumber } from \"../utils/padNumber\";\n\ndescribe(\"padNumber\", () => {\n describe(\"padding with zero\", () => {\n it(\"pads single digit with zero\", () => {\n expect(padNumber(0, { padWithZero: true })).toBe(\"00\");\n expect(padNumber(1, { padWithZero: true })).toBe(\"01\");\n expect(padNumber(5, { padWithZero: true })).toBe(\"05\");\n expect(padNumber(9, { padWithZero: true })).toBe(\"09\");\n });\n\n it(\"does not pad double digits\", () => {\n expect(padNumber(10, { padWithZero: true })).toBe(\"10\");\n expect(padNumber(15, { padWithZero: true })).toBe(\"15\");\n expect(padNumber(99, { padWithZero: true })).toBe(\"99\");\n });\n\n it(\"does not pad triple digits\", () => {\n expect(padNumber(100, { padWithZero: true })).toBe(\"100\");\n expect(padNumber(255, { padWithZero: true })).toBe(\"255\");\n expect(padNumber(999, { padWithZero: true })).toBe(\"999\");\n });\n\n it(\"handles very large numbers\", () => {\n expect(padNumber(1000, { padWithZero: true })).toBe(\"1000\");\n expect(padNumber(99999, { padWithZero: true })).toBe(\"99999\");\n });\n });\n\n describe(\"padding with space\", () => {\n it(\"pads single digit with space\", () => {\n expect(padNumber(0, { padWithZero: false })).toBe(\" 0\");\n expect(padNumber(1, { padWithZero: false })).toBe(\" 1\");\n expect(padNumber(5, { padWithZero: false })).toBe(\" 5\");\n expect(padNumber(9, { padWithZero: false })).toBe(\" 9\");\n });\n\n it(\"does not pad double digits\", () => {\n expect(padNumber(10, { padWithZero: false })).toBe(\"10\");\n expect(padNumber(15, { padWithZero: false })).toBe(\"15\");\n expect(padNumber(99, { padWithZero: false })).toBe(\"99\");\n });\n\n it(\"does not pad triple digits\", () => {\n expect(padNumber(100, { padWithZero: false })).toBe(\"100\");\n expect(padNumber(255, { padWithZero: false })).toBe(\"255\");\n expect(padNumber(999, { padWithZero: false })).toBe(\"999\");\n });\n\n it(\"handles very large numbers\", () => {\n expect(padNumber(1000, { padWithZero: false })).toBe(\"1000\");\n expect(padNumber(99999, { padWithZero: false })).toBe(\"99999\");\n });\n });\n\n describe(\"no options provided\", () => {\n it(\"defaults to space padding for single digits\", () => {\n expect(padNumber(0)).toBe(\" 0\");\n expect(padNumber(1)).toBe(\" 1\");\n expect(padNumber(5)).toBe(\" 5\");\n expect(padNumber(9)).toBe(\" 9\");\n });\n\n it(\"does not pad double digits\", () => {\n expect(padNumber(10)).toBe(\"10\");\n expect(padNumber(15)).toBe(\"15\");\n expect(padNumber(99)).toBe(\"99\");\n });\n\n it(\"does not pad triple digits\", () => {\n expect(padNumber(100)).toBe(\"100\");\n expect(padNumber(255)).toBe(\"255\");\n expect(padNumber(999)).toBe(\"999\");\n });\n });\n\n describe(\"undefined padWithZero option\", () => {\n it(\"defaults to space padding\", () => {\n expect(padNumber(0, {})).toBe(\" 0\");\n expect(padNumber(5, {})).toBe(\" 5\");\n expect(padNumber(9, {})).toBe(\" 9\");\n });\n\n it(\"does not pad double digits\", () => {\n expect(padNumber(10, {})).toBe(\"10\");\n expect(padNumber(50, {})).toBe(\"50\");\n });\n });\n\n describe(\"edge cases at boundary\", () => {\n it(\"handles value exactly 9 (last single digit)\", () => {\n expect(padNumber(9, { padWithZero: true })).toBe(\"09\");\n expect(padNumber(9, { padWithZero: false })).toBe(\" 9\");\n expect(padNumber(9)).toBe(\" 9\");\n });\n\n it(\"handles value exactly 10 (first double digit)\", () => {\n expect(padNumber(10, { padWithZero: true })).toBe(\"10\");\n expect(padNumber(10, { padWithZero: false })).toBe(\"10\");\n expect(padNumber(10)).toBe(\"10\");\n });\n\n it(\"handles value exactly 0\", () => {\n expect(padNumber(0, { padWithZero: true })).toBe(\"00\");\n expect(padNumber(0, { padWithZero: false })).toBe(\" 0\");\n expect(padNumber(0)).toBe(\" 0\");\n });\n });\n\n describe(\"real-world scenarios\", () => {\n it(\"formats hours for 12-hour display\", () => {\n expect(padNumber(1, { padWithZero: true })).toBe(\"01\");\n expect(padNumber(12, { padWithZero: true })).toBe(\"12\");\n });\n\n it(\"formats hours for 24-hour display\", () => {\n expect(padNumber(0, { padWithZero: true })).toBe(\"00\");\n expect(padNumber(9, { padWithZero: true })).toBe(\"09\");\n expect(padNumber(23, { padWithZero: true })).toBe(\"23\");\n });\n\n it(\"formats minutes\", () => {\n expect(padNumber(0, { padWithZero: true })).toBe(\"00\");\n expect(padNumber(5, { padWithZero: true })).toBe(\"05\");\n expect(padNumber(30, { padWithZero: true })).toBe(\"30\");\n expect(padNumber(59, { padWithZero: true })).toBe(\"59\");\n });\n\n it(\"formats seconds\", () => {\n expect(padNumber(0, { padWithZero: true })).toBe(\"00\");\n expect(padNumber(9, { padWithZero: true })).toBe(\"09\");\n expect(padNumber(45, { padWithZero: true })).toBe(\"45\");\n expect(padNumber(59, { padWithZero: true })).toBe(\"59\");\n });\n\n it(\"formats days without padding preference\", () => {\n expect(padNumber(1, { padWithZero: false })).toBe(\" 1\");\n expect(padNumber(7, { padWithZero: false })).toBe(\" 7\");\n expect(padNumber(30, { padWithZero: false })).toBe(\"30\");\n expect(padNumber(365, { padWithZero: false })).toBe(\"365\");\n });\n });\n\n describe(\"all single digits\", () => {\n it(\"correctly pads all single digits 0-9 with zero\", () => {\n for (let i = 0; i < 10; i++) {\n const result = padNumber(i, { padWithZero: true });\n expect(result).toBe(`0${i}`);\n expect(result).toHaveLength(2);\n }\n });\n\n it(\"correctly pads all single digits 0-9 with space\", () => {\n for (let i = 0; i < 10; i++) {\n const result = padNumber(i, { padWithZero: false });\n expect(result).toBe(` ${i}`);\n expect(result).toHaveLength(2);\n }\n });\n });\n\n describe(\"return type\", () => {\n it(\"always returns a string\", () => {\n expect(typeof padNumber(0, { padWithZero: true })).toBe(\"string\");\n expect(typeof padNumber(5, { padWithZero: true })).toBe(\"string\");\n expect(typeof padNumber(10, { padWithZero: true })).toBe(\"string\");\n expect(typeof padNumber(100, { padWithZero: true })).toBe(\"string\");\n });\n });\n\n describe(\"string length\", () => {\n it(\"returns 2-character string for single digits\", () => {\n expect(padNumber(0, { padWithZero: true })).toHaveLength(2);\n expect(padNumber(5, { padWithZero: true })).toHaveLength(2);\n expect(padNumber(9, { padWithZero: true })).toHaveLength(2);\n });\n\n it(\"returns 2-character string for single digits with space\", () => {\n expect(padNumber(0, { padWithZero: false })).toHaveLength(2);\n expect(padNumber(5, { padWithZero: false })).toHaveLength(2);\n expect(padNumber(9, { padWithZero: false })).toHaveLength(2);\n });\n\n it(\"returns correct length for double digits\", () => {\n expect(padNumber(10, { padWithZero: true })).toHaveLength(2);\n expect(padNumber(50, { padWithZero: true })).toHaveLength(2);\n expect(padNumber(99, { padWithZero: true })).toHaveLength(2);\n });\n\n it(\"returns correct length for triple digits\", () => {\n expect(padNumber(100, { padWithZero: true })).toHaveLength(3);\n expect(padNumber(500, { padWithZero: true })).toHaveLength(3);\n expect(padNumber(999, { padWithZero: true })).toHaveLength(3);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -74,6 +74,11 @@ const colorToRgba = variables => {
|
|
|
74
74
|
const r = parseInt(hexColor.slice(0, 2), 16);
|
|
75
75
|
const g = parseInt(hexColor.slice(2, 4), 16);
|
|
76
76
|
const b = parseInt(hexColor.slice(4, 6), 16);
|
|
77
|
+
|
|
78
|
+
// Validate that all color components are valid numbers
|
|
79
|
+
if (isNaN(r) || isNaN(g) || isNaN(b)) {
|
|
80
|
+
return color; // Return original if malformed
|
|
81
|
+
}
|
|
77
82
|
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
|
78
83
|
}
|
|
79
84
|
return color; // Return unchanged if unable to parse
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["colorToRgba","variables","color","opacity","namedColors","transparent","black","white","blue","green","gray","red","startsWith","rgbValues","replace","split","map","value","parseInt","trim","r","g","b","hexColor","slice","length","join","exports"],"sources":["colorToRgba.ts"],"sourcesContent":["/**\n * Converts various color formats to RGBA string representation.\n * This function is specifically required for expo-linear-gradient on iOS to handle transparent colors correctly.\n * It supports named colors, RGB, and hex color formats.\n *\n * @param {Object} variables - The input variables object\n * @param {string} variables.color - The color to convert. Can be:\n * - Named color (e.g., 'transparent', 'black', 'white', 'blue', 'green', 'gray', 'red')\n * - RGB format (e.g., 'rgb(255, 0, 0)')\n * - Hex format (e.g., '#FF0000' or '#F00')\n * @param {number} [variables.opacity=1] - The opacity value between 0 and 1\n *\n * @returns {string} The color in RGBA format (e.g., 'rgba(255, 0, 0, 0.5)')\n *\n * @example\n * // Using named color\n * colorToRgba({ color: 'transparent' })\n * // Returns: 'rgba(0, 0, 0, 0)'\n *\n * @example\n * // Using RGB with custom opacity\n * colorToRgba({ color: 'rgb(255, 0, 0)', opacity: 0.5 })\n * // Returns: 'rgba(255, 0, 0, 0.5)'\n *\n * @example\n * // Using hex color\n * colorToRgba({ color: '#FF0000' })\n * // Returns: 'rgba(255, 0, 0, 1)'\n *\n * @example\n * // Using short hex color\n * colorToRgba({ color: '#F00' })\n * // Returns: 'rgba(255, 0, 0, 1)'\n */\nexport const colorToRgba = (variables: {\n color: string;\n opacity?: number;\n}): string => {\n const { color, opacity = 1 } = variables;\n\n // Handle named colors\n const namedColors: { [key: string]: string } = {\n transparent: \"rgba(0, 0, 0, 0)\",\n black: \"rgba(0, 0, 0, 1)\",\n white: \"rgba(255, 255, 255, 1)\",\n blue: \"rgba(0, 0, 255, 1)\",\n green: \"rgba(0, 128, 0, 1)\",\n gray: \"rgba(128, 128, 128, 1)\",\n red: \"rgba(255, 0, 0, 1)\",\n };\n\n if (color in namedColors) {\n return namedColors[color];\n }\n\n // Handle RGB format\n if (color.startsWith(\"rgb(\")) {\n const rgbValues = color\n .replace(\"rgb(\", \"\")\n .replace(\")\", \"\")\n .split(\",\")\n .map((value) => parseInt(value.trim(), 10));\n const [r, g, b] = rgbValues;\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n }\n\n // Handle hex format\n if (color.startsWith(\"#\")) {\n let hexColor = color.slice(1);\n if (hexColor.length === 3) {\n hexColor = hexColor\n .split(\"\")\n .map((value) => value + value)\n .join(\"\");\n }\n const r = parseInt(hexColor.slice(0, 2), 16);\n const g = parseInt(hexColor.slice(2, 4), 16);\n const b = parseInt(hexColor.slice(4, 6), 16);\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n }\n\n return color; // Return unchanged if unable to parse\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAIC,SAG3B,IAAa;EACV,MAAM;IAAEC,KAAK;IAAEC,OAAO,GAAG;EAAE,CAAC,GAAGF,SAAS;;EAExC;EACA,MAAMG,WAAsC,GAAG;IAC3CC,WAAW,EAAE,kBAAkB;IAC/BC,KAAK,EAAE,kBAAkB;IACzBC,KAAK,EAAE,wBAAwB;IAC/BC,IAAI,EAAE,oBAAoB;IAC1BC,KAAK,EAAE,oBAAoB;IAC3BC,IAAI,EAAE,wBAAwB;IAC9BC,GAAG,EAAE;EACT,CAAC;EAED,IAAIT,KAAK,IAAIE,WAAW,EAAE;IACtB,OAAOA,WAAW,CAACF,KAAK,CAAC;EAC7B;;EAEA;EACA,IAAIA,KAAK,CAACU,UAAU,CAAC,MAAM,CAAC,EAAE;IAC1B,MAAMC,SAAS,GAAGX,KAAK,CAClBY,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CACnBA,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAChBC,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,KAAK,IAAKC,QAAQ,CAACD,KAAK,CAACE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,CAACC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,GAAGT,SAAS;IAC3B,OAAO,QAAQO,CAAC,KAAKC,CAAC,KAAKC,CAAC,KAAKnB,OAAO,GAAG;EAC/C;;EAEA;EACA,IAAID,KAAK,CAACU,UAAU,CAAC,GAAG,CAAC,EAAE;IACvB,IAAIW,QAAQ,GAAGrB,KAAK,CAACsB,KAAK,CAAC,CAAC,CAAC;IAC7B,IAAID,QAAQ,CAACE,MAAM,KAAK,CAAC,EAAE;MACvBF,QAAQ,GAAGA,QAAQ,CACdR,KAAK,CAAC,EAAE,CAAC,CACTC,GAAG,CAAEC,KAAK,IAAKA,KAAK,GAAGA,KAAK,CAAC,CAC7BS,IAAI,CAAC,EAAE,CAAC;IACjB;IACA,MAAMN,CAAC,GAAGF,QAAQ,CAACK,QAAQ,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5C,MAAMH,CAAC,GAAGH,QAAQ,CAACK,QAAQ,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5C,MAAMF,CAAC,GAAGJ,QAAQ,CAACK,QAAQ,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"names":["colorToRgba","variables","color","opacity","namedColors","transparent","black","white","blue","green","gray","red","startsWith","rgbValues","replace","split","map","value","parseInt","trim","r","g","b","hexColor","slice","length","join","isNaN","exports"],"sources":["colorToRgba.ts"],"sourcesContent":["/**\n * Converts various color formats to RGBA string representation.\n * This function is specifically required for expo-linear-gradient on iOS to handle transparent colors correctly.\n * It supports named colors, RGB, and hex color formats.\n *\n * @param {Object} variables - The input variables object\n * @param {string} variables.color - The color to convert. Can be:\n * - Named color (e.g., 'transparent', 'black', 'white', 'blue', 'green', 'gray', 'red')\n * - RGB format (e.g., 'rgb(255, 0, 0)')\n * - Hex format (e.g., '#FF0000' or '#F00')\n * @param {number} [variables.opacity=1] - The opacity value between 0 and 1\n *\n * @returns {string} The color in RGBA format (e.g., 'rgba(255, 0, 0, 0.5)')\n *\n * @example\n * // Using named color\n * colorToRgba({ color: 'transparent' })\n * // Returns: 'rgba(0, 0, 0, 0)'\n *\n * @example\n * // Using RGB with custom opacity\n * colorToRgba({ color: 'rgb(255, 0, 0)', opacity: 0.5 })\n * // Returns: 'rgba(255, 0, 0, 0.5)'\n *\n * @example\n * // Using hex color\n * colorToRgba({ color: '#FF0000' })\n * // Returns: 'rgba(255, 0, 0, 1)'\n *\n * @example\n * // Using short hex color\n * colorToRgba({ color: '#F00' })\n * // Returns: 'rgba(255, 0, 0, 1)'\n */\nexport const colorToRgba = (variables: {\n color: string;\n opacity?: number;\n}): string => {\n const { color, opacity = 1 } = variables;\n\n // Handle named colors\n const namedColors: { [key: string]: string } = {\n transparent: \"rgba(0, 0, 0, 0)\",\n black: \"rgba(0, 0, 0, 1)\",\n white: \"rgba(255, 255, 255, 1)\",\n blue: \"rgba(0, 0, 255, 1)\",\n green: \"rgba(0, 128, 0, 1)\",\n gray: \"rgba(128, 128, 128, 1)\",\n red: \"rgba(255, 0, 0, 1)\",\n };\n\n if (color in namedColors) {\n return namedColors[color];\n }\n\n // Handle RGB format\n if (color.startsWith(\"rgb(\")) {\n const rgbValues = color\n .replace(\"rgb(\", \"\")\n .replace(\")\", \"\")\n .split(\",\")\n .map((value) => parseInt(value.trim(), 10));\n const [r, g, b] = rgbValues;\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n }\n\n // Handle hex format\n if (color.startsWith(\"#\")) {\n let hexColor = color.slice(1);\n if (hexColor.length === 3) {\n hexColor = hexColor\n .split(\"\")\n .map((value) => value + value)\n .join(\"\");\n }\n const r = parseInt(hexColor.slice(0, 2), 16);\n const g = parseInt(hexColor.slice(2, 4), 16);\n const b = parseInt(hexColor.slice(4, 6), 16);\n\n // Validate that all color components are valid numbers\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\n return color; // Return original if malformed\n }\n\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n }\n\n return color; // Return unchanged if unable to parse\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAIC,SAG3B,IAAa;EACV,MAAM;IAAEC,KAAK;IAAEC,OAAO,GAAG;EAAE,CAAC,GAAGF,SAAS;;EAExC;EACA,MAAMG,WAAsC,GAAG;IAC3CC,WAAW,EAAE,kBAAkB;IAC/BC,KAAK,EAAE,kBAAkB;IACzBC,KAAK,EAAE,wBAAwB;IAC/BC,IAAI,EAAE,oBAAoB;IAC1BC,KAAK,EAAE,oBAAoB;IAC3BC,IAAI,EAAE,wBAAwB;IAC9BC,GAAG,EAAE;EACT,CAAC;EAED,IAAIT,KAAK,IAAIE,WAAW,EAAE;IACtB,OAAOA,WAAW,CAACF,KAAK,CAAC;EAC7B;;EAEA;EACA,IAAIA,KAAK,CAACU,UAAU,CAAC,MAAM,CAAC,EAAE;IAC1B,MAAMC,SAAS,GAAGX,KAAK,CAClBY,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CACnBA,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAChBC,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,KAAK,IAAKC,QAAQ,CAACD,KAAK,CAACE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,CAACC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,GAAGT,SAAS;IAC3B,OAAO,QAAQO,CAAC,KAAKC,CAAC,KAAKC,CAAC,KAAKnB,OAAO,GAAG;EAC/C;;EAEA;EACA,IAAID,KAAK,CAACU,UAAU,CAAC,GAAG,CAAC,EAAE;IACvB,IAAIW,QAAQ,GAAGrB,KAAK,CAACsB,KAAK,CAAC,CAAC,CAAC;IAC7B,IAAID,QAAQ,CAACE,MAAM,KAAK,CAAC,EAAE;MACvBF,QAAQ,GAAGA,QAAQ,CACdR,KAAK,CAAC,EAAE,CAAC,CACTC,GAAG,CAAEC,KAAK,IAAKA,KAAK,GAAGA,KAAK,CAAC,CAC7BS,IAAI,CAAC,EAAE,CAAC;IACjB;IACA,MAAMN,CAAC,GAAGF,QAAQ,CAACK,QAAQ,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5C,MAAMH,CAAC,GAAGH,QAAQ,CAACK,QAAQ,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5C,MAAMF,CAAC,GAAGJ,QAAQ,CAACK,QAAQ,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;IAE5C;IACA,IAAIG,KAAK,CAACP,CAAC,CAAC,IAAIO,KAAK,CAACN,CAAC,CAAC,IAAIM,KAAK,CAACL,CAAC,CAAC,EAAE;MAClC,OAAOpB,KAAK,CAAC,CAAC;IAClB;IAEA,OAAO,QAAQkB,CAAC,KAAKC,CAAC,KAAKC,CAAC,KAAKnB,OAAO,GAAG;EAC/C;EAEA,OAAOD,KAAK,CAAC,CAAC;AAClB,CAAC;AAAC0B,OAAA,CAAA5B,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -31,7 +31,7 @@ exports.getAdjustedLimit = void 0;
|
|
|
31
31
|
*/
|
|
32
32
|
const getAdjustedLimit = (limit, numberOfItems, interval) => {
|
|
33
33
|
const maxValue = (numberOfItems - 1) * interval;
|
|
34
|
-
if (!limit ||
|
|
34
|
+
if (!limit || limit.max === undefined && limit.min === undefined) {
|
|
35
35
|
return {
|
|
36
36
|
max: maxValue,
|
|
37
37
|
min: 0
|
|
@@ -39,8 +39,8 @@ const getAdjustedLimit = (limit, numberOfItems, interval) => {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// guard against limits that are out of bounds
|
|
42
|
-
const adjustedMaxLimit = limit.max ? Math.min(limit.max, maxValue) : maxValue;
|
|
43
|
-
const adjustedMinLimit = limit.min ? Math.max(limit.min, 0) : 0;
|
|
42
|
+
const adjustedMaxLimit = limit.max !== undefined ? Math.min(limit.max, maxValue) : maxValue;
|
|
43
|
+
const adjustedMinLimit = limit.min !== undefined ? Math.max(limit.min, 0) : 0;
|
|
44
44
|
|
|
45
45
|
// guard against invalid limits
|
|
46
46
|
if (adjustedMaxLimit < adjustedMinLimit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getAdjustedLimit","limit","numberOfItems","interval","maxValue","max","min","adjustedMaxLimit","Math","adjustedMinLimit","exports"],"sources":["getAdjustedLimit.ts"],"sourcesContent":["import type { Limit } from \"../components/DurationScroll/types\";\n\n/**\n * Adjusts and validates the min/max limits for a scrollable number picker.\n * Ensures limits are within valid bounds and handles edge cases.\n *\n * @param {Limit | undefined} limit - The input limit object containing optional min and max values\n * @param {number} numberOfItems - Total number of items in the picker\n * @param {number} interval - The interval between consecutive numbers\n *\n * @returns {{ max: number; min: number }} An object containing the adjusted min and max limits\n *\n * @example\n * // With valid limits\n * getAdjustedLimit({ min: 5, max: 15 }, 20, 1)\n * // Returns: { max: 15, min: 5 }\n *\n * @example\n * // With out-of-bounds limits\n * getAdjustedLimit({ min: -5, max: 25 }, 20, 1)\n * // Returns: { max: 19, min: 0 }\n *\n * @example\n * // With invalid limits (max < min)\n * getAdjustedLimit({ min: 15, max: 5 }, 20, 1)\n * // Returns: { max: 19, min: 0 }\n */\nexport const getAdjustedLimit = (\n limit: Limit | undefined,\n numberOfItems: number,\n interval: number\n): {\n max: number;\n min: number;\n} => {\n const maxValue = (numberOfItems - 1) * interval;\n\n if (!limit || (
|
|
1
|
+
{"version":3,"names":["getAdjustedLimit","limit","numberOfItems","interval","maxValue","max","undefined","min","adjustedMaxLimit","Math","adjustedMinLimit","exports"],"sources":["getAdjustedLimit.ts"],"sourcesContent":["import type { Limit } from \"../components/DurationScroll/types\";\n\n/**\n * Adjusts and validates the min/max limits for a scrollable number picker.\n * Ensures limits are within valid bounds and handles edge cases.\n *\n * @param {Limit | undefined} limit - The input limit object containing optional min and max values\n * @param {number} numberOfItems - Total number of items in the picker\n * @param {number} interval - The interval between consecutive numbers\n *\n * @returns {{ max: number; min: number }} An object containing the adjusted min and max limits\n *\n * @example\n * // With valid limits\n * getAdjustedLimit({ min: 5, max: 15 }, 20, 1)\n * // Returns: { max: 15, min: 5 }\n *\n * @example\n * // With out-of-bounds limits\n * getAdjustedLimit({ min: -5, max: 25 }, 20, 1)\n * // Returns: { max: 19, min: 0 }\n *\n * @example\n * // With invalid limits (max < min)\n * getAdjustedLimit({ min: 15, max: 5 }, 20, 1)\n * // Returns: { max: 19, min: 0 }\n */\nexport const getAdjustedLimit = (\n limit: Limit | undefined,\n numberOfItems: number,\n interval: number\n): {\n max: number;\n min: number;\n} => {\n const maxValue = (numberOfItems - 1) * interval;\n\n if (!limit || (limit.max === undefined && limit.min === undefined)) {\n return {\n max: maxValue,\n min: 0,\n };\n }\n\n // guard against limits that are out of bounds\n const adjustedMaxLimit = limit.max !== undefined\n ? Math.min(limit.max, maxValue)\n : maxValue;\n const adjustedMinLimit = limit.min !== undefined ? Math.max(limit.min, 0) : 0;\n\n // guard against invalid limits\n if (adjustedMaxLimit < adjustedMinLimit) {\n return {\n max: maxValue,\n min: 0,\n };\n }\n\n return {\n max: adjustedMaxLimit,\n min: adjustedMinLimit,\n };\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,gBAAgB,GAAGA,CAC5BC,KAAwB,EACxBC,aAAqB,EACrBC,QAAgB,KAIf;EACD,MAAMC,QAAQ,GAAG,CAACF,aAAa,GAAG,CAAC,IAAIC,QAAQ;EAE/C,IAAI,CAACF,KAAK,IAAKA,KAAK,CAACI,GAAG,KAAKC,SAAS,IAAIL,KAAK,CAACM,GAAG,KAAKD,SAAU,EAAE;IAChE,OAAO;MACHD,GAAG,EAAED,QAAQ;MACbG,GAAG,EAAE;IACT,CAAC;EACL;;EAEA;EACA,MAAMC,gBAAgB,GAAGP,KAAK,CAACI,GAAG,KAAKC,SAAS,GAC1CG,IAAI,CAACF,GAAG,CAACN,KAAK,CAACI,GAAG,EAAED,QAAQ,CAAC,GAC7BA,QAAQ;EACd,MAAMM,gBAAgB,GAAGT,KAAK,CAACM,GAAG,KAAKD,SAAS,GAAGG,IAAI,CAACJ,GAAG,CAACJ,KAAK,CAACM,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;;EAE7E;EACA,IAAIC,gBAAgB,GAAGE,gBAAgB,EAAE;IACrC,OAAO;MACHL,GAAG,EAAED,QAAQ;MACbG,GAAG,EAAE;IACT,CAAC;EACL;EAEA,OAAO;IACHF,GAAG,EAAEG,gBAAgB;IACrBD,GAAG,EAAEG;EACT,CAAC;AACL,CAAC;AAACC,OAAA,CAAAX,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -112,15 +112,26 @@ const TimerPicker = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
112
112
|
(_secondsDurationScrol = secondsDurationScrollRef.current) === null || _secondsDurationScrol === void 0 || _secondsDurationScrol.reset(options);
|
|
113
113
|
},
|
|
114
114
|
setValue: (value, options) => {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
if (value.days) {
|
|
116
|
+
var _daysDurationScrollRe2;
|
|
117
|
+
setSelectedDays(value.days);
|
|
118
|
+
(_daysDurationScrollRe2 = daysDurationScrollRef.current) === null || _daysDurationScrollRe2 === void 0 || _daysDurationScrollRe2.setValue(value.days, options);
|
|
119
|
+
}
|
|
120
|
+
if (value.hours) {
|
|
121
|
+
var _hoursDurationScrollR2;
|
|
122
|
+
setSelectedHours(value.hours);
|
|
123
|
+
(_hoursDurationScrollR2 = hoursDurationScrollRef.current) === null || _hoursDurationScrollR2 === void 0 || _hoursDurationScrollR2.setValue(value.hours, options);
|
|
124
|
+
}
|
|
125
|
+
if (value.minutes) {
|
|
126
|
+
var _minutesDurationScrol2;
|
|
127
|
+
setSelectedMinutes(value.minutes);
|
|
128
|
+
(_minutesDurationScrol2 = minutesDurationScrollRef.current) === null || _minutesDurationScrol2 === void 0 || _minutesDurationScrol2.setValue(value.minutes, options);
|
|
129
|
+
}
|
|
130
|
+
if (value.seconds) {
|
|
131
|
+
var _secondsDurationScrol2;
|
|
132
|
+
setSelectedSeconds(value.seconds);
|
|
133
|
+
(_secondsDurationScrol2 = secondsDurationScrollRef.current) === null || _secondsDurationScrol2 === void 0 || _secondsDurationScrol2.setValue(value.seconds, options);
|
|
134
|
+
}
|
|
124
135
|
},
|
|
125
136
|
latestDuration: {
|
|
126
137
|
days: (_daysDurationScrollRe3 = daysDurationScrollRef.current) === null || _daysDurationScrollRe3 === void 0 ? void 0 : _daysDurationScrollRe3.latestDuration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","View","getSafeInitialValue","DurationScroll","generateStyles","TimerPicker","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","dayInterval","dayLabel","dayLimit","daysPickerIsDisabled","decelerationRate","disableInfiniteScroll","hideDays","hideHours","hideMinutes","hideSeconds","hourInterval","hourLabel","hourLimit","hoursPickerIsDisabled","initialValue","maximumDays","maximumHours","maximumMinutes","maximumSeconds","minuteInterval","minuteLabel","minuteLimit","minutesPickerIsDisabled","onDurationChange","padDaysWithZero","padHoursWithZero","padMinutesWithZero","padSecondsWithZero","padWithNItems","pickerContainerProps","pmLabel","repeatDayNumbersNTimes","repeatHourNumbersNTimes","repeatMinuteNumbersNTimes","repeatSecondNumbersNTimes","secondInterval","secondLabel","secondLimit","secondsPickerIsDisabled","styles","customStyles","use12HourPicker","otherProps","Audio","console","warn","Haptics","clickSoundAsset","safePadWithNItems","isNaN","maxPadWithNItems","Math","round","safeInitialValue","days","hours","minutes","seconds","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","daysDurationScrollRef","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","_daysDurationScrollRe3","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_daysDurationScrollRe","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_daysDurationScrollRe2","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","_extends","style","pickerContainer","testID","interval","isDisabled","label","limit","maximumValue","padNumbersWithZero","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","undefined","is12HourPicker","memo"],"sources":["TimerPicker.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { View } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport DurationScroll from \"../DurationScroll\";\nimport type { DurationScrollRef } from \"../DurationScroll\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerProps, TimerPickerRef } from \"./types\";\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (props, ref) => {\n const {\n aggressivelyGetLatestDuration = false,\n allowFontScaling = false,\n amLabel = \"am\",\n dayInterval = 1,\n dayLabel,\n dayLimit,\n daysPickerIsDisabled = false,\n decelerationRate = 0.88,\n disableInfiniteScroll = false,\n hideDays = true,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourInterval = 1,\n hourLabel,\n hourLimit,\n hoursPickerIsDisabled = false,\n initialValue,\n maximumDays = 30,\n maximumHours = 23,\n maximumMinutes = 59,\n maximumSeconds = 59,\n minuteInterval = 1,\n minuteLabel,\n minuteLimit,\n minutesPickerIsDisabled = false,\n onDurationChange,\n padDaysWithZero = false,\n padHoursWithZero = false,\n padMinutesWithZero = true,\n padSecondsWithZero = true,\n padWithNItems = 1,\n pickerContainerProps,\n pmLabel = \"pm\",\n repeatDayNumbersNTimes = 3,\n repeatHourNumbersNTimes = 8,\n repeatMinuteNumbersNTimes = 3,\n repeatSecondNumbersNTimes = 3,\n secondInterval = 1,\n secondLabel,\n secondLimit,\n secondsPickerIsDisabled = false,\n styles: customStyles,\n use12HourPicker = false,\n ...otherProps\n } = props;\n\n useEffect(() => {\n if (otherProps.Audio) {\n console.warn(\n \"The \\\"Audio\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.Haptics) {\n console.warn(\n \"The \\\"Haptics\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.clickSoundAsset) {\n console.warn(\n \"The \\\"clickSoundAsset\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n }, [otherProps.Audio, otherProps.Haptics, otherProps.clickSoundAsset]);\n\n const safePadWithNItems = useMemo(() => {\n if (padWithNItems < 0 || isNaN(padWithNItems)) {\n return 0;\n }\n\n const maxPadWithNItems = hideHours ? 15 : 6;\n\n if (padWithNItems > maxPadWithNItems) {\n return maxPadWithNItems;\n }\n\n return Math.round(padWithNItems);\n }, [hideHours, padWithNItems]);\n\n const safeInitialValue = useMemo(\n () =>\n getSafeInitialValue({\n days: initialValue?.days,\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n }),\n [\n initialValue?.days,\n initialValue?.hours,\n initialValue?.minutes,\n initialValue?.seconds,\n ]\n );\n\n const styles = useMemo(\n () => generateStyles(customStyles),\n\n [customStyles]\n );\n\n const [selectedDays, setSelectedDays] = useState(safeInitialValue.days);\n const [selectedHours, setSelectedHours] = useState(\n safeInitialValue.hours\n );\n const [selectedMinutes, setSelectedMinutes] = useState(\n safeInitialValue.minutes\n );\n const [selectedSeconds, setSelectedSeconds] = useState(\n safeInitialValue.seconds\n );\n\n useEffect(() => {\n onDurationChange?.({\n days: selectedDays,\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedDays, selectedHours, selectedMinutes, selectedSeconds]);\n\n const daysDurationScrollRef = useRef<DurationScrollRef>(null);\n const hoursDurationScrollRef = useRef<DurationScrollRef>(null);\n const minutesDurationScrollRef = useRef<DurationScrollRef>(null);\n const secondsDurationScrollRef = useRef<DurationScrollRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n setSelectedDays(safeInitialValue.days);\n setSelectedHours(safeInitialValue.hours);\n setSelectedMinutes(safeInitialValue.minutes);\n setSelectedSeconds(safeInitialValue.seconds);\n daysDurationScrollRef.current?.reset(options);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedDays(value.days);\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\n daysDurationScrollRef.current?.setValue(value.days, options);\n hoursDurationScrollRef.current?.setValue(value.hours, options);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n },\n latestDuration: {\n days: daysDurationScrollRef.current?.latestDuration,\n hours: hoursDurationScrollRef.current?.latestDuration,\n minutes: minutesDurationScrollRef.current?.latestDuration,\n seconds: secondsDurationScrollRef.current?.latestDuration,\n },\n }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideDays ? (\n <DurationScroll\n ref={daysDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.days}\n interval={dayInterval}\n isDisabled={daysPickerIsDisabled}\n label={dayLabel ?? \"d\"}\n limit={dayLimit}\n maximumValue={maximumDays}\n onDurationChange={setSelectedDays}\n padNumbersWithZero={padDaysWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatDayNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatDayNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-day\"\n {...otherProps}\n />\n ) : null}\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.hours}\n interval={hourInterval}\n is12HourPicker={use12HourPicker}\n isDisabled={hoursPickerIsDisabled}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n limit={hourLimit}\n maximumValue={maximumHours}\n onDurationChange={setSelectedHours}\n padNumbersWithZero={padHoursWithZero}\n padWithNItems={safePadWithNItems}\n pmLabel={pmLabel}\n repeatNumbersNTimes={repeatHourNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatHourNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-hour\"\n {...otherProps}\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.minutes}\n interval={minuteInterval}\n isDisabled={minutesPickerIsDisabled}\n label={minuteLabel ?? \"m\"}\n limit={minuteLimit}\n maximumValue={maximumMinutes}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero={padMinutesWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatMinuteNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatMinuteNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-minute\"\n {...otherProps}\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.seconds}\n interval={secondInterval}\n isDisabled={secondsPickerIsDisabled}\n label={secondLabel ?? \"s\"}\n limit={secondLimit}\n maximumValue={maximumSeconds}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero={padSecondsWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatSecondNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatSecondNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-second\"\n {...otherProps}\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","View","getSafeInitialValue","DurationScroll","generateStyles","TimerPicker","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","dayInterval","dayLabel","dayLimit","daysPickerIsDisabled","decelerationRate","disableInfiniteScroll","hideDays","hideHours","hideMinutes","hideSeconds","hourInterval","hourLabel","hourLimit","hoursPickerIsDisabled","initialValue","maximumDays","maximumHours","maximumMinutes","maximumSeconds","minuteInterval","minuteLabel","minuteLimit","minutesPickerIsDisabled","onDurationChange","padDaysWithZero","padHoursWithZero","padMinutesWithZero","padSecondsWithZero","padWithNItems","pickerContainerProps","pmLabel","repeatDayNumbersNTimes","repeatHourNumbersNTimes","repeatMinuteNumbersNTimes","repeatSecondNumbersNTimes","secondInterval","secondLabel","secondLimit","secondsPickerIsDisabled","styles","customStyles","use12HourPicker","otherProps","Audio","console","warn","Haptics","clickSoundAsset","safePadWithNItems","isNaN","maxPadWithNItems","Math","round","safeInitialValue","days","hours","minutes","seconds","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","daysDurationScrollRef","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","_daysDurationScrollRe3","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_daysDurationScrollRe","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_daysDurationScrollRe2","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","_extends","style","pickerContainer","testID","interval","isDisabled","label","limit","maximumValue","padNumbersWithZero","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","undefined","is12HourPicker","memo"],"sources":["TimerPicker.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { View } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport DurationScroll from \"../DurationScroll\";\nimport type { DurationScrollRef } from \"../DurationScroll\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerProps, TimerPickerRef } from \"./types\";\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (props, ref) => {\n const {\n aggressivelyGetLatestDuration = false,\n allowFontScaling = false,\n amLabel = \"am\",\n dayInterval = 1,\n dayLabel,\n dayLimit,\n daysPickerIsDisabled = false,\n decelerationRate = 0.88,\n disableInfiniteScroll = false,\n hideDays = true,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourInterval = 1,\n hourLabel,\n hourLimit,\n hoursPickerIsDisabled = false,\n initialValue,\n maximumDays = 30,\n maximumHours = 23,\n maximumMinutes = 59,\n maximumSeconds = 59,\n minuteInterval = 1,\n minuteLabel,\n minuteLimit,\n minutesPickerIsDisabled = false,\n onDurationChange,\n padDaysWithZero = false,\n padHoursWithZero = false,\n padMinutesWithZero = true,\n padSecondsWithZero = true,\n padWithNItems = 1,\n pickerContainerProps,\n pmLabel = \"pm\",\n repeatDayNumbersNTimes = 3,\n repeatHourNumbersNTimes = 8,\n repeatMinuteNumbersNTimes = 3,\n repeatSecondNumbersNTimes = 3,\n secondInterval = 1,\n secondLabel,\n secondLimit,\n secondsPickerIsDisabled = false,\n styles: customStyles,\n use12HourPicker = false,\n ...otherProps\n } = props;\n\n useEffect(() => {\n if (otherProps.Audio) {\n console.warn(\n \"The \\\"Audio\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.Haptics) {\n console.warn(\n \"The \\\"Haptics\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.clickSoundAsset) {\n console.warn(\n \"The \\\"clickSoundAsset\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n }, [otherProps.Audio, otherProps.Haptics, otherProps.clickSoundAsset]);\n\n const safePadWithNItems = useMemo(() => {\n if (padWithNItems < 0 || isNaN(padWithNItems)) {\n return 0;\n }\n\n const maxPadWithNItems = hideHours ? 15 : 6;\n\n if (padWithNItems > maxPadWithNItems) {\n return maxPadWithNItems;\n }\n\n return Math.round(padWithNItems);\n }, [hideHours, padWithNItems]);\n\n const safeInitialValue = useMemo(\n () =>\n getSafeInitialValue({\n days: initialValue?.days,\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n }),\n [\n initialValue?.days,\n initialValue?.hours,\n initialValue?.minutes,\n initialValue?.seconds,\n ]\n );\n\n const styles = useMemo(\n () => generateStyles(customStyles),\n\n [customStyles]\n );\n\n const [selectedDays, setSelectedDays] = useState(safeInitialValue.days);\n const [selectedHours, setSelectedHours] = useState(\n safeInitialValue.hours\n );\n const [selectedMinutes, setSelectedMinutes] = useState(\n safeInitialValue.minutes\n );\n const [selectedSeconds, setSelectedSeconds] = useState(\n safeInitialValue.seconds\n );\n\n useEffect(() => {\n onDurationChange?.({\n days: selectedDays,\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedDays, selectedHours, selectedMinutes, selectedSeconds]);\n\n const daysDurationScrollRef = useRef<DurationScrollRef>(null);\n const hoursDurationScrollRef = useRef<DurationScrollRef>(null);\n const minutesDurationScrollRef = useRef<DurationScrollRef>(null);\n const secondsDurationScrollRef = useRef<DurationScrollRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n setSelectedDays(safeInitialValue.days);\n setSelectedHours(safeInitialValue.hours);\n setSelectedMinutes(safeInitialValue.minutes);\n setSelectedSeconds(safeInitialValue.seconds);\n daysDurationScrollRef.current?.reset(options);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n if (value.days) {\n setSelectedDays(value.days);\n daysDurationScrollRef.current?.setValue(\n value.days,\n options\n );\n }\n if (value.hours) {\n setSelectedHours(value.hours);\n hoursDurationScrollRef.current?.setValue(\n value.hours,\n options\n );\n }\n if (value.minutes) {\n setSelectedMinutes(value.minutes);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n }\n if (value.seconds) {\n setSelectedSeconds(value.seconds);\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n }\n },\n latestDuration: {\n days: daysDurationScrollRef.current?.latestDuration,\n hours: hoursDurationScrollRef.current?.latestDuration,\n minutes: minutesDurationScrollRef.current?.latestDuration,\n seconds: secondsDurationScrollRef.current?.latestDuration,\n },\n }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideDays ? (\n <DurationScroll\n ref={daysDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.days}\n interval={dayInterval}\n isDisabled={daysPickerIsDisabled}\n label={dayLabel ?? \"d\"}\n limit={dayLimit}\n maximumValue={maximumDays}\n onDurationChange={setSelectedDays}\n padNumbersWithZero={padDaysWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatDayNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatDayNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-day\"\n {...otherProps}\n />\n ) : null}\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.hours}\n interval={hourInterval}\n is12HourPicker={use12HourPicker}\n isDisabled={hoursPickerIsDisabled}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n limit={hourLimit}\n maximumValue={maximumHours}\n onDurationChange={setSelectedHours}\n padNumbersWithZero={padHoursWithZero}\n padWithNItems={safePadWithNItems}\n pmLabel={pmLabel}\n repeatNumbersNTimes={repeatHourNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatHourNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-hour\"\n {...otherProps}\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.minutes}\n interval={minuteInterval}\n isDisabled={minutesPickerIsDisabled}\n label={minuteLabel ?? \"m\"}\n limit={minuteLimit}\n maximumValue={maximumMinutes}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero={padMinutesWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatMinuteNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatMinuteNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-minute\"\n {...otherProps}\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.seconds}\n interval={secondInterval}\n isDisabled={secondsPickerIsDisabled}\n label={secondLabel ?? \"s\"}\n limit={secondLimit}\n maximumValue={maximumSeconds}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero={padSecondsWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatSecondNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatSecondNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-second\"\n {...otherProps}\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { RefObject } from \"react\";\n\nimport type { View } from \"react-native\";\n\nimport type {\n LinearGradientProps,\n SoundAsset,\n Limit,\n} from \"../DurationScroll/types\";\n\nimport type { CustomTimerPickerStyles } from \"./styles\";\n\nexport interface TimerPickerRef {\n latestDuration: {\n days: RefObject<number> | undefined;\n hours: RefObject<number> | undefined;\n minutes: RefObject<number> | undefined;\n seconds: RefObject<number> | undefined;\n };\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n days
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { RefObject } from \"react\";\n\nimport type { View } from \"react-native\";\n\nimport type {\n LinearGradientProps,\n SoundAsset,\n Limit,\n} from \"../DurationScroll/types\";\n\nimport type { CustomTimerPickerStyles } from \"./styles\";\n\nexport interface TimerPickerRef {\n latestDuration: {\n days: RefObject<number> | undefined;\n hours: RefObject<number> | undefined;\n minutes: RefObject<number> | undefined;\n seconds: RefObject<number> | undefined;\n };\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n days?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n },\n options?: { animated?: boolean }\n ) => void;\n}\n\nexport interface TimerPickerProps {\n /** @deprecated Use pickerFeedback prop instead. Will be removed in a future version. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Audio?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n FlatList?: any;\n /** @deprecated Use pickerFeedback prop instead. Will be removed in a future version. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Haptics?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MaskedView?: any;\n aggressivelyGetLatestDuration?: boolean;\n allowFontScaling?: boolean;\n amLabel?: string;\n /** @deprecated Use pickerFeedback prop instead. Will be removed in a future version. */\n clickSoundAsset?: SoundAsset;\n dayInterval?: number;\n dayLabel?: string | React.ReactElement;\n dayLimit?: Limit;\n daysPickerIsDisabled?: boolean;\n decelerationRate?: number | \"normal\" | \"fast\";\n disableInfiniteScroll?: boolean;\n hideDays?: boolean;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourInterval?: number;\n hourLabel?: string | React.ReactElement;\n hourLimit?: Limit;\n hoursPickerIsDisabled?: boolean;\n initialValue?: {\n days?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n };\n maximumDays?: number;\n maximumHours?: number;\n maximumMinutes?: number;\n maximumSeconds?: number;\n minuteInterval?: number;\n minuteLabel?: string | React.ReactElement;\n minuteLimit?: Limit;\n minutesPickerIsDisabled?: boolean;\n onDurationChange?: (duration: {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n padDaysWithZero?: boolean;\n padHoursWithZero?: boolean;\n padMinutesWithZero?: boolean;\n padSecondsWithZero?: boolean;\n padWithNItems?: number;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerFeedback?: () => void | Promise<void>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n pmLabel?: string;\n repeatDayNumbersNTimes?: number;\n repeatHourNumbersNTimes?: number;\n repeatMinuteNumbersNTimes?: number;\n repeatSecondNumbersNTimes?: number;\n secondInterval?: number;\n secondLabel?: string | React.ReactElement;\n secondLimit?: Limit;\n secondsPickerIsDisabled?: boolean;\n styles?: CustomTimerPickerStyles;\n use12HourPicker?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|