tdesign-mobile-vue
Version:
tdesign-mobile-vue
622 lines (603 loc) • 22.5 kB
JavaScript
/**
* tdesign v1.9.3
* (c) 2025 TDesign Group
* @license MIT
*/
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import _objectDestructuringEmpty from '@babel/runtime/helpers/objectDestructuringEmpty';
import _extends from '@babel/runtime/helpers/extends';
import _defineProperty from '@babel/runtime/helpers/defineProperty';
import { isFunction, chunk } from 'lodash-es';
import dayjs from 'dayjs';
import { c as commonjsGlobal } from '../../../_chunks/dep-0d44b254.js';
import { a as advancedFormat } from '../../../_chunks/dep-62c51e6d.js';
import { c as customParseFormat } from '../../../_chunks/dep-be103574.js';
import { parseToDayjs } from './format.js';
import '../log/log.js';
var isBetween = {exports: {}};
(function (module, exports) {
!function (e, i) {
module.exports = i() ;
}(commonjsGlobal, function () {
return function (e, i, t) {
i.prototype.isBetween = function (e, i, s, f) {
var n = t(e),
o = t(i),
r = "(" === (f = f || "()")[0],
u = ")" === f[1];
return (r ? this.isAfter(n, s) : !this.isBefore(n, s)) && (u ? this.isBefore(o, s) : !this.isAfter(o, s)) || (r ? this.isBefore(n, s) : !this.isAfter(n, s)) && (u ? this.isAfter(o, s) : !this.isBefore(o, s));
};
};
});
})(isBetween);
var dayJsIsBetween = isBetween.exports;
var weekOfYear$1 = {exports: {}};
(function (module, exports) {
!function (e, t) {
module.exports = t() ;
}(commonjsGlobal, function () {
var e = "week",
t = "year";
return function (i, n, r) {
var f = n.prototype;
f.week = function (i) {
if (void 0 === i && (i = null), null !== i) return this.add(7 * (i - this.week()), "day");
var n = this.$locale().yearStart || 1;
if (11 === this.month() && this.date() > 25) {
var f = r(this).startOf(t).add(1, t).date(n),
s = r(this).endOf(e);
if (f.isBefore(s)) return 1;
}
var a = r(this).startOf(t).date(n).startOf(e).subtract(1, "millisecond"),
o = this.diff(a, e, !0);
return o < 0 ? r(this).startOf("week").week() : Math.ceil(o);
}, f.weeks = function (e) {
return void 0 === e && (e = null), this.week(e);
};
};
});
})(weekOfYear$1);
var weekOfYear = weekOfYear$1.exports;
var weekYear$1 = {exports: {}};
(function (module, exports) {
!function (e, t) {
module.exports = t() ;
}(commonjsGlobal, function () {
return function (e, t) {
t.prototype.weekYear = function () {
var e = this.month(),
t = this.week(),
n = this.year();
return 1 === t && 11 === e ? n + 1 : 0 === e && t >= 52 ? n - 1 : n;
};
};
});
})(weekYear$1);
var weekYear = weekYear$1.exports;
var localeData$1 = {exports: {}};
(function (module, exports) {
!function (n, e) {
module.exports = e() ;
}(commonjsGlobal, function () {
return function (n, e, t) {
var r = e.prototype,
o = function o(n) {
return n && (n.indexOf ? n : n.s);
},
u = function u(n, e, t, r, _u) {
var i = n.name ? n : n.$locale(),
a = o(i[e]),
s = o(i[t]),
f = a || s.map(function (n) {
return n.slice(0, r);
});
if (!_u) return f;
var d = i.weekStart;
return f.map(function (n, e) {
return f[(e + (d || 0)) % 7];
});
},
i = function i() {
return t.Ls[t.locale()];
},
a = function a(n, e) {
return n.formats[e] || function (n) {
return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function (n, e, t) {
return e || t.slice(1);
});
}(n.formats[e.toUpperCase()]);
},
s = function s() {
var n = this;
return {
months: function months(e) {
return e ? e.format("MMMM") : u(n, "months");
},
monthsShort: function monthsShort(e) {
return e ? e.format("MMM") : u(n, "monthsShort", "months", 3);
},
firstDayOfWeek: function firstDayOfWeek() {
return n.$locale().weekStart || 0;
},
weekdays: function weekdays(e) {
return e ? e.format("dddd") : u(n, "weekdays");
},
weekdaysMin: function weekdaysMin(e) {
return e ? e.format("dd") : u(n, "weekdaysMin", "weekdays", 2);
},
weekdaysShort: function weekdaysShort(e) {
return e ? e.format("ddd") : u(n, "weekdaysShort", "weekdays", 3);
},
longDateFormat: function longDateFormat(e) {
return a(n.$locale(), e);
},
meridiem: this.$locale().meridiem,
ordinal: this.$locale().ordinal
};
};
r.localeData = function () {
return s.bind(this)();
}, t.localeData = function () {
var n = i();
return {
firstDayOfWeek: function firstDayOfWeek() {
return n.weekStart || 0;
},
weekdays: function weekdays() {
return t.weekdays();
},
weekdaysShort: function weekdaysShort() {
return t.weekdaysShort();
},
weekdaysMin: function weekdaysMin() {
return t.weekdaysMin();
},
months: function months() {
return t.months();
},
monthsShort: function monthsShort() {
return t.monthsShort();
},
longDateFormat: function longDateFormat(e) {
return a(n, e);
},
meridiem: n.meridiem,
ordinal: n.ordinal
};
}, t.months = function () {
return u(i(), "months");
}, t.monthsShort = function () {
return u(i(), "monthsShort", "months", 3);
}, t.weekdays = function (n) {
return u(i(), "weekdays", null, null, n);
}, t.weekdaysShort = function (n) {
return u(i(), "weekdaysShort", "weekdays", 3, n);
}, t.weekdaysMin = function (n) {
return u(i(), "weekdaysMin", "weekdays", 2, n);
};
};
});
})(localeData$1);
var localeData = localeData$1.exports;
var quarterOfYear$1 = {exports: {}};
(function (module, exports) {
!function (t, n) {
module.exports = n() ;
}(commonjsGlobal, function () {
var t = "month",
n = "quarter";
return function (e, i) {
var r = i.prototype;
r.quarter = function (t) {
return this.$utils().u(t) ? Math.ceil((this.month() + 1) / 3) : this.month(this.month() % 3 + 3 * (t - 1));
};
var s = r.add;
r.add = function (e, i) {
return e = Number(e), this.$utils().p(i) === n ? this.add(3 * e, t) : s.bind(this)(e, i);
};
var u = r.startOf;
r.startOf = function (e, i) {
var r = this.$utils(),
s = !!r.u(i) || i;
if (r.p(e) === n) {
var o = this.quarter() - 1;
return s ? this.month(3 * o).startOf(t).startOf("day") : this.month(3 * o + 2).endOf(t).endOf("day");
}
return u.bind(this)(e, i);
};
};
});
})(quarterOfYear$1);
var quarterOfYear = quarterOfYear$1.exports;
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
dayjs.extend(weekOfYear);
dayjs.extend(weekYear);
dayjs.extend(localeData);
dayjs.extend(quarterOfYear);
dayjs.extend(advancedFormat);
dayjs.extend(customParseFormat);
dayjs.extend(dayJsIsBetween);
function firstUpperCase(str) {
if (!str) return str;
return str[0].toUpperCase().concat(str.substring(1, str.length));
}
function getFirstDayOfMonth(_ref) {
var year = _ref.year,
month = _ref.month;
return new Date(year, month, 1);
}
function getDaysInMonth(_ref2) {
var year = _ref2.year,
month = _ref2.month;
return new Date(year, month + 1, 0).getDate();
}
function getLastDayOfMonth(_ref3) {
var year = _ref3.year,
month = _ref3.month;
return new Date(year, month, getDaysInMonth({
year: year,
month: month
}));
}
function isSameYear(date1, date2) {
return date1.getFullYear() === date2.getFullYear();
}
function isSameQuarter(date1, date2) {
return isSameYear(date1, date2) && dayjs(date1).quarter() === dayjs(date2).quarter();
}
function isSameMonth(date1, date2) {
return isSameYear(date1, date2) && date1.getMonth() === date2.getMonth();
}
function isSameWeek(date1, date2) {
var dayjsLocale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "zh-cn";
return isSameMonth(date1, date2) && dayjs(date1).locale(dayjsLocale).week() === dayjs(date2).locale(dayjsLocale).week();
}
function isSameDate(date1, date2) {
return isSameMonth(date1, date2) && date1.getDate() === date2.getDate();
}
function compareAsc(date1, date2) {
var d1 = date1.getTime();
var d2 = date2.getTime();
if (d1 < d2) return -1;
if (d1 > d2) return 1;
return 0;
}
function isSame(date1, date2) {
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "date";
var dayjsLocale = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "zh-cn";
var func = {
isSameYear: isSameYear,
isSameQuarter: isSameQuarter,
isSameMonth: isSameMonth,
isSameWeek: isSameWeek,
isSameDate: isSameDate
};
return func["isSame".concat(firstUpperCase(type))](date1, date2, dayjsLocale);
}
function outOfRanges(d, min, max) {
return min && compareAsc(d, min) === -1 || max && compareAsc(d, max) === 1;
}
function getToday() {
var now = new Date();
return new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);
}
function getDateObj(date) {
var tempDate = date;
if (!(date instanceof Date)) {
tempDate = getToday();
}
return {
year: tempDate.getFullYear(),
month: tempDate.getMonth(),
date: tempDate.getDate(),
hours: tempDate.getHours(),
minutes: tempDate.getMinutes(),
seconds: tempDate.getSeconds(),
milliseconds: tempDate.getMilliseconds(),
meridiem: tempDate.getHours() > 11 ? "PM" : "AM"
};
}
function setDateTime(date, hours, minutes, seconds, milliseconds) {
return dayjs(date).hour(hours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();
}
function subtractMonth(date, num) {
return dayjs(date).subtract(num, "month").toDate();
}
function addMonth(date, num) {
return dayjs(date).add(num, "month").toDate();
}
function getWeeks(_ref4, _ref5) {
var year = _ref4.year,
month = _ref4.month;
var firstDayOfWeek = _ref5.firstDayOfWeek,
_ref5$showWeekOfYear = _ref5.showWeekOfYear,
showWeekOfYear = _ref5$showWeekOfYear === void 0 ? false : _ref5$showWeekOfYear,
_ref5$disableDate = _ref5.disableDate,
disableDate = _ref5$disableDate === void 0 ? function () {
return false;
} : _ref5$disableDate,
minDate = _ref5.minDate,
maxDate = _ref5.maxDate,
_ref5$dayjsLocale = _ref5.dayjsLocale,
dayjsLocale = _ref5$dayjsLocale === void 0 ? "zh-cn" : _ref5$dayjsLocale,
_ref5$cancelRangeSele = _ref5.cancelRangeSelectLimit,
cancelRangeSelectLimit = _ref5$cancelRangeSele === void 0 ? false : _ref5$cancelRangeSele;
var prependDay = getFirstDayOfMonth({
year: year,
month: month
});
var appendDay = getLastDayOfMonth({
year: year,
month: month
});
var maxDays = getDaysInMonth({
year: year,
month: month
});
var daysArr = [];
var i = 1;
var today = getToday();
for (i; i <= maxDays; i++) {
var currentDay = new Date(year, month, i);
daysArr.push({
text: i,
active: false,
value: currentDay,
disabled: isFunction(disableDate) && disableDate(currentDay) || !cancelRangeSelectLimit && outOfRanges(currentDay, minDate, maxDate),
now: isSame(today, currentDay),
firstDayOfMonth: i === 1,
lastDayOfMonth: i === maxDays,
type: "current-month",
dayjsObj: dayjs(currentDay).locale(dayjsLocale)
});
}
if (prependDay.getDay() !== firstDayOfWeek) {
prependDay.setDate(0);
while (true) {
daysArr.unshift({
text: prependDay.getDate().toString(),
active: false,
value: new Date(prependDay),
disabled: isFunction(disableDate) && disableDate(prependDay) || !cancelRangeSelectLimit && outOfRanges(prependDay, minDate, maxDate),
additional: true,
type: "prev-month",
dayjsObj: dayjs(prependDay).locale(dayjsLocale)
});
prependDay.setDate(prependDay.getDate() - 1);
if (prependDay.getDay() === Math.abs(firstDayOfWeek + 6) % 7) break;
}
}
var LEN = 42;
while (daysArr.length < LEN) {
appendDay.setDate(appendDay.getDate() + 1);
daysArr.push({
text: appendDay.getDate(),
active: false,
value: new Date(appendDay),
disabled: isFunction(disableDate) && disableDate(appendDay) || !cancelRangeSelectLimit && outOfRanges(appendDay, minDate, maxDate),
additional: true,
type: "next-month",
dayjsObj: dayjs(appendDay).locale(dayjsLocale)
});
}
var dataList = chunk(daysArr, 7);
if (showWeekOfYear) {
dataList.forEach(function (d) {
d.unshift(_objectSpread(_objectSpread({}, d[0]), {}, {
active: false,
value: d[0].value,
text: dayjs(d[0].value).locale(dayjsLocale).week(),
dayjsObj: dayjs(d[0].value).locale(dayjsLocale)
}));
});
}
return dataList;
}
function getQuarters(year, _ref6) {
var _ref6$disableDate = _ref6.disableDate,
disableDate = _ref6$disableDate === void 0 ? function () {
return false;
} : _ref6$disableDate,
minDate = _ref6.minDate,
maxDate = _ref6.maxDate,
quarterLocal = _ref6.quarterLocal,
_ref6$dayjsLocale = _ref6.dayjsLocale,
dayjsLocale = _ref6$dayjsLocale === void 0 ? "zh-cn" : _ref6$dayjsLocale,
_ref6$cancelRangeSele = _ref6.cancelRangeSelectLimit,
cancelRangeSelectLimit = _ref6$cancelRangeSele === void 0 ? false : _ref6$cancelRangeSele;
var quarterArr = [];
var today = getToday();
for (var i = 1; i <= 4; i++) {
var date = dayjs(new Date(year, 0)).quarter(i).toDate();
quarterArr.push({
value: date,
now: isSame(date, today, "quarter"),
disabled: isFunction(disableDate) && disableDate(date) || !cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate),
active: false,
text: quarterLocal[i - 1],
dayjsObj: dayjs(date).locale(dayjsLocale)
});
}
return chunk(quarterArr, 4);
}
function getYears(year, _ref7) {
var _ref7$disableDate = _ref7.disableDate,
disableDate = _ref7$disableDate === void 0 ? function () {
return false;
} : _ref7$disableDate,
minDate = _ref7.minDate,
maxDate = _ref7.maxDate,
_ref7$dayjsLocale = _ref7.dayjsLocale,
dayjsLocale = _ref7$dayjsLocale === void 0 ? "zh-cn" : _ref7$dayjsLocale,
_ref7$cancelRangeSele = _ref7.cancelRangeSelectLimit,
cancelRangeSelectLimit = _ref7$cancelRangeSele === void 0 ? false : _ref7$cancelRangeSele;
var startYear = parseInt((year / 10).toString(), 10) * 10;
var endYear = startYear + 9;
var yearArr = [];
var today = getToday();
for (var i = startYear; i <= endYear; i++) {
var date = new Date(i, 0);
yearArr.push({
value: date,
now: isSame(date, today, "year"),
disabled: isFunction(disableDate) && disableDate(date) || !cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate),
active: false,
text: "".concat(date.getFullYear()),
dayjsObj: dayjs(date).locale(dayjsLocale)
});
}
return chunk(yearArr, 3);
}
function getMonths(year, params) {
var _params$disableDate = params.disableDate,
disableDate = _params$disableDate === void 0 ? function () {
return false;
} : _params$disableDate,
minDate = params.minDate,
maxDate = params.maxDate,
monthLocal = params.monthLocal,
_params$dayjsLocale = params.dayjsLocale,
dayjsLocale = _params$dayjsLocale === void 0 ? "zh-cn" : _params$dayjsLocale,
_params$cancelRangeSe = params.cancelRangeSelectLimit,
cancelRangeSelectLimit = _params$cancelRangeSe === void 0 ? false : _params$cancelRangeSe;
var MonthArr = [];
var today = getToday();
for (var i = 0; i <= 11; i++) {
var date = new Date(year, i);
MonthArr.push({
value: date,
now: isSame(date, today, "month"),
disabled: isFunction(disableDate) && disableDate(date) || !cancelRangeSelectLimit && outOfRanges(date, minDate, maxDate),
active: false,
text: monthLocal[date.getMonth()],
dayjsObj: dayjs(date).locale(dayjsLocale)
});
}
return chunk(MonthArr, 3);
}
function flagActive(data, _ref8) {
var args = _extends({}, (_objectDestructuringEmpty(_ref8), _ref8));
var start = args.start,
end = args.end,
hoverStart = args.hoverStart,
hoverEnd = args.hoverEnd,
_args$type = args.type,
type = _args$type === void 0 ? "date" : _args$type,
_args$isRange = args.isRange,
isRange = _args$isRange === void 0 ? false : _args$isRange,
value = args.value,
_args$multiple = args.multiple,
multiple = _args$multiple === void 0 ? false : _args$multiple;
if (type === "week") return data;
if (!isRange) {
return data.map(function (row) {
return row.map(function (item) {
var _item = item;
if (multiple) {
var _value$some;
_item.active = value === null || value === void 0 || (_value$some = value.some) === null || _value$some === void 0 ? void 0 : _value$some.call(value, function (val) {
return isSame(dayjs(val).toDate(), _item.value, type) && !_item.additional;
});
} else {
_item.active = start && isSame(item.value, start, type) && !_item.additional;
}
return _item;
});
});
}
return data.map(function (row) {
return row.map(function (item) {
var _item = item;
var date = item.value;
var isStart = start && isSame(start, date, type);
var isHoverStart = hoverStart && isSame(hoverStart, date, type);
var isEnd = end && isSame(end, date, type);
var isHoverEnd = hoverEnd && isSame(hoverEnd, date, type);
_item.active = (isStart || isEnd) && !_item.additional;
if (start && end) {
_item.highlight = dayjs(date).isBetween(start, end, type, "[]") && !_item.additional;
_item.startOfRange = isStart;
_item.endOfRange = isEnd;
}
if (hoverStart && hoverEnd) {
_item.hoverHighlight = dayjs(date).isBetween(hoverStart, hoverEnd, type, "[]") && !_item.additional;
_item.hoverStartOfRange = isHoverStart;
_item.hoverEndOfRange = isHoverEnd;
}
return _item;
});
});
}
function extractTimeObj() {
var timeFormat = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var matchedMeridiem = timeFormat.match(/[ap]m/i) || [""];
var timeReg = /\d{1,2}(:\d{1,2})?(:\d{1,2})?(:\d{1,3})?/;
var matchedTimeStr = timeFormat.match(timeReg) || ["0:0:0:0"];
var _matchedTimeStr$0$spl = matchedTimeStr[0].split(":"),
_matchedTimeStr$0$spl2 = _slicedToArray(_matchedTimeStr$0$spl, 4),
_matchedTimeStr$0$spl3 = _matchedTimeStr$0$spl2[0],
hours = _matchedTimeStr$0$spl3 === void 0 ? 0 : _matchedTimeStr$0$spl3,
_matchedTimeStr$0$spl4 = _matchedTimeStr$0$spl2[1],
minutes = _matchedTimeStr$0$spl4 === void 0 ? 0 : _matchedTimeStr$0$spl4,
_matchedTimeStr$0$spl5 = _matchedTimeStr$0$spl2[2],
seconds = _matchedTimeStr$0$spl5 === void 0 ? 0 : _matchedTimeStr$0$spl5,
_matchedTimeStr$0$spl6 = _matchedTimeStr$0$spl2[3],
milliseconds = _matchedTimeStr$0$spl6 === void 0 ? 0 : _matchedTimeStr$0$spl6;
return {
hours: +hours,
minutes: +minutes,
seconds: +seconds,
milliseconds: +milliseconds,
meridiem: matchedMeridiem[0]
};
}
function isEnabledDate(_ref9) {
var value = _ref9.value,
disableDate = _ref9.disableDate,
mode = _ref9.mode,
format = _ref9.format;
if (!disableDate) return true;
var availableMode = mode === "quarter" ? "date" : mode;
var isEnabled = true;
if (isFunction(disableDate)) {
return !disableDate(value);
}
if (Array.isArray(disableDate)) {
var formattedDisabledDate = disableDate.map(function (item) {
return parseToDayjs(item, format);
});
var isIncludes = formattedDisabledDate.some(function (item) {
return item.isSame(dayjs(value));
});
return !isIncludes;
}
var from = disableDate.from,
to = disableDate.to,
before = disableDate.before,
after = disableDate.after;
if (from && to) {
var compareMin = dayjs(from).startOf("day");
var compareMax = dayjs(to).endOf("day");
return !dayjs(value).isBetween(compareMin, compareMax, availableMode, "[]");
}
var min = before ? new Date(dayjs(before).startOf("day").format()) : null;
var max = after ? new Date(dayjs(after).endOf("day").format()) : null;
if (max && min) {
var _compareMin = dayjs(new Date(min));
var _compareMax = dayjs(new Date(max));
isEnabled = dayjs(value).isBetween(_compareMin, _compareMax, availableMode, "[]");
} else if (min) {
var _compareMin2 = dayjs(new Date(min));
isEnabled = !dayjs(value).isBefore(_compareMin2, availableMode);
} else if (max) {
var _compareMax2 = dayjs(new Date(max));
isEnabled = !dayjs(value).isAfter(_compareMax2, availableMode);
}
return isEnabled;
}
function covertToDate(value, valueType) {
return valueType === "time-stamp" ? new Date(value) : dayjs(value, valueType).toDate();
}
export { addMonth, covertToDate, extractTimeObj, firstUpperCase, flagActive, getDateObj, getMonths, getQuarters, getToday, getWeeks, getYears, isEnabledDate, isSame, outOfRanges, setDateTime, subtractMonth };
//# sourceMappingURL=utils.js.map