UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 17.9 kB
{"version":3,"file":"basic-year-table.vue2.mjs","sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.yearTablePrompt')\"\n :class=\"ns.b()\"\n @click=\"handleYearTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(row, rowKey) in rows\" :key=\"rowKey\">\n <td\n v-for=\"(cell, cellKey) in row\"\n :key=\"`${rowKey}_${cellKey}`\"\n :ref=\"(el) => cell.isSelected && (currentCellRef = el as HTMLElement)\"\n class=\"available\"\n :class=\"getCellKls(cell)\"\n :aria-selected=\"cell.isSelected\"\n :aria-label=\"String(cell.text)\"\n :tabindex=\"cell.isSelected ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleYearTableClick\"\n @keydown.enter.prevent.stop=\"handleYearTableClick\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicYearTableProps } from '../props/basic-year-table'\nimport { getValidDateOfYear } from '../utils'\nimport ElDatePickerCell from './basic-cell-render'\n\nimport type { Dayjs } from 'dayjs'\n\ntype YearCell = {\n column: number\n customClass: string | undefined\n disabled: boolean\n end: boolean\n inRange: boolean\n row: number\n selected: Dayjs | undefined\n isCurrent: boolean | undefined\n isSelected: boolean\n start: boolean\n text: number\n renderText: string | undefined\n timestamp: number | undefined\n type: 'normal' | 'today'\n date: Date | undefined\n dayjs: Dayjs | undefined\n}\n\nconst datesInYear = (year: number, lang: string) => {\n const firstDay = dayjs(String(year)).locale(lang).startOf('year')\n const lastDay = firstDay.endOf('year')\n const numOfDays = lastDay.dayOfYear()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nconst props = defineProps(basicYearTableProps)\nconst emit = defineEmits(['changerange', 'pick', 'select'])\n\nconst ns = useNamespace('year-table')\n\nconst { t, lang } = useLocale()\nconst tbodyRef = ref<HTMLElement>()\nconst currentCellRef = ref<HTMLElement>()\nconst startYear = computed(() => {\n return Math.floor(props.date.year() / 10) * 10\n})\n\nconst tableRows = ref<YearCell[][]>([[], [], []])\nconst lastRow = ref<number>()\nconst lastColumn = ref<number>()\nconst rows = computed(() => {\n const rows = tableRows.value\n const now = dayjs().locale(lang.value).startOf('year')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n if (i * 4 + j >= 10) {\n break\n }\n let cell = row[j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n text: -1,\n disabled: false,\n isSelected: false,\n customClass: undefined,\n date: undefined,\n dayjs: undefined,\n isCurrent: undefined,\n selected: undefined,\n renderText: undefined,\n timestamp: undefined,\n }\n }\n cell.type = 'normal'\n const index = i * 4 + j + startYear.value\n const calTime = dayjs().year(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate) ||\n null\n\n cell.inRange =\n !!(\n props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'year') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'year')\n ) ||\n !!(\n props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'year') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'year')\n )\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = !!(calEndDate && calTime.isSame(calEndDate, 'year'))\n cell.end = !!(props.minDate && calTime.isSame(props.minDate, 'year'))\n } else {\n cell.start = !!(props.minDate && calTime.isSame(props.minDate, 'year'))\n cell.end = !!(calEndDate && calTime.isSame(calEndDate, 'year'))\n }\n\n const isToday = now.isSame(calTime)\n if (isToday) {\n cell.type = 'today'\n }\n cell.text = index\n const cellDate = calTime.toDate()\n cell.disabled = props.disabledDate?.(cellDate) || false\n cell.date = cellDate\n cell.customClass = props.cellClassName?.(cellDate)\n cell.dayjs = calTime\n cell.timestamp = calTime.valueOf()\n cell.isSelected = isSelectedCell(cell)\n row[j] = cell\n }\n }\n return rows\n})\n\nconst focus = () => {\n currentCellRef.value?.focus()\n}\n\nconst getCellKls = (cell: YearCell) => {\n const kls: Record<string, boolean> = {}\n const today = dayjs().locale(lang.value)\n const year = cell.text\n\n kls.disabled =\n props.disabled ||\n (props.disabledDate\n ? datesInYear(year, lang.value).every(props.disabledDate)\n : false)\n\n kls.today = today.year() === year\n kls.current = castArray(props.parsedValue).some((d) => d!.year() === year)\n\n if (cell.customClass) {\n kls[cell.customClass] = true\n }\n if (cell.inRange) {\n kls['in-range'] = true\n\n if (cell.start) {\n kls['start-date'] = true\n }\n\n if (cell.end) {\n kls['end-date'] = true\n }\n }\n return kls\n}\n\nconst isSelectedCell = (cell: YearCell) => {\n const year = cell.text\n return castArray(props.date).some((date) => date.year() === year)\n}\n\nconst handleYearTableClick = (event: MouseEvent | KeyboardEvent) => {\n if (props.disabled) return\n const target = (event.target as HTMLElement)?.closest(\n 'td'\n ) as HTMLTableCellElement\n if (!target || !target.textContent || hasClass(target, 'disabled')) return\n\n const column = target.cellIndex\n const row = (target.parentNode as HTMLTableRowElement).rowIndex\n const selectedYear = row * 4 + column + startYear.value\n const newDate = dayjs().year(selectedYear)\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n emit('pick', { minDate: newDate, maxDate: null })\n emit('select', true)\n } else {\n if (props.minDate && newDate >= props.minDate) {\n emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n emit('select', false)\n }\n } else if (props.selectionMode === 'years') {\n if (event.type === 'keydown') {\n emit('pick', castArray(props.parsedValue), false)\n return\n }\n const vaildYear = getValidDateOfYear(\n newDate.startOf('year'),\n lang.value,\n props.disabledDate\n )\n const newValue = hasClass(target, 'current')\n ? castArray(props.parsedValue).filter((d) => d?.year() !== selectedYear)\n : castArray(props.parsedValue).concat([vaildYear])\n emit('pick', newValue)\n } else {\n emit('pick', selectedYear)\n }\n}\n\nconst handleMouseMove = (event: MouseEvent) => {\n if (!props.rangeState.selecting) return\n const target = (event.target as HTMLElement)?.closest(\n 'td'\n ) as HTMLTableCellElement\n if (!target) return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex\n const column = (target as HTMLTableCellElement).cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n emit('changerange', {\n selecting: true,\n endDate: dayjs()\n .year(startYear.value)\n .add(row * 4 + column, 'year'),\n })\n }\n}\n\nwatch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n)\n\ndefineExpose({\n /**\n * @description focus on the current cell\n */\n focus,\n})\n</script>\n"],"names":["lang","rows","_createElementBlock","_unref","_normalizeClass","_createElementVNode","_openBlock","_Fragment","_renderList","_createVNode"],"mappings":"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"}