UNPKG

@sms-frontend/components

Version:

SMS Design React UI Library.

194 lines (193 loc) 6.82 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; import originDayjs from 'dayjs'; import customParseFormat from 'dayjs/plugin/customParseFormat'; import isBetween from 'dayjs/plugin/isBetween'; import weekOfYear from 'dayjs/plugin/weekOfYear'; import AdvancedFormat from 'dayjs/plugin/advancedFormat'; import weekYear from 'dayjs/plugin/weekYear'; import QuarterOfYear from 'dayjs/plugin/quarterOfYear'; import 'dayjs/locale/zh-cn'; import { isDayjs, isArray } from '../_util/is'; var isMoment = originDayjs()._isAMomentObject; if (isMoment) { originDayjs.extend = function () { }; } // const methods = ['add', 'subtract', 'startOf', 'endOf', 'set']; // methods.forEach((method) => { // const old = originDayjs.prototype[method]; // originDayjs.prototype[`_${method}`] = function(...args) { // return isMoment ? old.call(this.clone(), ...args) : old(...args); // }; // }); var overwriteIsDayjs = function (_, Dayjs, dayjs) { dayjs = function (date, c) { if (isDayjs(date)) { return date.clone(); } var cfg = typeof c === 'object' ? c : {}; cfg.date = date; cfg.args = arguments; // eslint-disable-line prefer-rest-params return new Dayjs(cfg); }; var proto = Dayjs.prototype; var old$Utils = proto.$utils; proto.$utils = function () { var newUtils = old$Utils(); newUtils.i = isDayjs; return newUtils; }; dayjs.isDayjs = isDayjs; }; originDayjs.extend(overwriteIsDayjs); originDayjs.extend(customParseFormat); originDayjs.extend(isBetween); originDayjs.extend(weekOfYear); originDayjs.extend(AdvancedFormat); originDayjs.extend(weekYear); originDayjs.extend(QuarterOfYear); export var dayjs = originDayjs; // 兼容 moment export var methods = { add: function (time, value, unit) { return isMoment ? time.clone().add(value, unit) : time.add(value, unit); }, subtract: function (time, value, unit) { return isMoment ? time.clone().subtract(value, unit) : time.subtract(value, unit); }, startOf: function (time, unit) { return isMoment ? time.clone().startOf(unit) : time.startOf(unit); }, endOf: function (time, unit) { return isMoment ? time.clone().endOf(unit) : time.endOf(unit); }, set: function (time, unit, value) { return isMoment ? time.clone().set(unit, value) : time.set(unit, value); }, isSameWeek: function (date1, date2, weekStart, localeName) { return isMoment ? date1.locale(localeName, { week: { dow: weekStart } }).isSame(date2, 'week') : date1.locale(__assign(__assign({}, dayjs.Ls[localeName]), { weekStart: weekStart })).isSame(date2, 'week'); }, }; export function getNow() { return dayjs(); } export function initializeDateLocale(localeName, weekStart) { if (isMoment) { dayjs.updateLocale(localeName, { week: { dow: weekStart } }); } else { dayjs.locale(__assign(__assign({}, dayjs.Ls[localeName]), { weekStart: weekStart })); } } export function getTimeFormat(format) { var units = ['H', 'h', 'm', 's', 'A', 'a']; var timeFormat = ''; units.some(function (unit) { if (format.indexOf(unit) !== -1) { timeFormat = "" + unit + format.split(" " + unit)[1]; return true; } return false; }); return timeFormat || 'HH:mm:ss'; } export function getDayjsValue(time, format) { if (!time) { return undefined; } var formatValue = function (value) { if (isDayjs(value)) { return dayjs(value.valueOf()); } if (typeof value === 'string') { var dv = dayjs(value, format); return dv.isValid() ? dv : dayjs(value, 'YYYY-MM-DD'); } return dayjs(value); }; if (isArray(time)) { return time.map(function (t) { return (t ? formatValue(t) : undefined); }); } return formatValue(time); } export function getValueWithTime(date, time) { if (date === void 0) { date = getNow(); } var y = date.year(); var m = date.month(); var d = date.date(); if (time) { var returnTime = time; returnTime = methods.set(returnTime, 'year', y); returnTime = methods.set(returnTime, 'month', m); returnTime = methods.set(returnTime, 'date', d); return returnTime; } return date; } export function getSortedDayjsArray(values) { if (!values || !values[0] || !values[1]) { return values; } var newValues = __spreadArray([], __read(values), false); newValues.sort(function (a, b) { return a.valueOf() - b.valueOf(); }); return newValues; } export function isDayjsChange(prevValue, currentValue) { if (currentValue === undefined && prevValue === undefined) { return false; } return ((currentValue && !prevValue) || (!currentValue && prevValue) || dayjs(currentValue).valueOf() !== dayjs(prevValue).valueOf()); } export function isDayjsArrayChange(prevValue, currentValue) { if (currentValue === undefined && prevValue === undefined) { return false; } return ((currentValue && !prevValue) || (!currentValue && prevValue) || (isArray(currentValue) && isArray(prevValue) && dayjs(currentValue[0]).valueOf() !== dayjs(prevValue[0]).valueOf()) || dayjs(currentValue[1]).valueOf() !== dayjs(prevValue[1]).valueOf()); } export function getResolvedDayjsLocaleName(localeName) { var locale = localeName.toLocaleLowerCase(); return locale === 'en-us' ? 'en' : locale; }