UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

67 lines (63 loc) 2.26 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import dayjs from 'dayjs'; import isArray from 'lodash/isArray'; import isFunction from 'lodash/isFunction'; import isObject from 'lodash/isObject'; function useDisableDate(props) { return { disableDate: function disableDate(value) { return !isEnabled({ disableDate: props.disableDate, format: props.format, mode: props.mode, value: value }); }, minDate: isObject(props.disableDate) && "before" in props.disableDate ? new Date(props.disableDate.before) : props.start, maxDate: isObject(props.disableDate) && "after" in props.disableDate ? new Date(props.disableDate.after) : props.end }; } function isEnabled(props) { if (!props.disableDate) return true; var isEnabled2 = true; if (isFunction(props.disableDate)) { return !props.disableDate(props.value); } if (isArray(props.disableDate)) { var isIncludes = false; var formatedDisabledDate = props.disableDate.map(function (item) { return dayjs(item, props.format); }); formatedDisabledDate.forEach(function (item) { if (item.isSame(dayjs(props.value))) { isIncludes = true; } }); return !isIncludes; } if (props.disableDate.from && props.disableDate.to) { var compareMin = dayjs(new Date(props.disableDate.from)); var compareMax = dayjs(new Date(props.disableDate.to)); return !dayjs(props.value).isBetween(compareMin, compareMax, props.mode, "[]"); } var min = props.disableDate.before ? new Date(props.disableDate.before) : null; var max = props.disableDate.after ? new Date(props.disableDate.after) : null; if (max && min) { var _compareMin = dayjs(new Date(min)); var _compareMax = dayjs(new Date(max)); isEnabled2 = dayjs(props.value).isBetween(_compareMin, _compareMax, props.mode, "[]"); } else if (min) { var _compareMin2 = dayjs(new Date(min)); isEnabled2 = !dayjs(props.value).isBefore(_compareMin2, props.mode); } else if (max) { var _compareMax2 = dayjs(new Date(max)); isEnabled2 = !dayjs(props.value).isAfter(_compareMax2, props.mode); } return isEnabled2; } export { useDisableDate as default }; //# sourceMappingURL=useDisableDate.js.map