@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 4.4 kB
Source Map (JSON)
{"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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"}