UNPKG

taro-ui-vue3

Version:

Taro UI Rewritten in Vue 3.0

51 lines (50 loc) 1.72 kB
import dayjs from "dayjs/esm/index"; import _isEmpty from "lodash-es/isEmpty"; function handleActive(args, item) { const {selectedDate} = args; const {_value} = item; const {start, end} = selectedDate; const dayjsEnd = dayjs(end); const dayjsStart = start ? dayjs(start) : dayjsEnd; item.isSelected = _value.isSame(dayjsEnd) || _value.isSame(dayjsStart) || _value.isAfter(dayjsStart) && _value.isBefore(dayjsEnd); item.isSelectedHead = _value.isSame(dayjsStart); item.isSelectedTail = _value.isSame(dayjsEnd); item.isToday = _value.diff(dayjs(Date.now()).startOf("day"), "day") === 0; return item; } function handleMarks(args, item) { const {options} = args; const {_value} = item; const {marks} = options; const markList = marks.filter((mark) => dayjs(mark.value).startOf("day").isSame(_value)); item.marks = markList.slice(0, 1); return item; } function handleDisabled(args, item) { const {options} = args; const {_value} = item; const {minDate, maxDate} = options; const dayjsMinDate = dayjs(minDate); const dayjsMaxDate = dayjs(maxDate); item.isDisabled = !!(minDate && _value.isBefore(dayjsMinDate)) || !!(maxDate && _value.isAfter(dayjsMaxDate)); return item; } function handleValid(args, item) { const {options} = args; const {_value} = item; const {validDates} = options; if (!_isEmpty(validDates)) { const isInclude = validDates.some((date) => dayjs(date.value).startOf("day").isSame(_value)); item.isDisabled = !isInclude; } delete item._value; return item; } var plugins_default = [handleActive, handleMarks, handleDisabled, handleValid]; export { plugins_default as default, handleActive, handleDisabled, handleMarks, handleValid };