UNPKG

tdesign-vue-next

Version:
168 lines (164 loc) 6.4 kB
/** * tdesign v1.19.2 * (c) 2026 tdesign * @license MIT */ import 'vue'; import { isArray, isFunction } from 'lodash-es'; import '@babel/runtime/helpers/toConsumableArray'; import '@babel/runtime/helpers/typeof'; import '../../_chunks/dep-c68ea098.js'; import { useConfig } from '../../config-provider/hooks/useConfig.js'; import '@babel/runtime/helpers/slicedToArray'; import '../../_chunks/dep-91fc762d.js'; import '@babel/runtime/helpers/defineProperty'; import dayjs from 'dayjs'; import { g as getRangeBounds, d as getWeeks, f as getQuarters, h as getMonths, j as getYears, k as flagActive, m as monthHasAnyAllowed, y as yearHasAnyAllowed } from '../../_chunks/dep-43987ea8.js'; import '../../_chunks/dep-f0f392fb.js'; import '../../config-provider/utils/context.js'; import '../../_chunks/dep-509ddbe3.js'; import '@babel/runtime/helpers/createClass'; import '@babel/runtime/helpers/classCallCheck'; import '@babel/runtime/helpers/objectDestructuringEmpty'; import '@babel/runtime/helpers/extends'; import '../../_chunks/dep-4d62a805.js'; import '../../_chunks/dep-4c859e6d.js'; import '../../_chunks/dep-dc276a19.js'; import '../../_chunks/dep-06660d60.js'; function useTableData(props) { var _props$firstDayOfWeek; var _useConfig = useConfig("datePicker"), globalConfig = _useConfig.globalConfig; var options = { minDate: props.minDate, maxDate: props.maxDate, disableDate: props.disableDate, firstDayOfWeek: (_props$firstDayOfWeek = props.firstDayOfWeek) !== null && _props$firstDayOfWeek !== void 0 ? _props$firstDayOfWeek : globalConfig.value.firstDayOfWeek, monthLocal: globalConfig.value.months, quarterLocal: globalConfig.value.quarters, showWeekOfYear: props.mode === "week", dayjsLocale: globalConfig.value.dayjsLocale, cancelRangeSelectLimit: props.cancelRangeSelectLimit }; var baseDisableDate = options.disableDate; var finalDisableDate = function finalDisableDate(date) { return baseDisableDate ? !!baseDisableDate(date) : false; }; if (isArray(props.range)) { var _getRangeBounds = getRangeBounds(props.range), rawMin = _getRangeBounds.min, rawMax = _getRangeBounds.max; var rangeMin = rawMin ? new Date(dayjs(rawMin).startOf("day").format()) : null; var rangeMax = rawMax ? new Date(dayjs(rawMax).endOf("day").format()) : null; var min = rangeMin; var max = rangeMax; if (["date", "week"].includes(props.mode)) { if (min) { options.minDate = options.minDate ? new Date(Math.max(options.minDate.getTime(), min.getTime())) : min; } if (max) { options.maxDate = options.maxDate ? new Date(Math.min(options.maxDate.getTime(), max.getTime())) : max; } } var intervalOverlap = function intervalOverlap(aStart, aEnd, bStart, bEnd) { var s1 = aStart.getTime(); var e1 = aEnd.getTime(); var s2 = bStart ? bStart.getTime() : -Infinity; var e2 = bEnd ? bEnd.getTime() : Infinity; return !(e1 < s2 || s1 > e2); }; finalDisableDate = function finalDisableDate(date) { var base = baseDisableDate ? !!baseDisableDate(date) : false; if (props.mode === "date" || props.mode === "week") { var t = date.getTime(); var aboveMin = min ? t >= min.getTime() : true; var belowMax = max ? t <= max.getTime() : true; var allowed = aboveMin && belowMax; return base || !allowed; } if (props.mode === "month") { var start = new Date(date.getFullYear(), date.getMonth(), 1); var end = new Date(date.getFullYear(), date.getMonth() + 1, 0); end.setHours(23, 59, 59, 999); var _allowed = intervalOverlap(start, end, min, max); return base || !_allowed; } if (props.mode === "quarter") { var startMonth = Math.floor(date.getMonth() / 3) * 3; var _start = new Date(date.getFullYear(), startMonth, 1); var _end = new Date(date.getFullYear(), startMonth + 3, 0); _end.setHours(23, 59, 59, 999); var _allowed2 = intervalOverlap(_start, _end, min, max); return base || !_allowed2; } if (props.mode === "year") { var _start2 = new Date(date.getFullYear(), 0, 1); var _end2 = new Date(date.getFullYear(), 11, 31); _end2.setHours(23, 59, 59, 999); var _allowed3 = intervalOverlap(_start2, _end2, min, max); return base || !_allowed3; } return base; }; } else if (isFunction(props.range)) { var allow = props.range; finalDisableDate = function finalDisableDate(date) { var base = baseDisableDate ? !!baseDisableDate(date) : false; if (props.mode === "date" || props.mode === "week") { var disallowedByRange = !allow(date); return base || disallowedByRange; } if (props.mode === "month") { var allowed = monthHasAnyAllowed(props.range, date.getFullYear(), date.getMonth()); return base || !allowed; } if (props.mode === "quarter") { var startMonth = Math.floor(date.getMonth() / 3) * 3; var _allowed4 = false; for (var m = startMonth; m < startMonth + 3; m++) { if (monthHasAnyAllowed(props.range, date.getFullYear(), m)) { _allowed4 = true; break; } } return base || !_allowed4; } if (props.mode === "year") { var _allowed5 = yearHasAnyAllowed(props.range, date.getFullYear()); return base || !_allowed5; } return base; }; } options.disableDate = finalDisableDate; var data = []; if (props.mode === "date") { data = getWeeks({ year: props.year, month: props.month }, options); } else if (props.mode === "week") { data = getWeeks({ year: props.year, month: props.month }, options); } else if (props.mode === "quarter") { data = getQuarters(props.year, options); } else if (props.mode === "month") { data = getMonths(props.year, options); } else if (props.mode === "year") { data = getYears(props.year, options); } return flagActive(data, { start: props.start, end: props.end, hoverStart: props.hoverStart, hoverEnd: props.hoverEnd, type: props.mode, isRange: props.isRange, value: props.value, multiple: props.multiple }); } export { useTableData }; //# sourceMappingURL=useTableData.js.map