{"version":3,"file":"time-picker.mjs","sources":["../../../components/time-picker/time-picker.tsx"],"sourcesContent":["import { computed, ComputedRef, defineComponent, ref, toRefs, watch } from 'vue';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { TimeIcon as TdTimeIcon } from 'tdesign-icons-vue-next';\n\nimport TimePickerPanel from './panel/time-picker-panel';\nimport TSelectInput, { SelectInputBlurContext } from '../select-input';\nimport { formatInputValue, validateInputValue } from '@tdesign/common-js/time-picker/utils';\n// hooks\nimport {\n  useVModel,\n  useConfig,\n  useTNodeJSX,\n  useDisabled,\n  useReadonly,\n  useGlobalIcon,\n  usePrefixClass,\n  useCommonClassName,\n  useEventForward,\n} from '@tdesign/shared-hooks';\nimport type { InputProps } from '../input';\n\nimport props from './props';\n\nimport { TdTimePickerProps } from './type';\n\ndayjs.extend(customParseFormat);\n\nexport default defineComponent({\n  name: 'TTimePicker',\n  props,\n  setup(props) {\n    const renderTNodeJSX = useTNodeJSX();\n    const { globalConfig } = useConfig('timePicker');\n    const COMPONENT_NAME = usePrefixClass('time-picker');\n    const { STATUS } = useCommonClassName();\n    const { TimeIcon } = useGlobalIcon({ TimeIcon: TdTimeIcon });\n\n    const currentValue = ref('');\n    const isShowPanel = ref(false);\n    const isReadonly = useReadonly();\n\n    const { value, modelValue } = toRefs(props);\n    const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n    const isDisabled = useDisabled() as ComputedRef<boolean>;\n    const { allowInput, format } = toRefs(props);\n\n    const inputClasses = computed(() => [\n      `${COMPONENT_NAME.value}__group`,\n      {\n        [STATUS.value.focused]: isShowPanel.value,\n      },\n    ]);\n\n    const handleShowPopup = (visible: boolean, context: { e: MouseEvent }) => {\n      isShowPanel.value = visible;\n      visible ? props.onOpen?.(context) : props.onClose?.(context); // trigger on-open and on-close\n    };\n\n    const handleClear = (context: { e: MouseEvent }) => {\n      const { e } = context;\n      e.stopPropagation();\n      currentValue.value = null;\n      setInnerValue(null);\n      props?.onClear?.(context);\n    };\n\n    const handleInputChange = (value: string) => {\n      currentValue.value = value;\n    };\n\n    const handleInputBlur = (value: string, context: SelectInputBlurContext) => {\n      if (allowInput.value) {\n        const isValidTime = validateInputValue(currentValue.value, format.value);\n        if (isValidTime) {\n          setInnerValue(formatInputValue(currentValue.value, format.value));\n        }\n      }\n      props.onBlur?.({ value, inputValue: context.inputValue, e: context.e });\n    };\n\n    const handleClickConfirm = (e: MouseEvent) => {\n      props?.onConfirm?.({ e });\n      const isValidTime = validateInputValue(currentValue.value, format.value);\n      if (isValidTime) setInnerValue(currentValue.value);\n      isShowPanel.value = false;\n    };\n\n    const handlePanelChange = (v: string, e: MouseEvent) => {\n      currentValue.value = v;\n      props.onPick?.(v, { e });\n    };\n\n    const valueDisplayParams = computed(() => {\n      return {\n        value: isShowPanel.value ? currentValue.value : innerValue.value ?? undefined,\n      };\n    });\n\n    watch(\n      () => isShowPanel.value,\n      () => {\n        currentValue.value = isShowPanel.value ? innerValue.value ?? '' : '';\n      },\n    );\n\n    const selectEvents = useEventForward(props.selectInputProps as TdTimePickerProps['selectInputProps'], {\n      onInputChange: handleInputChange,\n      onBlur: handleInputBlur,\n      onPopupVisibleChange: handleShowPopup,\n    });\n\n    return () => (\n      <div class={COMPONENT_NAME.value}>\n        <TSelectInput\n          onFocus={props.onFocus}\n          onClear={handleClear}\n          borderless={props.borderless}\n          disabled={isDisabled.value}\n          clearable={props.clearable}\n          allowInput={allowInput.value}\n          class={inputClasses.value}\n          label={props.label}\n          suffixIcon={() => <TimeIcon />}\n          popupVisible={!isReadonly.value && isShowPanel.value}\n          placeholder={!innerValue.value ? props.placeholder || globalConfig.value.placeholder : undefined}\n          value={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n          inputValue={isShowPanel.value ? currentValue.value : innerValue.value ?? undefined}\n          inputProps={{ ...(props.inputProps as InputProps), size: props.size }}\n          popupProps={{ overlayInnerStyle: { width: 'auto', padding: 0 }, ...(props.popupProps as object) }}\n          status={props.status}\n          tips={props.tips}\n          valueDisplay={() => renderTNodeJSX('valueDisplay', { params: valueDisplayParams.value })}\n          {...selectEvents.value}\n          panel={() => (\n            <TimePickerPanel\n              steps={props.steps}\n              format={format.value}\n              value={currentValue.value}\n              isFooterDisplay={true}\n              isShowPanel={isShowPanel.value}\n              disableTime={props.disableTime}\n              onChange={handlePanelChange}\n              hideDisabledTime={props.hideDisabledTime}\n              handleConfirmClick={handleClickConfirm}\n              presets={props.presets}\n            />\n          )}\n        />\n      </div>\n    );\n  },\n});\n"],"names":["dayjs","extend","customParseFormat","defineComponent","name","props","setup","renderTNodeJSX","useTNodeJSX","_useConfig","useConfig","globalConfig","COMPONENT_NAME","usePrefixClass","_useCommonClassName","useCommonClassName","STATUS","_useGlobalIcon","useGlobalIcon","TimeIcon","TdTimeIcon","currentValue","ref","isShowPanel","isReadonly","useReadonly","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","innerValue","setInnerValue","isDisabled","useDisabled","_toRefs2","allowInput","format","inputClasses","computed","concat","_defineProperty","focused","handleShowPopup","visible","context","_props2$onOpen","_props2$onClose","onOpen","onClose","handleClear","_props2$onClear","e","stopPropagation","onClear","handleInputChange","handleInputBlur","_props2$onBlur","isValidTime","validateInputValue","formatInputValue","onBlur","inputValue","handleClickConfirm","_props2$onConfirm","onConfirm","handlePanelChange","v","_props2$onPick","onPick","valueDisplayParams","_innerValue$value","watch","_innerValue$value2","selectEvents","useEventForward","selectInputProps","onInputChange","onPopupVisibleChange","_innerValue$value3","_innerValue$value4","_createVNode","TSelectInput","_mergeProps","onFocus","borderless","clearable","label","suffixIcon","placeholder","inputProps","size","_objectSpread","overlayInnerStyle","width","padding","popupProps","status","tips","valueDisplay","params","panel","TimePickerPanel","steps","disableTime","hideDisabledTime","presets"],"mappings":"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"}