UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 4.95 kB
{"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;;;;"}