UNPKG

@fe6/water-pro

Version:

An enterprise-class UI design language and Vue-based implementation

129 lines (113 loc) 3.04 kB
import moment from 'moment'; const defaultDisabledTime = { disabledHours() { return []; }, disabledMinutes() { return []; }, disabledSeconds() { return []; }, }; export function getTodayTime(value) { const today = moment(); today.locale(value.locale()).utcOffset(value.utcOffset()); return today; } export function getTitleString(value) { return value.format('LL'); } export function getTodayTimeStr(value) { const today = getTodayTime(value); return getTitleString(today); } export function getMonthName(month) { const locale = month.locale(); const localeData = month?.localeData(); return localeData[locale === 'zh-cn' ? 'months' : 'monthsShort'](month); } export function syncTime(from, to) { if (!moment.isMoment(from) || !moment.isMoment(to)) { return; } to.hour(from.hour()); to.minute(from.minute()); to.second(from.second()); to.millisecond(from.millisecond()); } export function getTimeConfig(value, disabledTime) { let disabledTimeConfig = disabledTime ? disabledTime(value) : {}; disabledTimeConfig = { ...defaultDisabledTime, ...disabledTimeConfig, }; return disabledTimeConfig; } export function isTimeValidByConfig(value, disabledTimeConfig) { let invalidTime = false; if (value) { const hour = value.hour(); const minutes = value.minute(); const seconds = value.second(); const disabledHours = disabledTimeConfig.disabledHours(); if (!disabledHours.includes(hour)) { const disabledMinutes = disabledTimeConfig.disabledMinutes(hour); if (!disabledMinutes.includes(minutes)) { const disabledSeconds = disabledTimeConfig.disabledSeconds(hour, minutes); invalidTime = disabledSeconds.includes(seconds); } else { invalidTime = true; } } else { invalidTime = true; } } return !invalidTime; } export function isTimeValid(value, disabledTime) { const disabledTimeConfig = getTimeConfig(value, disabledTime); return isTimeValidByConfig(value, disabledTimeConfig); } export function isAllowedDate(value, disabledDate, disabledTime) { if (disabledDate) { if (disabledDate(value)) { return false; } } if (disabledTime) { if (!isTimeValid(value, disabledTime)) { return false; } } return true; } export function formatDate(value, format) { if (!value) { return ''; } if (Array.isArray(format)) { format = format[0]; } if (typeof format === 'function') { const result = format(value); if (typeof result === 'string') { return result; } else { throw new TypeError('The function of format does not return a string'); } } return value.format(format); } export const getMomentObjectIfValid = (date) => { if (Array.isArray(date)) { if (date.length > 0 && date.every((oneDate) => moment.isMoment(oneDate) && oneDate.isValid())) { return date; } } else { if (moment.isMoment(date) && date.isValid()) { return date; } } return false; };