UNPKG

ngx-bootstrap

Version:
114 lines 3.29 kB
var dex = 10; var hoursPerDay = 24; var hoursPerDayHalf = 12; var minutesPerHour = 60; var secondsPerMinute = 60; export function isValidDate(value) { if (!value) { return false; } if (value instanceof Date && isNaN(value.getHours())) { return false; } if (typeof value === 'string') { return isValidDate(new Date(value)); } return true; } export function toNumber(value) { if (typeof value === 'number') { return value; } return parseInt(value, dex); } export function isNumber(value) { return !isNaN(toNumber(value)); } export function parseHours(value, isPM) { if (isPM === void 0) { isPM = false; } var hour = toNumber(value); if (isNaN(hour) || hour < 0 || hour > (isPM ? hoursPerDayHalf : hoursPerDay)) { return NaN; } return hour; } export function parseMinutes(value) { var minute = toNumber(value); if (isNaN(minute) || minute < 0 || minute > minutesPerHour) { return NaN; } return minute; } export function parseSeconds(value) { var seconds = toNumber(value); if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) { return NaN; } return seconds; } export function parseTime(value) { if (typeof value === 'string') { return new Date(value); } return value; } export function changeTime(value, diff) { if (!value) { return changeTime(createDate(new Date(), 0, 0, 0), diff); } var hour = value.getHours(); var minutes = value.getMinutes(); var seconds = value.getSeconds(); if (diff.hour) { hour = (hour + toNumber(diff.hour)) % hoursPerDay; if (hour < 0) { hour += hoursPerDay; } } if (diff.minute) { minutes = (minutes + toNumber(diff.minute)); } if (diff.seconds) { seconds = (seconds + toNumber(diff.seconds)); } return createDate(value, hour, minutes, seconds); } export function setTime(value, opts) { var hour = parseHours(opts.hour); var minute = parseMinutes(opts.minute); var seconds = parseSeconds(opts.seconds) || 0; if (opts.isPM) { hour += hoursPerDayHalf; } // fixme: unreachable code, value is mandatory if (!value) { if (!isNaN(hour) && !isNaN(minute)) { return createDate(new Date(), hour, minute, seconds); } return value; } if (isNaN(hour) || isNaN(minute)) { return value; } return createDate(value, hour, minute, seconds); } export function createDate(value, hours, minutes, seconds) { // fixme: unreachable code, value is mandatory var _value = value || new Date(); return new Date(_value.getFullYear(), _value.getMonth(), _value.getDate(), hours, minutes, seconds, _value.getMilliseconds()); } export function padNumber(value) { var _value = value.toString(); if (_value.length > 1) { return _value; } return "0" + _value; } export function isInputValid(hours, minutes, seconds, isPM) { if (seconds === void 0) { seconds = '0'; } if (isNaN(parseHours(hours, isPM)) || isNaN(parseMinutes(minutes)) || isNaN(parseSeconds(seconds))) { return false; } return true; } //# sourceMappingURL=timepicker.utils.js.map