UNPKG

@arco-design/web-vue

Version:

Arco Design Vue 2.0: A Vue.js 3 UI Library

171 lines (170 loc) 5.72 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); var originDayjs = require("dayjs"); var customParseFormat = require("dayjs/plugin/customParseFormat"); var isBetween = require("dayjs/plugin/isBetween"); var weekOfYear = require("dayjs/plugin/weekOfYear"); var AdvancedFormat = require("dayjs/plugin/advancedFormat"); var weekYear = require("dayjs/plugin/weekYear"); var QuarterOfYear = require("dayjs/plugin/quarterOfYear"); var is = require("./is.js"); require("dayjs/locale/zh-cn"); function _interopDefaultLegacy(e) { return e && typeof e === "object" && "default" in e ? e : { "default": e }; } var originDayjs__default = /* @__PURE__ */ _interopDefaultLegacy(originDayjs); var customParseFormat__default = /* @__PURE__ */ _interopDefaultLegacy(customParseFormat); var isBetween__default = /* @__PURE__ */ _interopDefaultLegacy(isBetween); var weekOfYear__default = /* @__PURE__ */ _interopDefaultLegacy(weekOfYear); var AdvancedFormat__default = /* @__PURE__ */ _interopDefaultLegacy(AdvancedFormat); var weekYear__default = /* @__PURE__ */ _interopDefaultLegacy(weekYear); var QuarterOfYear__default = /* @__PURE__ */ _interopDefaultLegacy(QuarterOfYear); const overwriteIsDayjs = (_, Dayjs2, dayjs2) => { dayjs2 = function(date, c) { if (is.isDayjs(date)) { return date.clone(); } const cfg = typeof c === "object" ? c : {}; cfg.date = date; cfg.args = arguments; return new Dayjs2(cfg); }; const proto = Dayjs2.prototype; const old$Utils = proto.$utils; proto.$utils = () => { const newUtils = old$Utils(); newUtils.i = is.isDayjs; return newUtils; }; dayjs2.isDayjs = is.isDayjs; }; originDayjs__default["default"].extend(overwriteIsDayjs); originDayjs__default["default"].extend(customParseFormat__default["default"]); originDayjs__default["default"].extend(isBetween__default["default"]); originDayjs__default["default"].extend(weekOfYear__default["default"]); originDayjs__default["default"].extend(AdvancedFormat__default["default"]); originDayjs__default["default"].extend(weekYear__default["default"]); originDayjs__default["default"].extend(QuarterOfYear__default["default"]); const dayjs = originDayjs__default["default"]; const methods = { add(time, value, unit) { return time.add(value, unit); }, subtract(time, value, unit) { return time.subtract(value, unit); }, startOf(time, unit) { return time.startOf(unit); }, startOfWeek(time, weekStart) { const currentDay = time.day(); let startOfWeek = time.subtract(currentDay - weekStart, "day"); if (startOfWeek.isAfter(time)) { startOfWeek = startOfWeek.subtract(7, "day"); } return startOfWeek; }, endOf(time, unit) { return time.endOf(unit); }, set(time, unit, value) { return time.set(unit, value); }, isSameWeek(date1, date2, weekStart) { const getWeek = (date) => { const day = date.day(); const diff = day - weekStart + (day < weekStart ? 7 : 0); return date.subtract(diff, "day").week(); }; return getWeek(date1) === getWeek(date2); } }; function getNow() { return dayjs(); } function getSortedDayjsArray(values) { return [...values].sort((a, b) => a.valueOf() - b.valueOf()); } function isValueChange(prevValue, currentValue) { const isDifference = (value1, value2) => { if (value1 === void 0 && value2 === void 0) { return false; } if (value1 && !value2 || !value1 && value2) { return true; } return (value1 == null ? void 0 : value1.valueOf()) !== (value2 == null ? void 0 : value2.valueOf()); }; if (currentValue === void 0 && prevValue === void 0) { return false; } if (is.isArray(currentValue) && is.isArray(prevValue)) { return isDifference(currentValue[0], prevValue[0]) || isDifference(currentValue[1], prevValue[1]); } if (!is.isArray(currentValue) && !is.isArray(prevValue)) { return isDifference(currentValue, prevValue); } return true; } function getDayjsValue(time, format) { const parseQuarterToMonth = (value) => { const reg = /(Q1)|(Q2)|(Q3)|(Q4)/; const quarter = { Q1: "01", Q2: "04", Q3: "07", Q4: "10" }; const [q] = reg.exec(value); return value.replace(reg, quarter[q]); }; const formatValue = (value) => { if (!value) return void 0; if (typeof value === "string") { if (is.isQuarter(format)) { return dayjs(parseQuarterToMonth(value), format.replace(/\[Q]Q/, "MM")); } if (dayjs(value, format).isValid()) { return dayjs(value, format); } } return dayjs(value); }; if (is.isArray(time)) { return time.map(formatValue); } return formatValue(time); } function getDateValue(value) { const formatValue = (t) => t ? t.toDate() : void 0; if (is.isArray(value)) { return value.map(formatValue); } return formatValue(value); } function initializeDateLocale(localeName, weekStart) { dayjs.locale({ ...dayjs.Ls[localeName.toLocaleLowerCase()], weekStart }); } function pickDataAttributes(obj) { const clone = {}; obj && Object.keys(obj).forEach((key) => { const k = String(key); if (k.indexOf("data-") === 0) { clone[k] = obj[k]; } if (k.indexOf("aria-") === 0) { clone[k] = obj[k]; } }); return clone; } exports.dayjs = dayjs; exports.getDateValue = getDateValue; exports.getDayjsValue = getDayjsValue; exports.getNow = getNow; exports.getSortedDayjsArray = getSortedDayjsArray; exports.initializeDateLocale = initializeDateLocale; exports.isValueChange = isValueChange; exports.methods = methods; exports.pickDataAttributes = pickDataAttributes;