element-plus
Version:
A Component Library for Vue 3
1 lines • 45.3 kB
Source Map (JSON)
{"version":3,"file":"panel-date-pick.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n class=\"el-picker-panel el-date-picker\"\n :class=\"[\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div class=\"el-picker-panel__body-wrapper\">\n <slot name=\"sidebar\" class=\"el-picker-panel__sidebar\" />\n <div v-if=\"hasShortcuts\" class=\"el-picker-panel__sidebar\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n class=\"el-picker-panel__shortcut\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div class=\"el-picker-panel__body\">\n <div v-if=\"showTime\" class=\"el-date-picker__time-header\">\n <span class=\"el-date-picker__editor-wrap\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-clickoutside=\"handleTimePickClose\"\n class=\"el-date-picker__editor-wrap\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :time-arrow-control=\"arrowControl\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n class=\"el-date-picker__header\"\n :class=\"{\n 'el-date-picker__header--bordered':\n currentView === 'year' || currentView === 'month',\n }\"\n >\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__prev-btn d-arrow-left\"\n @click=\"prevYear_\"\n >\n <el-icon><d-arrow-left /></el-icon>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__prev-btn arrow-left\"\n @click=\"prevMonth_\"\n >\n <el-icon><arrow-left /></el-icon>\n </button>\n <span\n role=\"button\"\n class=\"el-date-picker__header-label\"\n @click=\"showYearPicker\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n class=\"el-date-picker__header-label\"\n :class=\"{ active: currentView === 'month' }\"\n @click=\"showMonthPicker\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__next-btn d-arrow-right\"\n @click=\"nextYear_\"\n >\n <el-icon><d-arrow-right /></el-icon>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n class=\"el-picker-panel__icon-btn el-date-picker__next-btn arrow-right\"\n @click=\"nextMonth_\"\n >\n <el-icon><arrow-right /></el-icon>\n </button>\n </div>\n <div class=\"el-picker-panel__content\">\n <date-table\n v-if=\"currentView === 'date'\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :parsed-value=\"parsedValue\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-show=\"footerVisible && currentView === 'date'\"\n class=\"el-picker-panel__footer\"\n >\n <el-button\n v-show=\"selectionMode !== 'dates'\"\n size=\"small\"\n type=\"text\"\n class=\"el-picker-panel__link-btn\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n plain\n size=\"small\"\n class=\"el-picker-panel__link-btn\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, watch, toRef } from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useLocale } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n extractDateFormat,\n extractTimeFormat,\n TimePickPanel,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { isValidDatePickType } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n DArrowLeft,\n ArrowLeft,\n DArrowRight,\n ArrowRight,\n} from '@element-plus/icons-vue'\nimport { TOOLTIP_INJECTION_KEY } from '@element-plus/components/tooltip'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\n\nimport type { PropType } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { IDatePickerType } from '../date-picker.type'\n\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\n\nexport default defineComponent({\n components: {\n DateTable,\n ElInput,\n ElButton,\n ElIcon,\n TimePickPanel,\n MonthTable,\n YearTable,\n DArrowLeft,\n ArrowLeft,\n DArrowRight,\n ArrowRight,\n },\n\n directives: { clickoutside: ClickOutside },\n props: {\n visible: {\n type: Boolean,\n default: false,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n format: {\n type: String,\n default: '',\n },\n type: {\n type: String as PropType<IDatePickerType>,\n required: true,\n validator: isValidDatePickType,\n },\n },\n emits: ['pick', 'set-picker-option', 'panel-change'],\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const pickerBase = inject('EP_PICKER_BASE') as any\n const popper = inject(TOOLTIP_INJECTION_KEY)\n const {\n shortcuts,\n disabledDate,\n cellClassName,\n defaultTime,\n arrowControl,\n } = pickerBase.props\n const defaultValue = toRef(pickerBase.props, 'defaultValue')\n\n const innerDate = ref(dayjs().locale(lang.value))\n\n const defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n })\n\n const month = computed(() => {\n return innerDate.value.month()\n })\n\n const year = computed(() => {\n return innerDate.value.year()\n })\n\n const selectableRange = ref([])\n const userInputDate = ref(null)\n const userInputTime = ref(null)\n // todo update to disableHour\n const checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(\n date,\n selectableRange.value,\n props.format || 'HH:mm:ss'\n )\n : true\n }\n const formatEmit = (emitDayjs: Dayjs) => {\n if (defaultTime && !visibleTime.value) {\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 }\n const emit = (value, ...args) => {\n if (!value) {\n ctx.emit('pick', value, ...args)\n } else if (Array.isArray(value)) {\n const dates = value.map(formatEmit)\n ctx.emit('pick', dates, ...args)\n } else {\n ctx.emit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n }\n const handleDatePick = (value: Dayjs) => {\n if (selectionMode.value === 'day') {\n let newDate = props.parsedValue\n ? (props.parsedValue as Dayjs)\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)\n } else if (selectionMode.value === 'week') {\n emit(value.date)\n } else if (selectionMode.value === 'dates') {\n emit(value, true) // set false to keep panel open\n }\n }\n const prevMonth_ = () => {\n innerDate.value = innerDate.value.subtract(1, 'month')\n handlePanelChange('month')\n }\n\n const nextMonth_ = () => {\n innerDate.value = innerDate.value.add(1, 'month')\n handlePanelChange('month')\n }\n\n const prevYear_ = () => {\n if (currentView.value === 'year') {\n innerDate.value = innerDate.value.subtract(10, 'year')\n } else {\n innerDate.value = innerDate.value.subtract(1, 'year')\n }\n handlePanelChange('year')\n }\n\n const nextYear_ = () => {\n if (currentView.value === 'year') {\n innerDate.value = innerDate.value.add(10, 'year')\n } else {\n innerDate.value = innerDate.value.add(1, 'year')\n }\n handlePanelChange('year')\n }\n\n const currentView = ref('date')\n\n const 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\n const handleShortcutClick = (shortcut) => {\n const shortcutValue =\n typeof shortcut.value === 'function' ? shortcut.value() : shortcut.value\n if (shortcutValue) {\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick(ctx)\n }\n }\n\n const selectionMode = computed(() => {\n if (['week', 'month', 'year', 'dates'].includes(props.type)) {\n return props.type\n }\n return 'day'\n })\n\n watch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n )\n\n watch(\n () => currentView.value,\n () => {\n popper?.updatePopper()\n }\n )\n\n const hasShortcuts = computed(() => !!shortcuts.length)\n\n const handleMonthPick = (month) => {\n innerDate.value = innerDate.value.startOf('month').month(month)\n if (selectionMode.value === 'month') {\n emit(innerDate.value)\n } else {\n currentView.value = 'date'\n }\n handlePanelChange('month')\n }\n\n const handleYearPick = (year) => {\n if (selectionMode.value === 'year') {\n innerDate.value = innerDate.value.startOf('year').year(year)\n emit(innerDate.value)\n } else {\n innerDate.value = innerDate.value.year(year)\n currentView.value = 'month'\n }\n handlePanelChange('year')\n }\n\n const showMonthPicker = () => {\n currentView.value = 'month'\n }\n\n const showYearPicker = () => {\n currentView.value = 'year'\n }\n\n const showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n )\n\n const footerVisible = computed(() => {\n return showTime.value || selectionMode.value === 'dates'\n })\n\n const onConfirm = () => {\n if (selectionMode.value === 'dates') {\n emit(props.parsedValue)\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = props.parsedValue as Dayjs\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\n const 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 if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n }\n\n const timeFormat = computed(() => {\n return extractTimeFormat(props.format)\n })\n\n const dateFormat = computed(() => {\n return extractDateFormat(props.format)\n })\n\n const visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n return ((props.parsedValue || innerDate.value) as Dayjs).format(\n timeFormat.value\n )\n })\n\n const visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n return ((props.parsedValue || innerDate.value) as Dayjs).format(\n dateFormat.value\n )\n })\n\n const timePickerVisible = ref(false)\n const onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n }\n const handleTimePickClose = () => {\n timePickerVisible.value = false\n }\n\n const handleTimePick = (value, visible, first) => {\n const newDate = props.parsedValue\n ? (props.parsedValue as Dayjs)\n .hour(value.hour())\n .minute(value.minute())\n .second(value.second())\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n }\n\n const handleVisibleTimeChange = (value) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n innerDate.value = newDate\n .year(innerDate.value.year())\n .month(innerDate.value.month())\n .date(innerDate.value.date())\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n }\n\n const handleVisibleDateChange = (value) => {\n const newDate = dayjs(value, dateFormat.value).locale(lang.value)\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n innerDate.value = newDate\n .hour(innerDate.value.hour())\n .minute(innerDate.value.minute())\n .second(innerDate.value.second())\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n }\n\n const isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n }\n\n const formatToString = (value) => {\n if (selectionMode.value === 'dates') {\n return value.map((_) => _.format(props.format))\n }\n return value.format(props.format)\n }\n\n const parseUserInput = (value) => {\n return dayjs(value, props.format).locale(lang.value)\n }\n\n const 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\n const handleKeydown = (event) => {\n const { code, keyCode } = event\n const list = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n ]\n if (props.visible && !timePickerVisible.value) {\n if (list.includes(code)) {\n handleKeyControl(keyCode)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n code === EVENT_CODE.enter &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n // Enter\n emit(innerDate, false)\n }\n }\n }\n\n const handleKeyControl = (keyCode) => {\n const mapping = {\n year: {\n 38: -4,\n 40: 4,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setFullYear(date.getFullYear() + step),\n },\n month: {\n 38: -4,\n 40: 4,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setMonth(date.getMonth() + step),\n },\n week: {\n 38: -1,\n 40: 1,\n 37: -1,\n 39: 1,\n offset: (date, step) => date.setDate(date.getDate() + step * 7),\n },\n day: {\n 38: -7,\n 40: 7,\n 37: -1,\n 39: 1,\n offset: (date, step) => 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[selectionMode.value]\n map.offset(newDate, map[keyCode])\n if (disabledDate && disabledDate(newDate)) {\n continue\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n ctx.emit('pick', result, true)\n break\n }\n }\n\n const handlePanelChange = (mode: 'month' | 'year') => {\n ctx.emit(\n 'panel-change',\n innerDate.value.toDate(),\n mode,\n currentView.value\n )\n }\n\n ctx.emit('set-picker-option', ['isValidValue', isValidValue])\n ctx.emit('set-picker-option', ['formatToString', formatToString])\n ctx.emit('set-picker-option', ['parseUserInput', parseUserInput])\n ctx.emit('set-picker-option', ['handleKeydown', handleKeydown])\n\n watch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n )\n\n watch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (selectionMode.value === 'dates') return\n if (Array.isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n )\n\n return {\n handleTimePick,\n handleTimePickClose,\n onTimePickerInputFocus,\n timePickerVisible,\n visibleTime,\n visibleDate,\n showTime,\n changeToNow,\n onConfirm,\n footerVisible,\n handleYearPick,\n showMonthPicker,\n showYearPicker,\n handleMonthPick,\n hasShortcuts,\n shortcuts,\n arrowControl,\n disabledDate,\n cellClassName,\n selectionMode,\n handleShortcutClick,\n prevYear_,\n nextYear_,\n prevMonth_,\n nextMonth_,\n innerDate,\n t,\n yearLabel,\n currentView,\n month,\n handleDatePick,\n handleVisibleTimeChange,\n handleVisibleDateChange,\n timeFormat,\n userInputTime,\n userInputDate,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","_openBlock","_Fragment","_renderList","_toDisplayString","_createVNode","_withDirectives","_createCommentVNode","_withCtx","_vShow","_createBlock","_createTextVNode"],"mappings":"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"}