{"version":3,"file":"panel-year-range.js","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/panel-year-range.vue"],"sourcesContent":["<template>\n  <div :class=\"panelKls\">\n    <div :class=\"ppNs.e('body-wrapper')\">\n      <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n      <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n        <button\n          v-for=\"(shortcut, key) in shortcuts\"\n          :key=\"key\"\n          type=\"button\"\n          :class=\"ppNs.e('shortcut')\"\n          @click=\"handleShortcutClick(shortcut)\"\n        >\n          {{ shortcut.text }}\n        </button>\n      </div>\n      <div :class=\"ppNs.e('body')\">\n        <div :class=\"leftPanelKls.content\">\n          <div :class=\"drpNs.e('header')\">\n            <button\n              type=\"button\"\n              :class=\"leftPanelKls.arrowLeftBtn\"\n              @click=\"leftPrevYear\"\n            >\n              <slot name=\"prev-year\">\n                <el-icon><d-arrow-left /></el-icon>\n              </slot>\n            </button>\n            <button\n              v-if=\"unlinkPanels\"\n              type=\"button\"\n              :disabled=\"!enableYearArrow\"\n              :class=\"leftPanelKls.arrowRightBtn\"\n              @click=\"leftNextYear\"\n            >\n              <slot name=\"next-year\">\n                <el-icon><d-arrow-right /></el-icon>\n              </slot>\n            </button>\n            <div>{{ leftLabel }}</div>\n          </div>\n          <year-table\n            selection-mode=\"range\"\n            :date=\"leftDate\"\n            :min-date=\"minDate\"\n            :max-date=\"maxDate\"\n            :range-state=\"rangeState\"\n            :disabled-date=\"disabledDate\"\n            @changerange=\"handleChangeRange\"\n            @pick=\"handleRangePick\"\n            @select=\"onSelect\"\n          />\n        </div>\n        <div :class=\"rightPanelKls.content\">\n          <div :class=\"drpNs.e('header')\">\n            <button\n              v-if=\"unlinkPanels\"\n              type=\"button\"\n              :disabled=\"!enableYearArrow\"\n              :class=\"rightPanelKls.arrowLeftBtn\"\n              @click=\"rightPrevYear\"\n            >\n              <slot name=\"prev-year\">\n                <el-icon><d-arrow-left /></el-icon>\n              </slot>\n            </button>\n            <button\n              type=\"button\"\n              :class=\"rightPanelKls.arrowRightBtn\"\n              @click=\"rightNextYear\"\n            >\n              <slot name=\"next-year\">\n                <el-icon><d-arrow-right /></el-icon>\n              </slot>\n            </button>\n            <div>{{ rightLabel }}</div>\n          </div>\n          <year-table\n            selection-mode=\"range\"\n            :date=\"rightDate\"\n            :min-date=\"minDate\"\n            :max-date=\"maxDate\"\n            :range-state=\"rangeState\"\n            :disabled-date=\"disabledDate\"\n            @changerange=\"handleChangeRange\"\n            @pick=\"handleRangePick\"\n            @select=\"onSelect\"\n          />\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, inject, ref, toRef, useSlots, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { isArray } from '@element-plus/utils'\nimport { DArrowLeft, DArrowRight } from '@element-plus/icons-vue'\nimport ElIcon from '@element-plus/components/icon'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport {\n  panelYearRangeEmits,\n  panelYearRangeProps,\n} from '../props/panel-year-range'\nimport { useShortcut } from '../composables/use-shortcut'\nimport { useYearRangeHeader } from '../composables/use-year-range-header'\nimport { isValidRange } from '../utils'\nimport { ROOT_PICKER_INJECTION_KEY } from '../constants'\nimport YearTable from './basic-year-table.vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { RangeState } from '../props/shared'\n\ndefineOptions({\n  name: 'DatePickerYearRange',\n})\n\nconst props = defineProps(panelYearRangeProps)\nconst emit = defineEmits(panelYearRangeEmits)\n\nconst { lang } = useLocale()\nconst leftDate = ref(dayjs().locale(lang.value))\nconst rightDate = ref(leftDate.value.add(10, 'year'))\nconst { pickerNs: ppNs } = inject(ROOT_PICKER_INJECTION_KEY)!\nconst drpNs = useNamespace('date-range-picker')\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst panelKls = computed(() => [\n  ppNs.b(),\n  drpNs.b(),\n  {\n    'has-sidebar': Boolean(useSlots().sidebar) || hasShortcuts.value,\n  },\n])\n\nconst 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: [\n      ppNs.e('icon-btn'),\n      { [ppNs.is('disabled')]: !enableYearArrow.value },\n      'd-arrow-right',\n    ],\n  }\n})\n\nconst rightPanelKls = computed(() => {\n  return {\n    content: [ppNs.e('content'), drpNs.e('content'), 'is-right'],\n    arrowLeftBtn: [\n      ppNs.e('icon-btn'),\n      { 'is-disabled': !enableYearArrow.value },\n      'd-arrow-left',\n    ],\n    arrowRightBtn: [ppNs.e('icon-btn'), 'd-arrow-right'],\n  }\n})\n\nconst handleShortcutClick = useShortcut(lang)\n\nconst {\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\nconst enableYearArrow = computed(() => {\n  return props.unlinkPanels && rightYear.value > leftYear.value + 1\n})\n\nconst minDate = ref<Dayjs>()\nconst maxDate = ref<Dayjs>()\n\nconst rangeState = ref<RangeState>({\n  endDate: null,\n  selecting: false,\n})\n\nconst handleChangeRange = (val: RangeState) => {\n  rangeState.value = val\n}\n\ntype RangePickValue = {\n  minDate: Dayjs\n  maxDate: Dayjs\n}\nconst handleRangePick = (val: RangePickValue, 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\n  if (!close) return\n  handleConfirm()\n}\n\nconst handleConfirm = (visible = false) => {\n  if (isValidRange([minDate.value, maxDate.value])) {\n    emit('pick', [minDate.value, maxDate.value], visible)\n  }\n}\n\nconst onSelect = (selecting: boolean) => {\n  rangeState.value.selecting = selecting\n  if (!selecting) {\n    rangeState.value.endDate = null\n  }\n}\n\nconst pickerBase = inject('EP_PICKER_BASE') as any\nconst { shortcuts, disabledDate } = pickerBase.props\nconst format = toRef(pickerBase.props, 'format')\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\nconst unit = 'year'\n\nconst getDefaultValue = () => {\n  let start: Dayjs\n  if (isArray(defaultValue.value)) {\n    const left = dayjs(defaultValue.value[0])\n    let right = dayjs(defaultValue.value[1])\n    if (!props.unlinkPanels) {\n      right = left.add(10, unit)\n    }\n    return [left, right]\n  } else if (defaultValue.value) {\n    start = dayjs(defaultValue.value)\n  } else {\n    start = dayjs()\n  }\n  start = start.locale(lang.value)\n  return [start, start.add(10, unit)]\n}\n\nwatch(\n  () => defaultValue.value,\n  (val) => {\n    if (val) {\n      const defaultArr = getDefaultValue()\n      leftDate.value = defaultArr[0]\n      rightDate.value = defaultArr[1]\n    }\n  },\n  { immediate: true }\n)\n\nwatch(\n  () => props.parsedValue,\n  (newVal) => {\n    if (newVal && newVal.length === 2) {\n      minDate.value = newVal[0]\n      maxDate.value = newVal[1]\n      leftDate.value = minDate.value\n      if (props.unlinkPanels && maxDate.value) {\n        const minDateYear = minDate.value.year()\n        const maxDateYear = maxDate.value.year()\n        rightDate.value =\n          minDateYear === maxDateYear\n            ? maxDate.value.add(10, 'year')\n            : maxDate.value\n      } else {\n        rightDate.value = leftDate.value.add(10, 'year')\n      }\n    } else {\n      const defaultArr = getDefaultValue()\n      minDate.value = undefined\n      maxDate.value = undefined\n      leftDate.value = defaultArr[0]\n      rightDate.value = defaultArr[1]\n    }\n  },\n  { immediate: true }\n)\n\nconst parseUserInput = (value: Dayjs | Dayjs[]) => {\n  return isArray(value)\n    ? value.map((_) => dayjs(_, format.value).locale(lang.value))\n    : dayjs(value, format.value).locale(lang.value)\n}\n\nconst formatToString = (value: Dayjs[] | Dayjs) => {\n  return isArray(value)\n    ? value.map((day) => day.format(format.value))\n    : value.format(format.value)\n}\n\nconst isValidValue = (date: [Dayjs, Dayjs]) => {\n  return (\n    isValidRange(date) &&\n    (disabledDate\n      ? !disabledDate(date[0].toDate()) && !disabledDate(date[1].toDate())\n      : true)\n  )\n}\n\nconst handleClear = () => {\n  const defaultArr = getDefaultValue()\n  leftDate.value = defaultArr[0]\n  rightDate.value = defaultArr[1]\n  maxDate.value = undefined\n  minDate.value = undefined\n  emit('pick', null)\n}\n\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['formatToString', formatToString])\nemit('set-picker-option', ['handleClear', handleClear])\n</script>\n"],"names":["useLocale","ref","dayjs","inject","ROOT_PICKER_INJECTION_KEY","useNamespace","computed","useSlots","useShortcut","useYearRangeHeader","toRef","isValidRange","isArray","watch"],"mappings":"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"}