{"version":3,"file":"useRangeValue.mjs","sources":["../../../src/date-picker/hooks/useRangeValue.ts"],"sourcesContent":["import { ref, toRefs, watchEffect, computed } from 'vue';\nimport useVModel from '../../hooks/useVModel';\nimport isArray from 'lodash/isArray';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n  isValidDate,\n  formatDate,\n  formatTime,\n  getDefaultFormat,\n  initYearMonthTime,\n} from '../../_common/js/date-picker/format';\nimport { extractTimeFormat } from '../../_common/js/date-picker/utils';\n\nexport const PARTIAL_MAP = { first: 'start', second: 'end' };\n\nexport default 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      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  // 输入框响应 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(\n      value.value,\n      formatRef.value.format,\n      formatRef.value.timeFormat,\n      props.defaultTime,\n    ) as string[];\n  });\n\n  return {\n    year,\n    month,\n    value,\n    time,\n    isFirstValueSelected,\n    cacheValue,\n    onChange,\n  };\n}\n"],"names":["first","second","value","onChange","isArray","console","format","timeFormat","watchEffect","year","month","time","isFirstValueSelected","cacheValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,IAAA,WAAA,GAAA;AAAsBA,EAAAA,KAAAA,EAAAA,OAAAA;AAAgBC,EAAAA,MAAAA,EAAAA,KAAAA;AAAc,EAAA;AAE3D,SAAA,aAAA,CAAA,KAAA,EAAA;AACE,EAAA,IAAA,OAAA,GAAA,MAAA,CAAA,KAAA,CAAA;;;AAEM,EAAA,IAAA,UAAA,GAAA,SAAA,CAAA,cAAA,EAAA,UAAA,EAAA,KAAA,CAAA,YAAA,EAAA,KAAA,CAAA,QAAA,CAAA;;AAACC,IAAAA,KAAAA,GAAAA,WAAAA,CAAAA,CAAAA,CAAAA;AAAOC,IAAAA,QAAAA,GAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA;;AAEa,IAAA,OAAA,gBAAA,CAAA;;;;AAKzB,KAAA,CAAA,CAAA;AAAC,GAAA,CAAA,CAAA;;;AAMH,GAAA;AAGA,EAAA,IAAA,CAAAC,SAAA,CAAA,KAAA,CAAA,KAAA,CAAA,EAAA;;AAEA,GAAA,MAAA,IAAA,CAAA,WAAA,CAAA,KAAA,CAAA,KAAA,EAAA,SAAA,CAAA,KAAA,CAAA,MAAA,CAAA,EAAA;AACUC,IAAAA,OAAAA,CAAAA,KAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,KAAAA,CAAAA,KAAAA,EAAAA,2EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AAGV,GAAA;AAEM,EAAA,IAAA,oBAAA,GAAA,GAAA,CAAA,KAAA,CAAA,CAAA;AACN,EAAA,IAAA,IAAA,GAAA,GAAA,CAAA,iBAAA,CAAA;;;AAIIC,IAAAA,MAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA;AACAC,IAAAA,UAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,UAAAA;;AAGJ,EAAA,IAAA,KAAA,GAAA,GAAA,CAAA,iBAAA,CAAA;;;AAIID,IAAAA,MAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA;;;AAIJ,EAAA,IAAA,IAAA,GAAA,GAAA,CAAA,iBAAA,CAAA;;;AAA2EA,IAAAA,MAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA;;;AAC1BA,IAAAA,MAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA;AAA+B,GAAA,CAAA,CAAA,CAAA;AAGhFE,EAAAA,WAAAA,CAAAA,YAAAA;AACM,IAAA,IAAA,CAAA,KAAA,CAAA,KAAA,EAAA;;AAEF,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAA,CAAA,WAAA,CAAA,KAAA,CAAA,KAAA,EAAA,SAAA,CAAA,KAAA,CAAA,MAAA,CAAA,EAAA,OAAA;;AAGEF,MAAAA,MAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA;AACF,KAAA,CAAA,CAAA;;AAOF,GAAA,CAAA,CAAA;;AAGEG,IAAAA,IAAAA,EAAAA,IAAAA;AACAC,IAAAA,KAAAA,EAAAA,KAAAA;AACAR,IAAAA,KAAAA,EAAAA,KAAAA;AACAS,IAAAA,IAAAA,EAAAA,IAAAA;AACAC,IAAAA,oBAAAA,EAAAA,oBAAAA;AACAC,IAAAA,UAAAA,EAAAA,UAAAA;AACAV,IAAAA,QAAAA,EAAAA,QAAAA;;AAEJ;;;;"}