UNPKG

react-keyboard-time-input

Version:
58 lines (40 loc) 2.02 kB
'use strict'; exports.__esModule = true; var _zeroPad = require('./zero-pad'); var _zeroPad2 = _interopRequireDefault(_zeroPad); var _getGroups = require('./get-groups'); var _getGroups2 = _interopRequireDefault(_getGroups); var _getBase = require('./get-base'); var _getBase2 = _interopRequireDefault(_getBase); var _stringify = require('./stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _toggle24Hour = require('./toggle-24-hour'); var _toggle24Hour2 = _interopRequireDefault(_toggle24Hour); var _isTwelveHourTime = require('./is-twelve-hour-time'); var _isTwelveHourTime2 = _interopRequireDefault(_isTwelveHourTime); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var add = function add(groups, groupId, amount, twelveHourTime) { var base = (0, _getBase2.default)(groupId, twelveHourTime); if (!groupId && groups[groupId] === '12' && twelveHourTime) groups[groupId] = '00'; var val = Number(groups[groupId]) + amount; groups = replace(groups, groupId, (val + base) % base); if (groupId && val >= base) return add(groups, groupId - 1, 1, twelveHourTime); if (groupId && val < 0) return add(groups, groupId - 1, -1, twelveHourTime); if (!groupId && twelveHourTime) { if (val >= base || val < 0) (0, _toggle24Hour2.default)(groups); if (groups[0] === '00') groups[0] = '12'; } return groups; }; var replace = function replace(groups, groupId, amount) { var digits = groups[groupId].length; groups[groupId] = (0, _zeroPad2.default)(String(amount), digits); return groups; }; // export default function adder(str, groupId, amount) { exports.default = function (str, groupId, amount) { var groups = (0, _getGroups2.default)(str); var twelveHourTime = (0, _isTwelveHourTime2.default)(groups); if (twelveHourTime && groupId === groups.length - 1) return (0, _stringify2.default)((0, _toggle24Hour2.default)(groups)); return (0, _stringify2.default)(add(groups, groupId, amount, twelveHourTime)); };