UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

156 lines (152 loc) 8.11 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import { _ as _defineProperty } from '../../_chunks/dep-f9e836af.mjs'; import { _ as _slicedToArray } from '../../_chunks/dep-32d4c595.mjs'; import { defineComponent, computed, createVNode, mergeProps } from 'vue'; import TDatePickerCell from './Cell.mjs'; import { usePrefixClass } from '../../hooks/useConfig.mjs'; import { parseToDayjs } from '../../_common/js/date-picker/format.mjs'; import { i as isArray_1 } from '../../_chunks/dep-a95026f2.mjs'; import { useConfig } from '../../config-provider/useConfig.mjs'; import '../../_chunks/dep-82805301.mjs'; import '../../_chunks/dep-89b966f4.mjs'; import '../../_common/js/date-picker/utils.mjs'; import '../../_chunks/dep-1cc1c24f.mjs'; import '../../_chunks/dep-10a947a6.mjs'; import '../../_chunks/dep-b75d8d74.mjs'; import '../../_chunks/dep-6ad18815.mjs'; import '../../_chunks/dep-6fe15f5a.mjs'; import '../../_chunks/dep-1671cde7.mjs'; import '../../_chunks/dep-e727a519.mjs'; import '../../_chunks/dep-7dcfa37a.mjs'; import '../../_chunks/dep-addc2a84.mjs'; import '../../_chunks/dep-765678ef.mjs'; import '../../_chunks/dep-a666b9ad.mjs'; import '../../_chunks/dep-7f239c43.mjs'; import '../../_chunks/dep-0e832fc7.mjs'; import '../../_chunks/dep-5755c21c.mjs'; import '../../_chunks/dep-e1ab85c5.mjs'; import '../../_chunks/dep-71f84cf2.mjs'; import '../../_chunks/dep-91ac8f71.mjs'; import '../../_chunks/dep-c4737535.mjs'; import '../../_chunks/dep-81c83986.mjs'; import '../../_chunks/dep-6aa0223b.mjs'; import '../../_chunks/dep-db381ece.mjs'; import '../../_chunks/dep-6f04869e.mjs'; import '../../_chunks/dep-d32fbbb3.mjs'; import '../../_chunks/dep-dafada74.mjs'; import '../../_chunks/dep-068e912d.mjs'; import '../../_chunks/dep-6e7b37b8.mjs'; import '../../_chunks/dep-5f0e0453.mjs'; import '../../_chunks/dep-69963a8c.mjs'; import '../../_chunks/dep-8d1c9a23.mjs'; import '../../_chunks/dep-03412fab.mjs'; import '../../_chunks/dep-205ff58d.mjs'; import '../../_chunks/dep-11fa9c2c.mjs'; import '../../_chunks/dep-b09f48fa.mjs'; import '../../_chunks/dep-26bf361a.mjs'; import '../../_chunks/dep-3ec3335a.mjs'; import '../../_chunks/dep-ed4e7c50.mjs'; import '../../_common/js/global-config/default-config.mjs'; import '../../_common/js/global-config/locale/en_US.mjs'; import '../../config-provider/type.mjs'; import '../../_common/js/log/index.mjs'; import '../../_common/js/log/log.mjs'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var TDateTable = defineComponent({ name: "XDatePickerTable", props: { mode: { type: String, "default": "date" }, value: [String, Number, Array, Date], format: String, firstDayOfWeek: Number, data: Array, time: String, onCellClick: Function, onCellMouseEnter: Function, onCellMouseLeave: Function }, setup: function setup(props) { var COMPONENT_NAME = usePrefixClass("date-picker__table"); var _useConfig = useConfig("datePicker"), globalConfig = _useConfig.globalConfig; var _globalConfig$value = globalConfig.value, weekdays = _globalConfig$value.weekdays, weekAbbreviation = _globalConfig$value.weekAbbreviation, dayjsLocale = _globalConfig$value.dayjsLocale; var weekArr = computed(function () { var _weekArr = []; var wi = props.firstDayOfWeek - 1; var len = weekdays.length; while (_weekArr.length < len) { _weekArr.push(weekdays[wi]); wi = (wi + len + 1) % len; } if (props.mode === "week") _weekArr.unshift(weekAbbreviation); return _weekArr; }); var showThead = computed(function () { return props.mode === "date" || props.mode === "week"; }); var weekRowClass = function weekRowClass(value, format, targetValue) { if (props.mode !== "week" || !value) return {}; if (isArray_1(value)) { var _startObj$locale, _startObj$locale$week, _endObj$locale, _endObj$locale$week, _ref; if (!value.length) return {}; var _value$map = value.map(function (v) { return v && parseToDayjs(v, format); }), _value$map2 = _slicedToArray(_value$map, 2), startObj = _value$map2[0], endObj = _value$map2[1]; var startYear = startObj && startObj.year(); var startWeek = startObj === null || startObj === void 0 || (_startObj$locale = startObj.locale) === null || _startObj$locale === void 0 || (_startObj$locale = _startObj$locale.call(startObj, dayjsLocale)) === null || _startObj$locale === void 0 || (_startObj$locale$week = _startObj$locale.week) === null || _startObj$locale$week === void 0 ? void 0 : _startObj$locale$week.call(_startObj$locale); var endYear = endObj && endObj.year(); var endWeek = endObj === null || endObj === void 0 || (_endObj$locale = endObj.locale) === null || _endObj$locale === void 0 || (_endObj$locale = _endObj$locale.call(endObj, dayjsLocale)) === null || _endObj$locale === void 0 || (_endObj$locale$week = _endObj$locale.week) === null || _endObj$locale$week === void 0 ? void 0 : _endObj$locale$week.call(_endObj$locale); var targetObj = parseToDayjs(targetValue, format); var targetYear = targetObj.year(); var targetWeek = targetObj.week(); var isActive = targetYear === startYear && targetWeek === startWeek || targetYear === endYear && targetWeek === endWeek; var isRange = targetYear >= startYear && targetYear <= endYear && targetWeek > startWeek && targetWeek < endWeek; return _ref = {}, _defineProperty(_ref, "".concat(COMPONENT_NAME.value, "-").concat(props.mode, "-row--active"), isActive), _defineProperty(_ref, "".concat(COMPONENT_NAME.value, "-").concat(props.mode, "-row--range"), isRange), _ref; } return _defineProperty({}, "".concat(COMPONENT_NAME.value, "-").concat(props.mode, "-row--active"), parseToDayjs(value, format).locale(dayjsLocale).week() === parseToDayjs(targetValue, format).locale(dayjsLocale).week()); }; return function () { return createVNode("div", { "class": COMPONENT_NAME.value, "onMouseleave": function onMouseleave(e) { var _props$onCellMouseLea; return (_props$onCellMouseLea = props.onCellMouseLeave) === null || _props$onCellMouseLea === void 0 ? void 0 : _props$onCellMouseLea.call(props, { e: e }); } }, [createVNode("table", null, [showThead.value && createVNode("thead", null, [createVNode("tr", null, [weekArr.value.map(function (value, i) { return createVNode("th", { "key": i }, [value]); })])]), createVNode("tbody", null, [props.data.map(function (row, i) { return createVNode("tr", { "key": i, "class": _objectSpread(_defineProperty({}, "".concat(COMPONENT_NAME.value, "-").concat(props.mode, "-row"), true), weekRowClass(props.value, props.format, row[0].value)) }, [row.map(function (col, j) { return createVNode(TDatePickerCell, mergeProps(col, { "key": j, "time": props.time, "onClick": props.onCellClick, "onMouseEnter": props.onCellMouseEnter }), null); })]); })])])]); }; } }); export { TDateTable as default }; //# sourceMappingURL=Table.mjs.map