element-plus
Version:
A Component Library for Vue 3
1 lines • 17.5 kB
Source Map (JSON)
{"version":3,"file":"calendar2.mjs","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\ntype DateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nexport default defineComponent({\n name: 'ElCalendar',\n\n components: {\n DateTable,\n ElButton,\n ElButtonGroup,\n },\n\n props: calendarProps,\n emits: calendarEmits,\n\n setup(props, { emit }) {\n const ns = useNamespace('calendar')\n\n const { t, lang } = useLocale()\n const selectedDay = ref<Dayjs>()\n const now = dayjs().locale(lang.value)\n\n const prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month').date(1)\n })\n const curMonthDatePrefix = computed(() => {\n return dayjs(date.value).locale(lang.value).format('YYYY-MM')\n })\n\n const nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month').date(1)\n })\n\n const prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year').date(1)\n })\n\n const nextYearDayjs = computed(() => {\n return date.value.add(1, 'year').date(1)\n })\n\n const i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n })\n\n const realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n })\n\n const date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n })\n\n // https://github.com/element-plus/element-plus/issues/3155\n // Calculate the validate date range according to the start and end dates\n const calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n ): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (firstMonth + 2 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n }\n\n // if range is valid, we get a two-digit array\n const validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn('ElCalendar', 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n })\n\n const pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n }\n\n const selectDate = (type: DateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n }\n\n return {\n selectedDay,\n curMonthDatePrefix,\n i18nDate,\n realSelectedDay,\n date,\n validatedRange,\n pickDay,\n selectDate,\n t,\n\n ns,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","_toDisplayString","_openBlock","_createVNode","_withCtx","_createTextVNode","_createSlots","_normalizeProps","_guardReactiveProps","_Fragment","_renderList","_createBlock"],"mappings":"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"}