ngx-bootstrap
Version:
Native Angular Bootstrap Components
141 lines • 3.91 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 isValidLimit(controls, newDate) {
if (controls.min && newDate < controls.min) {
return false;
}
if (controls.max && newDate > controls.max) {
return false;
}
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;
}
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) {
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 isHourInputValid(hours, isPM) {
return !isNaN(parseHours(hours, isPM));
}
export function isMinuteInputValid(minutes) {
return !isNaN(parseMinutes(minutes));
}
export function isSecondInputValid(seconds) {
return !isNaN(parseSeconds(seconds));
}
export function isInputLimitValid(diff, max, min) {
var newDate = changeTime(new Date(), diff);
if (max && newDate > max) {
return false;
}
if (min && newDate < min) {
return false;
}
return true;
}
export function isInputValid(hours, minutes, seconds, isPM) {
if (minutes === void 0) { minutes = '0'; }
if (seconds === void 0) { seconds = '0'; }
return isHourInputValid(hours, isPM)
&& isMinuteInputValid(minutes)
&& isSecondInputValid(seconds);
}
//# sourceMappingURL=timepicker.utils.js.map