@sms-frontend/components
Version:
SMS Design React UI Library.
194 lines (193 loc) • 6.82 kB
JavaScript
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;
}