react-native-timer-picker
Version:
A simple, flexible, performant duration picker for React Native apps 🔥 Great for timers, alarms and duration inputs ⏰🕰️⏳ Includes iOS-style haptic and audio feedback 🍏
56 lines (53 loc) • 1.78 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.generateNumbers = exports.generate12HourNumbers = void 0;
var _padNumber = require("./padNumber");
const generateNumbers = (numberOfItems, options) => {
if (numberOfItems <= 0) {
return [];
}
let numbers = [];
for (let i = 0; i < numberOfItems; i++) {
const value = i * options.interval;
numbers.push((0, _padNumber.padNumber)(value, {
padWithZero: options.padNumbersWithZero
}));
}
if (options.repeatNTimes > 1) {
numbers = Array(options.repeatNTimes).fill(numbers).flat();
}
if (options.disableInfiniteScroll || options.repeatNTimes === 1) {
numbers.push(...Array(options.padWithNItems).fill(""));
numbers.unshift(...Array(options.padWithNItems).fill(""));
}
return numbers;
};
exports.generateNumbers = generateNumbers;
const generate12HourNumbers = options => {
let numbers = [];
// Generate numbers from 0 to 11 for AM
for (let i = 0; i < 12; i += options.interval) {
numbers.push(`${(0, _padNumber.padNumber)(i, {
padWithZero: options.padNumbersWithZero
})} AM`);
}
// Generate numbers from 12 to 11 for PM
for (let i = 12; i < 24; i += options.interval) {
const hour = i > 12 ? i - 12 : i;
numbers.push(`${(0, _padNumber.padNumber)(hour, {
padWithZero: options.padNumbersWithZero
})} PM`);
}
if ((options.repeatNTimes ?? 1) > 1) {
numbers = Array(options.repeatNTimes).fill(numbers).flat();
}
if (options.disableInfiniteScroll) {
numbers.push(...Array(options.padWithNItems).fill(""));
numbers.unshift(...Array(options.padWithNItems).fill(""));
}
return numbers;
};
exports.generate12HourNumbers = generate12HourNumbers;
//# sourceMappingURL=generateNumbers.js.map
;