{"version":3,"file":"useSingleValue.mjs","sources":["../../../../components/date-picker/hooks/useSingleValue.tsx"],"sourcesContent":["import { toRefs, watchEffect, ref, computed } from 'vue';\nimport {\n  formatDate,\n  formatTime,\n  isValidDate,\n  getDefaultFormat,\n  parseToDayjs,\n  extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\nimport { useVModel } from '@tdesign/shared-hooks';\nimport { TdDatePickerProps, DateMultipleValue, DateValue } from '../type';\n\nexport function useSingleValue(props: TdDatePickerProps) {\n  const { value: valueFromProps, modelValue } = toRefs(props);\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      enableTimePicker: props.multiple ? false : 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  const time = ref(\n    formatTime(\n      props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value,\n      formatRef.value.format,\n      formatRef.value.timeFormat,\n      props.defaultTime,\n    ),\n  );\n  const month = ref<number>(\n    parseToDayjs(\n      props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n      formatRef.value.format,\n    ).month(),\n  );\n  const year = ref<number>(\n    parseToDayjs(\n      props.multiple ? (value.value as DateMultipleValue)?.[0] : (value.value as DateValue),\n      formatRef.value.format,\n    ).year(),\n  );\n  const cacheValue = ref(\n    formatDate(props.multiple ? (value.value as DateMultipleValue)?.[0] : value.value, {\n      format: formatRef.value.format,\n    }),\n  ); // 缓存选中值，panel 点击时更改\n\n  // 输入框响应 value 变化\n  watchEffect(() => {\n    if (!value.value) {\n      cacheValue.value = '';\n      return;\n    }\n    if (!isValidDate(value.value, formatRef.value.format)) return;\n\n    cacheValue.value = formatDate(value.value, {\n      format: formatRef.value.format,\n    });\n    time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n  });\n\n  return {\n    year,\n    month,\n    value,\n    time,\n    cacheValue,\n    onChange,\n  };\n}\n"],"names":["useSingleValue","props","_value$value","_value$value2","_value$value3","_value$value4","_toRefs","toRefs","valueFromProps","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","formatRef","computed","getDefaultFormat","mode","format","enableTimePicker","multiple","extractTimeFormat","console","error","concat","time","ref","formatTime","timeFormat","defaultTime","month","parseToDayjs","year","cacheValue","formatDate","watchEffect","isValidDate"],"mappings":"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"}