{"version":3,"file":"DateRangePickerPanel.mjs","sources":["../../../components/date-picker/DateRangePickerPanel.tsx"],"sourcesContent":["import { defineComponent, computed, ref, onMounted } from 'vue';\nimport dayjs from 'dayjs';\nimport { isArray, isFunction } from 'lodash-es';\n\nimport dateRangePickerPanelProps from './date-range-picker-panel-props';\nimport dateRangePickerProps from './date-range-picker-props';\nimport {\n  DateValue,\n  DateRangePickerPartial,\n  TdDateRangePickerPanelProps,\n  DatePickerYearChangeTrigger,\n  DatePickerMonthChangeTrigger,\n} from './type';\n\nimport TRangePanel from './components/panel/RangePanel';\nimport { useRangeValue } from './hooks/useRangeValue';\nimport { formatDate, getDefaultFormat, parseToDayjs } from '@tdesign/common-js/date-picker/format';\nimport { subtractMonth, addMonth, extractTimeObj } from '@tdesign/common-js/date-picker/utils';\nimport { dateCorrection, triggerMap } from './utils';\n\nexport default defineComponent({\n  name: 'TDateRangePickerPanel',\n  props: {\n    value: dateRangePickerProps.value,\n    defaultValue: dateRangePickerProps.defaultValue,\n    modelValue: dateRangePickerProps.modelValue,\n    disabled: dateRangePickerProps.disabled,\n    disableDate: dateRangePickerProps.disableDate,\n    enableTimePicker: dateRangePickerProps.enableTimePicker,\n    firstDayOfWeek: dateRangePickerProps.firstDayOfWeek,\n    format: dateRangePickerProps.format,\n    mode: dateRangePickerProps.mode,\n    presets: dateRangePickerProps.presets,\n    presetsPlacement: dateRangePickerProps.presetsPlacement,\n    timePickerProps: dateRangePickerProps.timePickerProps,\n    panelPreselection: dateRangePickerProps.panelPreselection,\n    ...dateRangePickerPanelProps,\n  },\n\n  setup(props: TdDateRangePickerPanelProps) {\n    const { value, year, month, time, cacheValue, isFirstValueSelected, onChange } = useRangeValue(props);\n\n    const formatRef = computed(() =>\n      getDefaultFormat({\n        mode: props.mode,\n        enableTimePicker: props.enableTimePicker,\n        format: props.format,\n      }),\n    );\n\n    // 记录面板是否选中过\n    const isSelected = ref(false);\n    const isHoverCell = ref(false);\n    const hoverValue = ref([]);\n    const activeIndex = computed(() => (isFirstValueSelected.value ? 1 : 0));\n\n    onMounted(() => {\n      if (value.value.length === 2 && !props.enableTimePicker) {\n        // 确保右侧面板月份比左侧大 避免两侧面板月份一致\n        const nextMonth = value.value.map((v: string) => parseToDayjs(v, formatRef.value.format).month());\n        year.value = value.value.map((v: string) => parseToDayjs(v, formatRef.value.valueType).year());\n        if (year.value[0] === year.value[1] && nextMonth[0] === nextMonth[1]) {\n          nextMonth[0] === 11 ? (nextMonth[0] -= 1) : (nextMonth[1] += 1);\n        }\n        month.value = nextMonth;\n        // 月份季度选择时需要确保右侧面板年份比左侧大\n        if (['month', 'quarter'].includes(props.mode) && year.value[0] === year.value[1]) {\n          year.value = [year.value[0], year.value[0] + 1];\n        }\n      }\n    });\n\n    // 日期 hover\n    function onCellMouseEnter(date: Date) {\n      isHoverCell.value = true;\n      const nextValue = [...(hoverValue.value as string[])];\n      nextValue[activeIndex.value] = formatDate(date, {\n        format: formatRef.value.format,\n      }) as string;\n      hoverValue.value = nextValue;\n    }\n\n    // 日期 leave\n    function onCellMouseLeave() {\n      isHoverCell.value = false;\n      hoverValue.value = cacheValue.value as string[];\n    }\n\n    // 日期点击\n    function onCellClick(date: Date, { e }: { e: MouseEvent }) {\n      isHoverCell.value = false;\n      isSelected.value = true;\n\n      const nextValue = [...(cacheValue.value as string[])];\n      nextValue[activeIndex.value] = formatDate(date, {\n        format: formatRef.value.format,\n      }) as string;\n      cacheValue.value = nextValue;\n\n      props.onCellClick?.({\n        e,\n        partial: activeIndex.value ? 'end' : 'start',\n        date: nextValue.map((v) => dayjs(v).toDate()),\n      });\n      // 有时间选择器走 confirm 逻辑\n      if (props.enableTimePicker) return;\n\n      // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n      if (nextValue.length === 2 && isFirstValueSelected.value) {\n        onChange?.(\n          formatDate(nextValue, {\n            format: formatRef.value.format,\n            autoSwap: true,\n            defaultTime: props.defaultTime,\n          }) as DateValue[],\n          {\n            dayjsValue: nextValue.map((v, i) =>\n              parseToDayjs(v, formatRef.value.format, undefined, undefined, props.defaultTime?.[i]),\n            ),\n            trigger: 'pick',\n          },\n        );\n        isFirstValueSelected.value = false;\n      } else {\n        isFirstValueSelected.value = true;\n      }\n    }\n\n    // 头部快速切换\n    function onJumperClick({\n      trigger,\n      partial,\n    }: {\n      trigger: 'prev' | 'next' | 'current';\n      partial: DateRangePickerPartial;\n    }) {\n      const partialIndex = partial === 'start' ? 0 : 1;\n\n      const monthCountMap = { date: 1, week: 1, month: 12, quarter: 12, year: 120 };\n      const monthCount = monthCountMap[props.mode] || 0;\n      const current = new Date(year.value[partialIndex], month.value[partialIndex]);\n\n      let next = null;\n      if (trigger === 'prev') {\n        next = subtractMonth(current, monthCount);\n      } else if (trigger === 'current') {\n        next = new Date();\n      } else if (trigger === 'next') {\n        next = addMonth(current, monthCount);\n      }\n      let nextYear = [...year.value];\n      nextYear[partialIndex] = next.getFullYear();\n      let nextMonth = [...month.value];\n      nextMonth[partialIndex] = next.getMonth();\n      const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n      // 头部日期切换修正\n      const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n      nextYear = correctedDate.nextYear;\n      nextMonth = correctedDate.nextMonth;\n\n      if (year.value.some((y) => !nextYear.includes(y))) {\n        props.onYearChange?.({\n          partial,\n          year: nextYear[partialIndex],\n          date: value.value.map((v) => dayjs(v).toDate()),\n          trigger: trigger === 'current' ? 'today' : (`year-${triggerMap[trigger]}` as DatePickerYearChangeTrigger),\n        });\n      }\n      if (month.value.some((m) => !nextMonth.includes(m))) {\n        props.onMonthChange?.({\n          partial,\n          month: nextMonth[partialIndex],\n          date: value.value.map((v) => dayjs(v).toDate()),\n          trigger: trigger === 'current' ? 'today' : (`month-${triggerMap[trigger]}` as DatePickerMonthChangeTrigger),\n        });\n      }\n\n      year.value = nextYear;\n      month.value = nextMonth;\n    }\n\n    // time-picker 点击\n    function onTimePickerChange(val: string) {\n      const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(val);\n      const nextInputValue = [...(cacheValue.value as DateValue[])];\n      // @ts-ignore\n      const changedInputValue = cacheValue.value[activeIndex.value];\n      const currentDate = !dayjs(changedInputValue, formatRef.value.format).isValid()\n        ? dayjs().year(year.value[activeIndex.value]).month(month.value[activeIndex.value])\n        : dayjs(changedInputValue, formatRef.value.format);\n      // am pm 12小时制转化 24小时制\n      let nextHours = hours;\n      if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n      if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n\n      const nextDate = currentDate.hour(nextHours).minute(minutes).second(seconds).millisecond(milliseconds).toDate();\n      nextInputValue[activeIndex.value] = nextDate;\n\n      const nextTime = [...time.value];\n      nextTime[activeIndex.value] = val;\n      time.value = nextTime;\n\n      isSelected.value = true;\n      cacheValue.value = formatDate(nextInputValue, {\n        format: formatRef.value.format,\n      });\n\n      props.onTimeChange?.({\n        time: val,\n        date: value.value.map((v) => parseToDayjs(v, formatRef.value.format).toDate()),\n        partial: activeIndex.value ? 'end' : 'start',\n        trigger: 'time-hour',\n      });\n    }\n\n    // 确定\n    function onConfirmClick({ e }: { e: MouseEvent }) {\n      const nextValue = [...(cacheValue.value as string[])];\n\n      // 首次点击不关闭、确保两端都有有效值并且无时间选择器时点击后自动关闭\n      if (nextValue.length === 2 && isFirstValueSelected.value) {\n        onChange?.(\n          formatDate(nextValue, {\n            format: formatRef.value.format,\n            autoSwap: true,\n            defaultTime: props.defaultTime,\n          }) as DateValue[],\n          {\n            dayjsValue: nextValue.map((v, i) =>\n              parseToDayjs(v, formatRef.value.format, undefined, undefined, props.defaultTime?.[i]),\n            ),\n            trigger: 'confirm',\n          },\n        );\n        year.value = nextValue.map((v) => dayjs(v, formatRef.value.format).year());\n        month.value = nextValue.map((v) => dayjs(v, formatRef.value.format).month());\n        isFirstValueSelected.value = false;\n      } else {\n        isFirstValueSelected.value = true;\n      }\n\n      props.onConfirm?.({ date: value.value.map((v) => dayjs(v).toDate()), e });\n    }\n\n    // 预设\n    function onPresetClick(preset: any, context: any) {\n      let presetValue = preset;\n      if (isFunction(preset)) {\n        presetValue = preset();\n      }\n      if (!isArray(presetValue)) {\n        console.error(`preset: ${preset} 预设值必须是数组!`);\n      } else {\n        onChange?.(\n          formatDate(presetValue, {\n            format: formatRef.value.format,\n            autoSwap: true,\n            defaultTime: props.defaultTime,\n          }) as DateValue[],\n          {\n            dayjsValue: presetValue.map((p, i) =>\n              parseToDayjs(p, formatRef.value.format, undefined, undefined, props.defaultTime?.[i]),\n            ),\n            trigger: 'preset',\n          },\n        );\n        props.onPresetClick?.(context);\n      }\n    }\n\n    function onYearChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n      let partialIndex = partial === 'start' ? 0 : 1;\n      if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n      let nextYear = [...year.value];\n      nextYear[partialIndex] = nextVal;\n      let nextMonth = [...month.value];\n      // 年/季度/月份场景下，头部只有年选择器\n      const onlyYearSelect = ['year', 'quarter', 'month'].includes(props.mode);\n\n      // 头部日期切换修正\n      const correctedDate = dateCorrection(partialIndex, nextYear, nextMonth, onlyYearSelect);\n      nextYear = correctedDate.nextYear;\n      nextMonth = correctedDate.nextMonth;\n\n      year.value = nextYear;\n      if (!onlyYearSelect) month.value = nextMonth;\n\n      props.onYearChange?.({\n        partial,\n        year: nextYear[partialIndex],\n        date: value.value.map((v) => dayjs(v).toDate()),\n        trigger: 'year-select',\n      });\n    }\n\n    function onMonthChange(nextVal: number, { partial }: { partial: DateRangePickerPartial }) {\n      let partialIndex = partial === 'start' ? 0 : 1;\n      if (props.enableTimePicker) partialIndex = activeIndex.value;\n\n      const nextMonth = [...month.value];\n      nextMonth[partialIndex] = nextVal;\n      // 保证左侧时间不大于右侧\n      if (year.value[0] === year.value[1]) {\n        if (partialIndex === 0) {\n          // 操作了左侧区间, 处理右侧区间小于或等于左侧区间的场景，交互上始终报错右侧比左侧大 1\n          if (nextMonth[1] <= nextMonth[0]) {\n            nextMonth[1] = nextMonth[0] + 1;\n            if (nextMonth[1] === 12) {\n              // 处理跨年的边界场景\n              nextMonth[1] = 0;\n              year.value = [year.value?.[0], year.value?.[1] + 1];\n            }\n          }\n        }\n        if (partialIndex === 1) {\n          // 操作了右侧区间, 处理右侧区间小于或等于左侧区间的场景，交互上始终报错左侧比右侧小 1\n          nextMonth[0] = Math.min(nextMonth[0], nextMonth[1]);\n          if (nextMonth[0] >= nextMonth[1]) {\n            nextMonth[0] -= 1;\n            if (nextMonth[0] === -1) {\n              // 处理跨年的边界场景\n              nextMonth[0] = 11;\n              year.value = [year.value?.[0] - 1, year.value?.[1]];\n            }\n          }\n        }\n      }\n\n      month.value = nextMonth;\n\n      props.onMonthChange?.({\n        partial,\n        month: nextMonth[partialIndex],\n        date: value.value.map((v) => dayjs(v).toDate()),\n        trigger: 'month-select',\n      });\n    }\n\n    const panelProps = computed(() => ({\n      hoverValue: (isHoverCell.value ? hoverValue.value : []) as string[],\n      value: (isSelected.value ? cacheValue.value : value.value) as string[],\n      activeIndex: activeIndex.value,\n      year: year.value,\n      month: month.value,\n      mode: props.mode,\n      format: formatRef.value.format,\n      presets: props.presets,\n      time: time.value,\n      disableDate: props.disableDate,\n      range: props.range,\n      firstDayOfWeek: props.firstDayOfWeek,\n      timePickerProps: props.timePickerProps,\n      enableTimePicker: props.enableTimePicker,\n      presetsPlacement: props.presetsPlacement,\n      panelPreselection: props.panelPreselection,\n      popupVisible: true,\n      panelClick: props.onPanelClick,\n      onCellClick,\n      onCellMouseEnter,\n      onCellMouseLeave,\n      onJumperClick,\n      onConfirmClick,\n      onPresetClick,\n      onYearChange,\n      onMonthChange,\n      onTimePickerChange,\n    }));\n\n    return () => <TRangePanel {...panelProps.value} />;\n  },\n});\n"],"names":["defineComponent","name","props","_objectSpread","value","dateRangePickerProps","defaultValue","modelValue","disabled","disableDate","enableTimePicker","firstDayOfWeek","format","mode","presets","presetsPlacement","timePickerProps","panelPreselection","dateRangePickerPanelProps","setup","_useRangeValue","useRangeValue","year","month","time","cacheValue","isFirstValueSelected","onChange","formatRef","computed","getDefaultFormat","isSelected","ref","isHoverCell","hoverValue","activeIndex","onMounted","length","nextMonth","map","v","parseToDayjs","valueType","includes","onCellMouseEnter","date","nextValue","_toConsumableArray","formatDate","onCellMouseLeave","onCellClick","_ref","_props$onCellClick","e","call","partial","dayjs","toDate","autoSwap","defaultTime","dayjsValue","i","_props$defaultTime","trigger","onJumperClick","_ref2","partialIndex","monthCountMap","week","quarter","monthCount","current","Date","next","subtractMonth","addMonth","nextYear","getFullYear","getMonth","onlyYearSelect","correctedDate","dateCorrection","some","y","_props$onYearChange","onYearChange","concat","triggerMap","m","_props$onMonthChange","onMonthChange","onTimePickerChange","val","_props$onTimeChange","_extractTimeObj","extractTimeObj","hours","minutes","seconds","milliseconds","meridiem","nextInputValue","changedInputValue","currentDate","isValid","nextHours","test","nextDate","hour","minute","second","millisecond","nextTime","onTimeChange","onConfirmClick","_ref3","_props$onConfirm","_props$defaultTime2","onConfirm","onPresetClick","preset","context","presetValue","isFunction","isArray","console","error","_props$onPresetClick","p","_props$defaultTime3","nextVal","_ref4","_props$onYearChange2","_ref5","_props$onMonthChange2","_year$value","_year$value2","Math","min","_year$value3","_year$value4","panelProps","range","popupVisible","panelClick","onPanelClick","_createVNode","TRangePanel"],"mappings":"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"}