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
27 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, ref, inject, computed, useSlots, toRef, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, Fragment, renderList, toDisplayString, createCommentVNode, createVNode, withCtx } from 'vue';\nimport dayjs from 'dayjs';\nimport { DArrowLeft, DArrowRight } from '@element-plus/icons-vue';\nimport { ElIcon } from '../../../icon/index.mjs';\nimport { panelYearRangeProps, panelYearRangeEmits } from '../props/panel-year-range.mjs';\nimport { useShortcut } from '../composables/use-shortcut.mjs';\nimport { useYearRangeHeader } from '../composables/use-year-range-header.mjs';\nimport { isValidRange } from '../utils.mjs';\nimport { ROOT_PICKER_INJECTION_KEY } from '../constants.mjs';\nimport YearTable from './basic-year-table.mjs';\nimport _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useLocale } from '../../../../hooks/use-locale/index.mjs';\nimport { useNamespace } from '../../../../hooks/use-namespace/index.mjs';\nimport { isArray } from '@vue/shared';\nconst unit = \"year\";\nconst __default__ = defineComponent({\n name: \"DatePickerYearRange\"\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: panelYearRangeProps,\n emits: panelYearRangeEmits,\n setup(__props, {\n emit\n }) {\n const props = __props;\n const {\n lang\n } = useLocale();\n const leftDate = ref(dayjs().locale(lang.value));\n const rightDate = ref(leftDate.value.add(10, \"year\"));\n const {\n pickerNs: ppNs\n } = inject(ROOT_PICKER_INJECTION_KEY);\n const drpNs = useNamespace(\"date-range-picker\");\n const hasShortcuts = computed(() => !!shortcuts.length);\n const panelKls = computed(() => [ppNs.b(), drpNs.b(), {\n \"has-sidebar\": Boolean(useSlots().sidebar) || hasShortcuts.value\n }]);\n const leftPanelKls = computed(() => {\n return {\n content: [ppNs.e(\"content\"), drpNs.e(\"content\"), \"is-left\"],\n arrowLeftBtn: [ppNs.e(\"icon-btn\"), \"d-arrow-left\"],\n arrowRightBtn: [ppNs.e(\"icon-btn\"), {\n [ppNs.is(\"disabled\")]: !enableYearArrow.value\n }, \"d-arrow-right\"]\n };\n });\n const rightPanelKls = computed(() => {\n return {\n content: [ppNs.e(\"content\"), drpNs.e(\"content\"), \"is-right\"],\n arrowLeftBtn: [ppNs.e(\"icon-btn\"), {\n \"is-disabled\": !enableYearArrow.value\n }, \"d-arrow-left\"],\n arrowRightBtn: [ppNs.e(\"icon-btn\"), \"d-arrow-right\"]\n };\n });\n const handleShortcutClick = useShortcut(lang);\n const {\n leftPrevYear,\n rightNextYear,\n leftNextYear,\n rightPrevYear,\n leftLabel,\n rightLabel,\n leftYear,\n rightYear\n } = useYearRangeHeader({\n unlinkPanels: toRef(props, \"unlinkPanels\"),\n leftDate,\n rightDate\n });\n const enableYearArrow = computed(() => {\n return props.unlinkPanels && rightYear.value > leftYear.value + 1;\n });\n const minDate = ref();\n const maxDate = ref();\n const rangeState = ref({\n endDate: null,\n selecting: false\n });\n const handleChangeRange = val => {\n rangeState.value = val;\n };\n const handleRangePick = (val, close = true) => {\n const minDate_ = val.minDate;\n const maxDate_ = val.maxDate;\n if (maxDate.value === maxDate_ && minDate.value === minDate_) {\n return;\n }\n emit(\"calendar-change\", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]);\n maxDate.value = maxDate_;\n minDate.value = minDate_;\n if (!close) return;\n handleConfirm();\n };\n const handleConfirm = (visible = false) => {\n if (isValidRange([minDate.value, maxDate.value])) {\n emit(\"pick\", [minDate.value, maxDate.value], visible);\n }\n };\n const onSelect = selecting => {\n rangeState.value.selecting = selecting;\n if (!selecting) {\n rangeState.value.endDate = null;\n }\n };\n const