{"version":3,"file":"use-input.mjs","sources":["../../../../../../../packages/components/input/src/composables/use-input.ts"],"sourcesContent":["import { computed, ref, shallowRef } from 'vue'\nimport { UPDATE_MODEL_EVENT } from '@vuesax-alpha/constants'\nimport { useInputEvent } from './use-input-event'\nimport { useInputClearable } from './use-input-clearable'\nimport type { InputEmitsFn, InputProps } from '../input'\n\nexport const useInput = (props: InputProps, emit: InputEmitsFn) => {\n  const model = computed({\n    get: () => props.modelValue,\n    set: (value: string | number | null | undefined) => {\n      if (props.disabled || props.loading) return\n      emit(UPDATE_MODEL_EVENT, value)\n    },\n  })\n\n  const hovering = ref(false)\n  const inputRef = shallowRef<HTMLInputElement>()\n\n  const isVisiblePassword = ref(false)\n\n  const {\n    blur,\n    handleBlur,\n\n    handleInput,\n    handleChange,\n\n    focused,\n    focus,\n    handleFocus,\n\n    select,\n    handleKeydown,\n  } = useInputEvent({ inputRef })\n\n  const { clear, showClear } = useInputClearable(props, { hovering, focused })\n\n  const handleMouseLeave = (evt: MouseEvent) => {\n    hovering.value = false\n    emit('mouseleave', evt)\n  }\n  const handleMouseEnter = (evt: MouseEvent) => {\n    hovering.value = true\n    emit('mouseenter', evt)\n  }\n\n  const inputType = computed(() => {\n    if (props.showPassword) {\n      if (!isVisiblePassword.value) return 'password'\n      return 'text'\n    }\n    return props.type\n  })\n\n  const clickIcon = (evs: Event) => {\n    focus()\n    emit('clickIcon', evs)\n  }\n\n  const isShowPassword = computed(\n    () =>\n      props.showPassword &&\n      !props.disabled &&\n      !props.loading &&\n      String(props.modelValue)\n  )\n  const handleShowPassword = () => {\n    if (props.disabled || props.loading) return\n    isVisiblePassword.value = !isVisiblePassword.value\n  }\n\n  return {\n    model,\n    inputType,\n    isVisiblePassword,\n    inputRef,\n    isShowPassword,\n    focused,\n    hovering,\n    handleInput,\n    focus,\n    handleFocus,\n    handleKeydown,\n    blur,\n    handleBlur,\n    handleChange,\n    select,\n    clickIcon,\n    handleShowPassword,\n\n    handleMouseLeave,\n    handleMouseEnter,\n    // clearable\n    clear,\n    showClear,\n  }\n}\n"],"names":[],"mappings":"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"}