{"version":3,"file":"useRangeValue.mjs","sources":["../../../../components/date-picker/hooks/useRangeValue.ts"],"sourcesContent":["import { ref, toRefs, computed, watch } from 'vue';\nimport { useVModel } from '@tdesign/shared-hooks';\nimport { isArray } from 'lodash-es';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n  isValidDate,\n  formatDate,\n  formatTime,\n  getDefaultFormat,\n  initYearMonthTime,\n  extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\n\nexport function useRangeValue(props: TdDateRangePickerProps) {\n  const { value: valueFromProps, modelValue } = toRefs(props);\n\n  const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n  const formatRef = computed(() =>\n    getDefaultFormat({\n      mode: props.mode,\n      format: props.format,\n      valueType: props.valueType,\n      enableTimePicker: props.enableTimePicker,\n    }),\n  );\n\n  if (props.enableTimePicker) {\n    if (!extractTimeFormat(formatRef.value.format))\n      console.error(`format: ${formatRef.value.format} 不规范，包含时间选择必须要有时间格式化 HH:mm:ss`);\n  }\n\n  // warning invalid value\n  if (!isArray(value.value)) {\n    console.error(`typeof value: ${value.value} must be Array!`);\n  } else if (!isValidDate(value.value, formatRef.value.format)) {\n    console.error(\n      `value: ${value.value} is invalid dateTime! Check whether the value is consistent with format: ${formatRef.value.format}`,\n    );\n  }\n\n  const isFirstValueSelected = ref(false); // 记录面板点击次数，两次后才自动关闭\n  const time = ref(\n    initYearMonthTime({\n      value: value.value,\n      mode: props.mode,\n      format: formatRef.value.format,\n      timeFormat: formatRef.value.timeFormat,\n    }).time,\n  );\n  const month = ref(\n    initYearMonthTime({\n      value: value.value,\n      mode: props.mode,\n      format: formatRef.value.format,\n      enableTimePicker: props.enableTimePicker,\n    }).month,\n  );\n  const year = ref(initYearMonthTime({ value: value.value, mode: props.mode, format: formatRef.value.format }).year);\n  const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 选择阶段预选状态\n\n  // 用于处理预设值的场景，打开面板自动展示未来某个时间的场景\n  watch(\n    () => isFirstValueSelected.value,\n    () => {\n      if (year.value[1] < year.value[0]) {\n        year.value[1] = year.value[0];\n      }\n      // 只有当左右面板年份相同时，才需要比较月份大小\n      if (year.value[0] === year.value[1] && month.value[1] < month.value[0]) {\n        month.value[1] = month.value[0];\n      }\n    },\n  );\n\n  watch(\n    value,\n    (newValue) => {\n      if (!newValue) {\n        cacheValue.value = [];\n        return;\n      }\n      if (!isValidDate(newValue, formatRef.value.format)) return;\n\n      cacheValue.value = formatDate(newValue, {\n        format: formatRef.value.valueType,\n        targetFormat: formatRef.value.format,\n      });\n      time.value = formatTime(\n        newValue,\n        formatRef.value.format,\n        formatRef.value.timeFormat,\n        props.defaultTime,\n      ) as string[];\n    },\n    { immediate: true },\n  );\n\n  return {\n    year,\n    month,\n    value,\n    time,\n    isFirstValueSelected,\n    cacheValue,\n    onChange,\n  };\n}\n"],"names":["useRangeValue","props","_toRefs","toRefs","valueFromProps","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","formatRef","computed","getDefaultFormat","mode","format","valueType","enableTimePicker","extractTimeFormat","console","error","concat","isArray","isValidDate","isFirstValueSelected","ref","time","initYearMonthTime","timeFormat","month","year","cacheValue","formatDate","watch","newValue","targetFormat","formatTime","defaultTime","immediate"],"mappings":"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"}