UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 52.8 kB
{"version":3,"file":"panel-date-pick.vue2.mjs","sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ppNs.b(),\n dpNs.b(),\n ppNs.is('border', border),\n ppNs.is('disabled', dateDisabled),\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div :class=\"ppNs.e('body-wrapper')\">\n <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"dateDisabled\"\n :class=\"ppNs.e('shortcut')\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div :class=\"ppNs.e('body')\">\n <div v-if=\"showTime\" :class=\"dpNs.e('time-header')\">\n <span :class=\"dpNs.e('editor-wrap')\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-click-outside=\"handleTimePickClose\"\n :class=\"dpNs.e('editor-wrap')\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n :class=\"[\n dpNs.e('header'),\n (currentView === 'year' || currentView === 'month') &&\n dpNs.em('header', 'bordered'),\n ]\"\n >\n <span :class=\"dpNs.e('prev-btn')\">\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"d-arrow-left\"\n :class=\"ppNs.e('icon-btn')\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(false)\"\n >\n <slot name=\"prev-year\">\n <el-icon><d-arrow-left /></el-icon>\n </slot>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-left\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(false)\"\n >\n <slot name=\"prev-month\">\n <el-icon><arrow-left /></el-icon>\n </slot>\n </button>\n </span>\n <span\n role=\"button\"\n :class=\"dpNs.e('header-label')\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n @keydown.enter=\"showPicker('year')\"\n @click=\"showPicker('year')\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n :class=\"[\n dpNs.e('header-label'),\n { active: currentView === 'month' },\n ]\"\n @keydown.enter=\"showPicker('month')\"\n @click=\"showPicker('month')\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <span :class=\"dpNs.e('next-btn')\">\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(true)\"\n >\n <slot name=\"next-month\">\n <el-icon><arrow-right /></el-icon>\n </slot>\n </button>\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"d-arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(true)\"\n >\n <slot name=\"next-year\">\n <el-icon><d-arrow-right /></el-icon>\n </slot>\n </button>\n </span>\n </div>\n <div :class=\"ppNs.e('content')\" @keydown=\"handleKeydownTable\">\n <date-table\n v-if=\"currentView === 'date'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :parsed-value=\"parsedValue\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"showFooter && footerVisible && footerFilled\"\n :class=\"ppNs.e('footer')\"\n >\n <el-button\n v-show=\"!isMultipleType && showNow\"\n text\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledNow\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n v-if=\"showConfirm\"\n plain\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledConfirm\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n ref,\n toRef,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n DEFAULT_FORMATS_DATE,\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n TimePickPanel,\n extractDateFormat,\n extractTimeFormat,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n extractFirst,\n getEventCode,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ArrowLeft,\n ArrowRight,\n DArrowLeft,\n DArrowRight,\n} from '@element-plus/icons-vue'\nimport { panelDatePickProps } from '../props/panel-date-pick'\nimport {\n correctlyParseUserInput,\n getValidDateOfMonth,\n getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\nimport { useFormDisabled } from '@element-plus/components/form'\n\nimport type { SetupContext } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { PanelDatePickProps } from '../props/panel-date-pick'\nimport type {\n DateTableEmits,\n DatesPickerEmits,\n MonthsPickerEmits,\n WeekPickerEmits,\n YearsPickerEmits,\n} from '../props/basic-date-table'\n\ntype DatePickType = PanelDatePickProps['type']\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\nconst props = defineProps(panelDatePickProps)\nconst contextEmit = defineEmits(['pick', 'set-picker-option', 'panel-change'])\nconst ppNs = useNamespace('picker-panel')\nconst dpNs = useNamespace('date-picker')\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst { t, lang } = useLocale()\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) as any\nconst { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\n\nconst currentViewRef = ref<{ focus: () => void }>()\n\nconst innerDate = ref(dayjs().locale(lang.value))\n\nconst isChangeToNow = ref(false)\n\nlet isShortcut = false\n\nconst defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n})\n\nconst month = computed(() => {\n return innerDate.value.month()\n})\n\nconst year = computed(() => {\n return innerDate.value.year()\n})\n\nconst selectableRange = ref([])\nconst userInputDate = ref<string | null>(null)\nconst userInputTime = ref<string | null>(null)\n// todo update to disableHour\nconst checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(date, selectableRange.value, props.format || 'HH:mm:ss')\n : true\n}\nconst formatEmit = (emitDayjs: Dayjs) => {\n if (\n defaultTime &&\n !visibleTime.value &&\n !isChangeToNow.value &&\n !isShortcut\n ) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n}\nconst emit = (value: Dayjs | Dayjs[], ...args: any[]) => {\n if (!value) {\n contextEmit('pick', value, ...args)\n } else if (isArray(value)) {\n const dates = value.map(formatEmit)\n contextEmit('pick', dates, ...args)\n } else {\n contextEmit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n isChangeToNow.value = false\n isShortcut = false\n}\nconst handleDatePick = async (value: DateTableEmits, keepOpen?: boolean) => {\n if (selectionMode.value === 'date' && dayjs.isDayjs(value)) {\n const parsedDateValue = extractFirst(props.parsedValue)\n let newDate = parsedDateValue\n ? parsedDateValue\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value || keepOpen)\n } else if (selectionMode.value === 'week') {\n emit((value as WeekPickerEmits).date)\n } else if (selectionMode.value === 'dates') {\n emit(value as DatesPickerEmits, true) // set true to keep panel open\n }\n}\n\nconst moveByMonth = (forward: boolean) => {\n const action = forward ? 'add' : 'subtract'\n innerDate.value = innerDate.value[action](1, 'month')\n handlePanelChange('month')\n}\n\nconst moveByYear = (forward: boolean) => {\n const currentDate = innerDate.value\n const action = forward ? 'add' : 'subtract'\n\n innerDate.value =\n currentView.value === 'year'\n ? currentDate[action](10, 'year')\n : currentDate[action](1, 'year')\n\n handlePanelChange('year')\n}\n\nconst currentView = ref('date')\n\nconst yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n})\n\ntype Shortcut = {\n value: (() => Dayjs) | Dayjs\n onClick?: (ctx: Omit<SetupContext, 'expose'>) => void\n}\n\nconst handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValue = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n if (shortcutValue) {\n isShortcut = true\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit: contextEmit as SetupContext['emit'],\n })\n }\n}\n\nconst selectionMode = computed<DatePickType>(() => {\n const { type } = props\n if (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\n return type\n return 'date'\n})\n\nconst isMultipleType = computed(() => {\n return (\n selectionMode.value === 'dates' ||\n selectionMode.value === 'months' ||\n selectionMode.value === 'years'\n )\n})\n\nconst keyboardMode = computed<string>(() => {\n return selectionMode.value === 'date'\n ? currentView.value\n : selectionMode.value\n})\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst handleMonthPick = async (\n month: number | MonthsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'month') {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'months') {\n emit(month as MonthsPickerEmits, keepOpen ?? true)\n } else {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n currentView.value = 'date'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('month')\n}\n\nconst handleYearPick = async (\n year: number | YearsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'year') {\n const data = innerDate.value.startOf('year').year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'years') {\n emit(year as YearsPickerEmits, keepOpen ?? true)\n } else {\n const data = innerDate.value.year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n currentView.value = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('year')\n}\n\nconst dateDisabled = useFormDisabled()\n\nconst showPicker = async (view: 'month' | 'year') => {\n if (dateDisabled.value) return\n currentView.value = view\n await nextTick()\n handleFocusPicker()\n}\n\nconst showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n)\n\nconst footerVisible = computed(() => {\n const showDateFooter = showTime.value || selectionMode.value === 'dates'\n const showYearFooter = selectionMode.value === 'years'\n const showMonthFooter = selectionMode.value === 'months'\n const isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\n )\n})\n\nconst footerFilled = computed(\n () => (!isMultipleType.value && props.showNow) || props.showConfirm\n)\n\nconst disabledConfirm = computed(() => {\n if (!disabledDate) return false\n if (!props.parsedValue) return true\n if (isArray(props.parsedValue)) {\n return disabledDate(props.parsedValue[0].toDate())\n }\n return disabledDate(props.parsedValue.toDate())\n})\nconst onConfirm = () => {\n if (isMultipleType.value) {\n emit(props.parsedValue as Dayjs[])\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = extractFirst(props.parsedValue)\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n}\n\nconst disabledNow = computed(() => {\n if (!disabledDate) return false\n return disabledDate(dayjs().locale(lang.value).toDate())\n})\nconst changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n isChangeToNow.value = true\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n}\n\nconst timeFormat = computed(() => {\n return (\n props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME\n )\n})\n\nconst dateFormat = computed(() => {\n return (\n props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE\n )\n})\n\nconst visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(timeFormat.value)\n})\n\nconst visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(dateFormat.value)\n})\n\nconst timePickerVisible = ref(false)\nconst onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n}\nconst handleTimePickClose = () => {\n timePickerVisible.value = false\n}\n\nconst getUnits = (date: Dayjs) => {\n return {\n hour: date.hour(),\n minute: date.minute(),\n second: date.second(),\n year: date.year(),\n month: date.month(),\n date: date.date(),\n }\n}\n\nconst handleTimePick = (value: Dayjs, visible: boolean, first: boolean) => {\n const { hour, minute, second } = getUnits(value)\n const parsedDateValue = extractFirst(props.parsedValue)\n const newDate = parsedDateValue\n ? parsedDateValue.hour(hour).minute(minute).second(second)\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n}\n\nconst handleVisibleTimeChange = (value: string) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n const { year, month, date } = getUnits(innerDate.value)\n innerDate.value = newDate.year(year).month(month).date(date)\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n}\n\nconst handleVisibleDateChange = (value: string) => {\n const newDate = correctlyParseUserInput(\n value,\n dateFormat.value,\n lang.value,\n isDefaultFormat\n ) as Dayjs\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n const { hour, minute, second } = getUnits(innerDate.value)\n innerDate.value = newDate.hour(hour).minute(minute).second(second)\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n}\n\nconst isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\n}\n\nconst getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n}\n\nconst handleFocusPicker = () => {\n if (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\n currentViewRef.value?.focus()\n }\n}\n\nconst _handleFocusPicker = () => {\n handleFocusPicker()\n // TODO: After focus the date input, the first time you use the ArrowDown keys, you cannot focus on the date cell\n if (selectionMode.value === 'week') {\n handleKeyControl(EVENT_CODE.down)\n }\n}\n\nconst handleKeydownTable = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const validCode = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n EVENT_CODE.home,\n EVENT_CODE.end,\n EVENT_CODE.pageUp,\n EVENT_CODE.pageDown,\n ]\n if (validCode.includes(code)) {\n handleKeyControl(code)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n [EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(\n code\n ) &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n event.preventDefault()\n emit(innerDate.value, false)\n }\n}\n\nconst handleKeyControl = (code: string) => {\n type KeyControlMappingCallableOffset = (date: Date, step?: number) => number\n type KeyControl = {\n [key: string]:\n | number\n | KeyControlMappingCallableOffset\n | ((date: Date, step: number) => any)\n offset: (date: Date, step: number) => any\n }\n interface KeyControlMapping {\n [key: string]: KeyControl\n }\n\n const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE\n const mapping: KeyControlMapping = {\n year: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setFullYear(date.getFullYear() + step),\n },\n month: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step),\n },\n week: {\n [up]: -1,\n [down]: 1,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setDate(date.getDate() + step * 7),\n },\n date: {\n [up]: -7,\n [down]: 7,\n [left]: -1,\n [right]: 1,\n [home]: (date: Date) => -date.getDay(),\n [end]: (date: Date) => -date.getDay() + 6,\n [pageUp]: (date: Date) =>\n -new Date(date.getFullYear(), date.getMonth(), 0).getDate(),\n [pageDown]: (date: Date) =>\n new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(),\n offset: (date: Date, step: number) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[keyboardMode.value]\n if (!map) return\n map.offset(\n newDate,\n isFunction(map[code])\n ? (map[code] as unknown as KeyControlMappingCallableOffset)(newDate)\n : ((map[code] as number) ?? 0)\n )\n if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\n break\n }\n}\n\nconst handlePanelChange = (mode: 'month' | 'year') => {\n contextEmit('panel-change', innerDate.value.toDate(), mode, currentView.value)\n}\n\nwatch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n } else if (val === 'years') {\n currentView.value = 'year'\n return\n } else if (val === 'months') {\n currentView.value = 'month'\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n)\n\nwatch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (isMultipleType.value) return\n if (isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\ncontextEmit('set-picker-option', ['isValidValue', isValidValue])\ncontextEmit('set-picker-option', ['parseUserInput', parseUserInput])\ncontextEmit('set-picker-option', ['handleFocusPicker', _handleFocusPicker])\n</script>\n"],"names":["month","year","defaultTimeD","_createElementBlock","_normalizeClass","_unref","border","$slots","_createElementVNode","_renderSlot","_openBlock","_Fragment","_renderList","_toDisplayString","_createVNode","editable","TimePickPanel","disabled","_createBlock","DateTable","parsedValue","showWeekNumber","YearTable","MonthTable","showFooter","_vShow","showNow","showConfirm"],"mappings":"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