ngx-bootstrap
Version:
Native Angular Bootstrap Components
114 lines • 3.29 kB
JavaScript
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