You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
68 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, useAttrs, useSlots, inject, toRef, ref, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, Fragment, renderList, toDisplayString, createCommentVNode, createVNode, withDirectives, withCtx, vShow, withKeys, createBlock, createTextVNode, nextTick } from 'vue';\nimport dayjs from 'dayjs';\nimport { ElButton } from '../../../button/index.mjs';\nimport { ElInput } from '../../../input/index.mjs';\nimport '../../../time-picker/index.mjs';\nimport { ElIcon } from '../../../icon/index.mjs';\nimport { DArrowLeft, ArrowLeft, ArrowRight, DArrowRight } from '@element-plus/icons-vue';\nimport { panelDatePickProps } from '../props/panel-date-pick.mjs';\nimport { getValidDateOfMonth, getValidDateOfYear } from '../utils.mjs';\nimport DateTable from './basic-date-table.mjs';\nimport MonthTable from './basic-month-table.mjs';\nimport YearTable from './basic-year-table.mjs';\nimport _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';\nimport { TOOLTIP_INJECTION_KEY } from '../../../tooltip/src/constants.mjs';\nimport { extractTimeFormat, extractDateFormat } from '../../../time-picker/src/utils.mjs';\nimport TimePickPanel from '../../../time-picker/src/time-picker-com/panel-time-pick.mjs';\nimport ClickOutside from '../../../../directives/click-outside/index.mjs';\nimport { useNamespace } from '../../../../hooks/use-namespace/index.mjs';\nimport { useLocale } from '../../../../hooks/use-locale/index.mjs';\nimport { isArray, isFunction } from '@vue/shared';\nimport { EVENT_CODE } from '../../../../constants/aria.mjs';\nconst _sfc_main = /* @__PURE__ */defineComponent({\n __name: \"panel-date-pick\",\n props: panelDatePickProps,\n emits: [\"pick\", \"set-picker-option\", \"panel-change\"],\n setup(__props, {\n emit: contextEmit\n }) {\n const props = __props;\n const timeWithinRange = (_, __, ___) => true;\n const ppNs = useNamespace(\"picker-panel\");\n const dpNs = useNamespace(\"date-picker\");\n const attrs = useAttrs();\n const slots = useSlots();\n const {\n t,\n lang\n } = useLocale();\n const pickerBase = inject(\"EP_PICKER_BASE\");\n const popper = inject(TOOLTIP_INJECTION_KEY);\n const {\n shortcuts,\n disabledDate,\n cellClassName,\n defaultTime\n } = pickerBase.props;\n const defaultValue = toRef(pickerBase.props, \"defaultValue\");\n const currentViewRef = ref();\n const innerDate = ref(dayjs().locale(lang.value));\n const isChangeToNow = ref(false);\n let isShortcut = false;\n const defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value);\n });\n const month = computed(() => {\n return innerDate.value.month();\n });\n const year = computed(() => {\n return innerDate.value.year();\n });\n const selectableRange = ref([]);\n const userInputDate = ref(null);\n const userInputTime = ref(null);\n const checkDateWithinRange = date => {\n return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || \"HH:mm:ss\") : true;\n };\n const formatEmit = emitDayjs => {\n if (defaultTime && !visibleTime.value && !isChangeToNow.value && !isShortcut) {\n return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).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 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 };\n const handleDatePick = async (value, keepOpen) => {\n if (selectionMode.value === \"d