UNPKG

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
"use strict"; 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