xdesign-vue-next
Version:
XDesign Component for vue-next
945 lines (916 loc) • 33.6 kB
JavaScript
/**
* xdesign v1.0.6
* (c) 2023 xdesign
* @license MIT
*/
import { _ as _slicedToArray } from '../_chunks/dep-32d4c595.mjs';
import { _ as _defineProperty } from '../_chunks/dep-f9e836af.mjs';
import { isVNode, defineComponent, computed, watch, createVNode, mergeProps } from 'vue';
import { d as dayjs } from '../_chunks/dep-6fe15f5a.mjs';
import '../_chunks/dep-10a947a6.mjs';
import { _ as _typeof } from '../_chunks/dep-82805301.mjs';
import { a as _Stack } from '../_chunks/dep-81c83986.mjs';
import { _ as _baseIsEqual } from '../_chunks/dep-0d30bfb9.mjs';
import { i as isObject_1 } from '../_chunks/dep-6ad18815.mjs';
import { i as isFunction_1 } from '../_chunks/dep-1cc1c24f.mjs';
import { k as keys_1 } from '../_chunks/dep-c4737535.mjs';
import { g as get_1 } from '../_chunks/dep-7fa157cd.mjs';
import { h as hasIn_1 } from '../_chunks/dep-abf7f90d.mjs';
import { _ as _isKey, a as _toKey, b as _baseGet } from '../_chunks/dep-fa6608fd.mjs';
import { i as identity_1 } from '../_chunks/dep-3ec3335a.mjs';
import { i as isArray_1 } from '../_chunks/dep-a95026f2.mjs';
import '../_chunks/dep-068e912d.mjs';
import { _ as _baseProperty } from '../_chunks/dep-2f9d2f2d.mjs';
import { _ as _baseUnset } from '../_chunks/dep-60f1d7ee.mjs';
import { _ as _isIndex } from '../_chunks/dep-71f84cf2.mjs';
import props from './props.mjs';
import { createMonthCellsData, createYearCellsData } from './utils.mjs';
import '../hooks/useConfig.mjs';
import { useContent } from '../hooks/tnode.mjs';
import './hook/index.mjs';
import { COMPONENT_NAME, MIN_YEAR, FIRST_MONTH_OF_YEAR, LAST_MONTH_OF_YEAR, DEFAULT_YEAR_CELL_NUMINROW } from './const.mjs';
import { Select } from '../select/index.mjs';
import { RadioGroup, RadioButton } from '../radio/index.mjs';
import { Button } from '../button/index.mjs';
import { CheckTag } from '../tag/index.mjs';
import CalendarCellItem from './calendar-cell.mjs';
import { useConfig } from '../config-provider/useConfig.mjs';
import { useState } from './hook/useState.mjs';
import { useCalendarClass } from './hook/useCalendarClass.mjs';
import { useColHeaders } from './hook/useColHeaders.mjs';
import { userController } from './hook/useController.mjs';
import '../_chunks/dep-89b966f4.mjs';
import '../_chunks/dep-6aa0223b.mjs';
import '../_chunks/dep-db381ece.mjs';
import '../_chunks/dep-5755c21c.mjs';
import '../_chunks/dep-b75d8d74.mjs';
import '../_chunks/dep-7f239c43.mjs';
import '../_chunks/dep-6f04869e.mjs';
import '../_chunks/dep-d32fbbb3.mjs';
import '../_chunks/dep-dafada74.mjs';
import '../_chunks/dep-addc2a84.mjs';
import '../_chunks/dep-6e7b37b8.mjs';
import '../_chunks/dep-e1ab85c5.mjs';
import '../_chunks/dep-5f0e0453.mjs';
import '../_chunks/dep-0e832fc7.mjs';
import '../_chunks/dep-4265f69a.mjs';
import '../_chunks/dep-395d33c9.mjs';
import '../_chunks/dep-69963a8c.mjs';
import '../_chunks/dep-8d1c9a23.mjs';
import '../_chunks/dep-03412fab.mjs';
import '../_chunks/dep-205ff58d.mjs';
import '../_chunks/dep-cc9bfda3.mjs';
import '../_chunks/dep-b57a2815.mjs';
import '../_chunks/dep-983ce253.mjs';
import '../_chunks/dep-7dcfa37a.mjs';
import '../_chunks/dep-4903a8a8.mjs';
import '../_chunks/dep-e901316d.mjs';
import '../_chunks/dep-765678ef.mjs';
import '../_chunks/dep-ed4e7c50.mjs';
import '../_chunks/dep-a628549d.mjs';
import '../_chunks/dep-f4eba04c.mjs';
import '../_chunks/dep-735bcd0d.mjs';
import '../_chunks/dep-8db27830.mjs';
import '../_chunks/dep-ae4bffa5.mjs';
import '../utils/render-tnode.mjs';
import '../_chunks/dep-9d7ebc32.mjs';
import '../_chunks/dep-11fa9c2c.mjs';
import '../select/select.mjs';
import '../_chunks/dep-53e379cd.mjs';
import '../_chunks/dep-5bec687c.mjs';
import '../_chunks/dep-0c786bea.mjs';
import '../_chunks/dep-e727a519.mjs';
import '../_chunks/dep-91ac8f71.mjs';
import '../_chunks/dep-6269eaa3.mjs';
import '../_chunks/dep-26bf361a.mjs';
import '../common-components/fake-arrow.mjs';
import '../select-input/index.mjs';
import '../select-input/select-input.mjs';
import '../popup/index.mjs';
import '../popup/popup.mjs';
import '@popperjs/core';
import '../hooks/index.mjs';
import '../hooks/icon.mjs';
import '../hooks/slot.mjs';
import '../hooks/useCommonClassName.mjs';
import '../hooks/useDefaultValue.mjs';
import '../hooks/useDestroyOnClose.mjs';
import '../hooks/useKeepAnimation.mjs';
import '../_chunks/dep-b09f48fa.mjs';
import '../_chunks/dep-a666b9ad.mjs';
import '../_common/js/global-config/default-config.mjs';
import '../_common/js/global-config/locale/en_US.mjs';
import '../hooks/useRipple.mjs';
import '../utils/set-style.mjs';
import '../hooks/useVirtualScroll.mjs';
import '../hooks/useVModel.mjs';
import '../hooks/useImagePreviewUrl.mjs';
import '../_common/js/upload/utils.mjs';
import '../_common/js/log/log.mjs';
import '../utils/dom.mjs';
import '../utils/easing.mjs';
import '../_common/js/utils/set-style.mjs';
import '../popup/container.mjs';
import '../popup/props.mjs';
import '../hooks/useResizeObserver.mjs';
import '../utils/withInstall.mjs';
import './style/css.mjs';
import '../popup/type.mjs';
import '../config-provider/type.mjs';
import '../select-input/props.mjs';
import '../select-input/useSingle.mjs';
import '../input/index.mjs';
import '../input/input.mjs';
import '../_chunks/dep-8b0014b3.mjs';
import '../_chunks/dep-84ddb5ec.mjs';
import '../input/props.mjs';
import '../form/hooks.mjs';
import '../input/useInput.mjs';
import '../form/const.mjs';
import '../input/useLengthLimit.mjs';
import '../_common/js/log/index.mjs';
import '../_common/js/utils/helper.mjs';
import '../_chunks/dep-5a2ce53e.mjs';
import '../_chunks/dep-1bae6a97.mjs';
import '../_chunks/dep-23f91684.mjs';
import '../input/useInputEventHandler.mjs';
import '../input/useInputWidth.mjs';
import '../input/input-group.mjs';
import '../input/input-group-props.mjs';
import '../input/type.mjs';
import '../loading/index.mjs';
import '../loading/directive.mjs';
import '../loading/plugin.mjs';
import '../loading/loading.mjs';
import '../loading/icon/gradient.mjs';
import '../_common/js/loading/circle-adapter.mjs';
import '../loading/props.mjs';
import '../hooks/useTeleport.mjs';
import '../loading/type.mjs';
import '../select-input/useMultiple.mjs';
import '../tag-input/index.mjs';
import '../tag-input/tag-input.mjs';
import '../tag-input/props.mjs';
import '../tag-input/hooks/useTagScroll.mjs';
import '../tag-input/useTagList.mjs';
import '../tag-input/hooks/useHover.mjs';
import '../tag-input/hooks/useDragSorter.mjs';
import '../tag/tag.mjs';
import '../_chunks/dep-7f8588b1.mjs';
import '../tag/props.mjs';
import '../tag/check-tag.mjs';
import '../tag/check-tag-props.mjs';
import '../tag/type.mjs';
import '../tag-input/type.mjs';
import '../select-input/useOverlayInnerStyle.mjs';
import '../select-input/type.mjs';
import '../select/select-panel.mjs';
import '../select/option.mjs';
import '../select/option-props.mjs';
import '../checkbox/index.mjs';
import '../checkbox/checkbox.mjs';
import '../checkbox/props.mjs';
import '../checkbox/constants.mjs';
import '../checkbox/hooks/useCheckboxLazyLoad.mjs';
import '../_common/js/utils/observe.mjs';
import '../checkbox/hooks/useKeyboard.mjs';
import '../hooks/useDisabled.mjs';
import '../_chunks/dep-b9fae426.mjs';
import '../checkbox/group.mjs';
import '../checkbox/checkbox-group-props.mjs';
import '../checkbox/type.mjs';
import '../select/helper.mjs';
import '../select/optionGroup.mjs';
import '../select/option-group-props.mjs';
import '../select/props.mjs';
import '../select/hooks/usePanelVirtualScroll.mjs';
import '../select/hooks/useSelectOptions.mjs';
import '../select/type.mjs';
import '../radio/radio.mjs';
import '../utils/helper.mjs';
import '../radio/props.mjs';
import '../radio/constants.mjs';
import '../radio/group.mjs';
import '../_chunks/dep-2cefabe0.mjs';
import '../_chunks/dep-1cab4dbd.mjs';
import '../_chunks/dep-c72bf085.mjs';
import '../radio/radio-group-props.mjs';
import '../radio/useKeyboard.mjs';
import '../watermark/hooks.mjs';
import '../radio/radio-button.mjs';
import '../radio/type.mjs';
import '../button/button.mjs';
import '../button/props.mjs';
import '../button/type.mjs';
var Stack = _Stack,
baseIsEqual$1 = _baseIsEqual;
/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG$1 = 1,
COMPARE_UNORDERED_FLAG$1 = 2;
/**
* The base implementation of `_.isMatch` without support for iteratee shorthands.
*
* @private
* @param {Object} object The object to inspect.
* @param {Object} source The object of property values to match.
* @param {Array} matchData The property names, values, and compare flags to match.
* @param {Function} [customizer] The function to customize comparisons.
* @returns {boolean} Returns `true` if `object` is a match, else `false`.
*/
function baseIsMatch$1(object, source, matchData, customizer) {
var index = matchData.length,
length = index,
noCustomizer = !customizer;
if (object == null) {
return !length;
}
object = Object(object);
while (index--) {
var data = matchData[index];
if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {
return false;
}
}
while (++index < length) {
data = matchData[index];
var key = data[0],
objValue = object[key],
srcValue = data[1];
if (noCustomizer && data[2]) {
if (objValue === undefined && !(key in object)) {
return false;
}
} else {
var stack = new Stack();
if (customizer) {
var result = customizer(objValue, srcValue, key, object, source, stack);
}
if (!(result === undefined ? baseIsEqual$1(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {
return false;
}
}
}
return true;
}
var _baseIsMatch = baseIsMatch$1;
var isObject = isObject_1;
/**
* Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
*
* @private
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` if suitable for strict
* equality comparisons, else `false`.
*/
function isStrictComparable$2(value) {
return value === value && !isObject(value);
}
var _isStrictComparable = isStrictComparable$2;
var isStrictComparable$1 = _isStrictComparable,
keys = keys_1;
/**
* Gets the property names, values, and compare flags of `object`.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the match data of `object`.
*/
function getMatchData$1(object) {
var result = keys(object),
length = result.length;
while (length--) {
var key = result[length],
value = object[key];
result[length] = [key, value, isStrictComparable$1(value)];
}
return result;
}
var _getMatchData = getMatchData$1;
/**
* A specialized version of `matchesProperty` for source values suitable
* for strict equality comparisons, i.e. `===`.
*
* @private
* @param {string} key The key of the property to get.
* @param {*} srcValue The value to match.
* @returns {Function} Returns the new spec function.
*/
function matchesStrictComparable$2(key, srcValue) {
return function (object) {
if (object == null) {
return false;
}
return object[key] === srcValue && (srcValue !== undefined || key in Object(object));
};
}
var _matchesStrictComparable = matchesStrictComparable$2;
var baseIsMatch = _baseIsMatch,
getMatchData = _getMatchData,
matchesStrictComparable$1 = _matchesStrictComparable;
/**
* The base implementation of `_.matches` which doesn't clone `source`.
*
* @private
* @param {Object} source The object of property values to match.
* @returns {Function} Returns the new spec function.
*/
function baseMatches$1(source) {
var matchData = getMatchData(source);
if (matchData.length == 1 && matchData[0][2]) {
return matchesStrictComparable$1(matchData[0][0], matchData[0][1]);
}
return function (object) {
return object === source || baseIsMatch(object, source, matchData);
};
}
var _baseMatches = baseMatches$1;
var baseIsEqual = _baseIsEqual,
get = get_1,
hasIn = hasIn_1,
isKey$1 = _isKey,
isStrictComparable = _isStrictComparable,
matchesStrictComparable = _matchesStrictComparable,
toKey$1 = _toKey;
/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
COMPARE_UNORDERED_FLAG = 2;
/**
* The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
*
* @private
* @param {string} path The path of the property to get.
* @param {*} srcValue The value to match.
* @returns {Function} Returns the new spec function.
*/
function baseMatchesProperty$1(path, srcValue) {
if (isKey$1(path) && isStrictComparable(srcValue)) {
return matchesStrictComparable(toKey$1(path), srcValue);
}
return function (object) {
var objValue = get(object, path);
return objValue === undefined && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
};
}
var _baseMatchesProperty = baseMatchesProperty$1;
var baseGet = _baseGet;
/**
* A specialized version of `baseProperty` which supports deep paths.
*
* @private
* @param {Array|string} path The path of the property to get.
* @returns {Function} Returns the new accessor function.
*/
function basePropertyDeep$1(path) {
return function (object) {
return baseGet(object, path);
};
}
var _basePropertyDeep = basePropertyDeep$1;
var baseProperty = _baseProperty,
basePropertyDeep = _basePropertyDeep,
isKey = _isKey,
toKey = _toKey;
/**
* Creates a function that returns the value at `path` of a given object.
*
* @static
* @memberOf _
* @since 2.4.0
* @category Util
* @param {Array|string} path The path of the property to get.
* @returns {Function} Returns the new accessor function.
* @example
*
* var objects = [
* { 'a': { 'b': 2 } },
* { 'a': { 'b': 1 } }
* ];
*
* _.map(objects, _.property('a.b'));
* // => [2, 1]
*
* _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
* // => [1, 2]
*/
function property$1(path) {
return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
}
var property_1 = property$1;
var baseMatches = _baseMatches,
baseMatchesProperty = _baseMatchesProperty,
identity = identity_1,
isArray = isArray_1,
property = property_1;
/**
* The base implementation of `_.iteratee`.
*
* @private
* @param {*} [value=_.identity] The value to convert to an iteratee.
* @returns {Function} Returns the iteratee.
*/
function baseIteratee$1(value) {
// Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
// See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
if (typeof value == 'function') {
return value;
}
if (value == null) {
return identity;
}
if (_typeof(value) == 'object') {
return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
}
return property(value);
}
var _baseIteratee = baseIteratee$1;
var baseUnset = _baseUnset,
isIndex = _isIndex;
/** Used for built-in method references. */
var arrayProto = Array.prototype;
/** Built-in value references. */
var splice = arrayProto.splice;
/**
* The base implementation of `_.pullAt` without support for individual
* indexes or capturing the removed elements.
*
* @private
* @param {Array} array The array to modify.
* @param {number[]} indexes The indexes of elements to remove.
* @returns {Array} Returns `array`.
*/
function basePullAt$1(array, indexes) {
var length = array ? indexes.length : 0,
lastIndex = length - 1;
while (length--) {
var index = indexes[length];
if (length == lastIndex || index !== previous) {
var previous = index;
if (isIndex(index)) {
splice.call(array, index, 1);
} else {
baseUnset(array, index);
}
}
}
return array;
}
var _basePullAt = basePullAt$1;
var baseIteratee = _baseIteratee,
basePullAt = _basePullAt;
/**
* Removes all elements from `array` that `predicate` returns truthy for
* and returns an array of the removed elements. The predicate is invoked
* with three arguments: (value, index, array).
*
* **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`
* to pull elements from an array by value.
*
* @static
* @memberOf _
* @since 2.0.0
* @category Array
* @param {Array} array The array to modify.
* @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new array of removed elements.
* @example
*
* var array = [1, 2, 3, 4];
* var evens = _.remove(array, function(n) {
* return n % 2 == 0;
* });
*
* console.log(array);
* // => [1, 3]
*
* console.log(evens);
* // => [2, 4]
*/
function remove(array, predicate) {
var result = [];
if (!(array && array.length)) {
return result;
}
var index = -1,
indexes = [],
length = array.length;
predicate = baseIteratee(predicate, 3);
while (++index < length) {
var value = array[index];
if (predicate(value, index, array)) {
result.push(value);
indexes.push(index);
}
}
basePullAt(array, indexes);
return result;
}
var remove_1 = remove;
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; }
function _isSlot(s) {
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
}
var _Calendar = defineComponent({
name: "XCalendar",
props: _objectSpread({}, props),
setup: function setup(props2, _ref) {
var slots = _ref.slots;
var renderContent = useContent();
var _useConfig = useConfig(COMPONENT_NAME),
t = _useConfig.t,
globalConfig = _useConfig.globalConfig;
var _useState = useState(props2),
state = _useState.state,
toToday = _useState.toToday,
checkDayVisible = _useState.checkDayVisible;
var cls = useCalendarClass(props2, state);
var _useColHeaders = useColHeaders(props2, state),
cellColHeaders = _useColHeaders.cellColHeaders;
var controller = userController(props2, state);
var rangeFromTo = computed(function () {
if (!props2.range || props2.range.length < 2) {
return null;
}
var _props2$range = _slicedToArray(props2.range, 2),
v1 = _props2$range[0],
v2 = _props2$range[1];
if (dayjs(v1).isBefore(dayjs(v2))) {
return {
from: v1,
to: v2
};
}
return {
from: v2,
to: v1
};
});
function checkMonthAndYearSelectedDisabled(year, month) {
var disabled = false;
if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {
var beginYear = dayjs(rangeFromTo.value.from).year();
var endYear = dayjs(rangeFromTo.value.to).year();
if (year === beginYear) {
var beginMon = parseInt(dayjs(rangeFromTo.value.from).format("M"), 10);
disabled = month < beginMon;
} else if (year === endYear) {
var endMon = parseInt(dayjs(rangeFromTo.value.to).format("M"), 10);
disabled = month > endMon;
}
}
return disabled;
}
function adjustMonth() {
var _rangeFromTo$value, _rangeFromTo$value2;
if ((_rangeFromTo$value = rangeFromTo.value) !== null && _rangeFromTo$value !== void 0 && _rangeFromTo$value.from && (_rangeFromTo$value2 = rangeFromTo.value) !== null && _rangeFromTo$value2 !== void 0 && _rangeFromTo$value2.to) {
var beginYear = dayjs(rangeFromTo.value.from).year();
var endYear = dayjs(rangeFromTo.value.to).year();
var beginMon = parseInt(dayjs(rangeFromTo.value.from).format("M"), 10);
if (checkMonthAndYearSelectedDisabled(state.curSelectedYear, state.curSelectedMonth)) {
state.curSelectedMonth = state.curSelectedYear === beginYear ? beginMon : state.curSelectedYear === endYear ? 1 : state.curSelectedMonth;
}
}
}
watch(function () {
return {
year: "".concat(state.curSelectedYear),
month: "".concat(state.curSelectedMonth)
};
}, function (v) {
isFunction_1(props2.onMonthChange) && props2.onMonthChange(_objectSpread({}, v));
controller.emitControllerChange();
});
var dateSelect = {
yearSelectOptionList: computed(function () {
var re = [];
var begin = state.curSelectedYear - 10;
var end = state.curSelectedYear + 10;
if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {
begin = dayjs(rangeFromTo.value.from).year();
end = dayjs(rangeFromTo.value.to).year();
}
if (begin < MIN_YEAR) {
begin = MIN_YEAR;
}
if (end < MIN_YEAR) {
end = MIN_YEAR;
}
for (var i = begin; i <= end; i++) {
re.push({
value: i,
label: t(globalConfig.value.yearSelection, {
year: i
}),
disabled: false
});
}
return re;
}),
isYearSelectVisible: computed(function () {
return controller.checkControllerVisible("year");
}),
isYearSelectDisabled: computed(function () {
return controller.checkControllerDisabled("year", "selectProps");
}),
monthSelectOptionList: computed(function () {
adjustMonth();
var re = [];
for (var i = FIRST_MONTH_OF_YEAR; i <= LAST_MONTH_OF_YEAR; i++) {
var disabled = checkMonthAndYearSelectedDisabled(state.curSelectedYear, i);
re.push({
value: i,
label: t(globalConfig.value.monthSelection, {
month: i
}),
disabled: disabled
});
}
return re;
}),
isMonthSelectVisible: computed(function () {
return state.curSelectedMode === "month" && controller.checkControllerVisible("month");
}),
isMonthSelectDisabled: computed(function () {
return controller.checkControllerDisabled("month", "selectProps");
})
};
var modeSelect = {
optionList: computed(function () {
return [{
value: "month",
label: t(globalConfig.value.monthRadio)
}, {
value: "year",
label: t(globalConfig.value.yearRadio)
}];
}),
isVisible: computed(function () {
return controller.checkControllerVisible("mode");
}),
isDisabled: computed(function () {
return controller.checkControllerDisabled("mode", "radioGroupProps");
})
};
var weekendBtn = {
text: computed(function () {
return state.isShowWeekend ? t(globalConfig.value.hideWeekend) : t(globalConfig.value.showWeekend);
}),
vBind: computed(function () {
var c = controller.configData.value.weekend;
return state.isShowWeekend ? c.hideWeekendButtonProps : c.showWeekendButtonProps;
}),
isVisible: computed(function () {
return props2.theme === "full" && controller.checkControllerVisible("current") && controller.checkControllerVisible("weekend");
}),
isDisabled: computed(function () {
var p = state.isShowWeekend ? "hideWeekendButtonProps" : "showWeekendButtonProps";
return controller.checkControllerDisabled("weekend", p);
})
};
var currentBtn = {
text: computed(function () {
return state.curSelectedMode === "month" ? t(globalConfig.value.today) : t(globalConfig.value.thisMonth);
}),
vBind: computed(function () {
var c = controller.configData.value.current;
return state.curSelectedMode === "month" ? c.currentDayButtonProps : c.currentMonthButtonProps;
}),
isVisible: computed(function () {
return props2.theme === "full" && controller.checkControllerVisible("current");
}),
isDisabled: computed(function () {
var p = state.curSelectedMode === "month" ? "currentDayButtonProps" : "currentMonthButtonProps";
return controller.checkControllerDisabled("current", p);
})
};
var renderControl = function renderControl() {
var _slot;
return createVNode("div", {
"class": cls.control.value
}, [createVNode("div", {
"class": cls.title.value
}, [renderContent("head", void 0, {
params: _objectSpread({}, controller.options.value)
})]), createVNode("div", {
"class": cls.controlSection.value
}, [dateSelect.isYearSelectVisible.value && createVNode("div", {
"class": cls.controlSectionCell.value
}, [createVNode(Select, mergeProps({
"modelValue": state.curSelectedYear,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return state.curSelectedYear = $event;
},
"size": state.controlSize,
"autoWidth": true
}, controller.configData.value.year.selectProps, {
"disabled": dateSelect.isYearSelectDisabled.value,
"options": dateSelect.yearSelectOptionList.value
}), null)]), dateSelect.isMonthSelectVisible.value && createVNode("div", {
"class": cls.controlSectionCell.value
}, [createVNode(Select, mergeProps({
"autoWidth": true,
"modelValue": state.curSelectedMonth,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return state.curSelectedMonth = $event;
},
"size": state.controlSize
}, controller.configData.value.month.selectProps, {
"disabled": dateSelect.isMonthSelectDisabled.value,
"options": dateSelect.monthSelectOptionList.value
}), null)]), modeSelect.isVisible.value && createVNode("div", {
"class": cls.controlSectionCell.value,
"style": "height: auto"
}, [createVNode(RadioGroup, mergeProps({
"modelValue": state.curSelectedMode,
"onUpdate:modelValue": function onUpdateModelValue($event) {
return state.curSelectedMode = $event;
},
"variant": "default-filled",
"size": state.controlSize
}, controller.configData.value.mode.radioGroupProps, {
"disabled": modeSelect.isDisabled.value,
"onChange": controller.emitControllerChange
}), _isSlot(_slot = modeSelect.optionList.value.map(function (item) {
return createVNode(RadioButton, {
"key": item.value,
"value": item.value
}, {
"default": function _default() {
return [item.label];
}
});
})) ? _slot : {
"default": function _default() {
return [_slot];
}
})]), weekendBtn.isVisible.value && createVNode("div", {
"class": cls.controlSectionCell.value
}, [createVNode(CheckTag, mergeProps({
"class": cls.controlTag.value,
"theme": state.isShowWeekend ? "default" : "primary",
"size": "large"
}, weekendBtn.vBind.value, {
"disabled": weekendBtn.isDisabled.value,
"onClick": function onClick() {
state.isShowWeekend = !state.isShowWeekend;
controller.emitControllerChange();
}
}), {
"default": function _default() {
return [weekendBtn.text.value];
}
})]), currentBtn.isVisible.value && createVNode("div", {
"class": cls.controlSectionCell.value
}, [createVNode(Button, mergeProps({
"size": state.controlSize
}, currentBtn.vBind.value, {
"disabled": currentBtn.isDisabled.value,
"onClick": function onClick() {
toToday();
}
}), {
"default": function _default() {
return [currentBtn.text.value];
}
})])])]);
};
var cellClickEmit = function cellClickEmit(eventPropsName, e, cellData) {
if (isFunction_1(props2[eventPropsName])) {
var options = {
cell: _objectSpread(_objectSpread({}, cellData), controller.options.value),
e: e
};
props2[eventPropsName](options);
}
};
var clickCell = function clickCell(e, cellData) {
var d = dayjs(cellData.date);
if (props2.multiple) {
if (state.curDateList.find(function (item) {
return item.isSame(d);
})) {
state.curDateList = remove_1(state.curDateList, function (item) {
return !item.isSame(d);
});
} else {
state.curDateList.push(d);
}
} else {
state.curDate = d;
}
cellClickEmit("onCellClick", e, cellData);
};
var doubleClickCell = function doubleClickCell(e, cellData) {
cellClickEmit("onCellDoubleClick", e, cellData);
};
var rightClickCell = function rightClickCell(e, cellData) {
if (props2.preventCellContextmenu) {
e.preventDefault();
}
cellClickEmit("onCellRightClick", e, cellData);
};
var monthCellsData = computed(function () {
var daysArr = createMonthCellsData(props2, state);
return daysArr;
});
var renderMonthBody = function renderMonthBody() {
return createVNode("table", {
"class": cls.table.value
}, [createVNode("thead", {
"class": cls.tableHead.value
}, [createVNode("tr", {
"class": cls.tableHeadRow.value
}, [cellColHeaders.value.map(function (item, index) {
return checkDayVisible(item.num) && createVNode("th", {
"class": cls.tableHeadCell.value
}, [isArray_1(props2.week) ? props2.week[index] : renderContent("week", void 0, {
defaultNode: createVNode("span", null, [item.display]),
params: {
day: item.num
}
})]);
})])]), createVNode("tbody", {
"class": cls.tableBody.value
}, [monthCellsData.value.map(function (week, weekIndex) {
return createVNode("tr", {
"class": cls.tableBodyRow.value
}, [week.map(function (item, itemIndex) {
return (state.isShowWeekend || item.day < 6) && createVNode(CalendarCellItem, {
"key": "d-".concat(weekIndex, "-").concat(itemIndex),
"item": item,
"theme": props2.theme,
"t": t,
"global": globalConfig.value,
"cell": props2.cell,
"cellAppend": props2.cellAppend,
"fillWithZero": props2.fillWithZero,
"onClick": function onClick(e) {
return clickCell(e, item);
},
"onDblclick": function onDblclick(e) {
return doubleClickCell(e, item);
},
"onRightclick": function onRightclick(e) {
return rightClickCell(e, item);
}
}, _objectSpread({}, slots));
})]);
})])]);
};
var yearCellsData = computed(function () {
var re = [];
var monthsArr = createYearCellsData(props2, state);
var rowCount = Math.ceil(monthsArr.length / DEFAULT_YEAR_CELL_NUMINROW);
var index = 0;
for (var i = 1; i <= rowCount; i++) {
var row = [];
for (var j = 1; j <= DEFAULT_YEAR_CELL_NUMINROW; j++) {
row.push(monthsArr[index]);
index += 1;
}
re.push(row);
}
return re;
});
var renderYearBody = function renderYearBody() {
return createVNode("table", {
"class": cls.table.value
}, [createVNode("tbody", {
"class": cls.tableBody.value
}, [yearCellsData.value.map(function (cell, cellIndex) {
return createVNode("tr", {
"class": cls.tableBodyRow.value
}, [cell.map(function (item, itemIndex) {
return createVNode(CalendarCellItem, {
"key": "m-".concat(cellIndex, "-").concat(itemIndex),
"item": item,
"theme": props2.theme,
"t": t,
"global": globalConfig.value,
"cell": props2.cell,
"cellAppend": props2.cellAppend,
"fillWithZero": props2.fillWithZero,
"onClick": function onClick(e) {
return clickCell(e, item);
},
"onDblclick": function onDblclick(e) {
return doubleClickCell(e, item);
},
"onRightclick": function onRightclick(e) {
return rightClickCell(e, item);
}
}, _objectSpread({}, slots));
})]);
})])]);
};
return function () {
return createVNode("div", {
"class": cls.body.value
}, [controller.visible.value && renderControl(), createVNode("div", {
"class": cls.panel.value
}, [state.curSelectedMode === "month" ? renderMonthBody() : renderYearBody()])]);
};
}
});
export { _Calendar as default };
//# sourceMappingURL=calendar.mjs.map