tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 18.9 kB
Source Map (JSON)
{"version":3,"file":"useInput.mjs","sources":["../../../../components/input/hooks/useInput.ts"],"sourcesContent":["import { ref, computed, watch, nextTick, toRefs, inject } from 'vue';\nimport { InputValue, TdInputProps } from './../type';\nimport { FormItemInjectionKey } from '../../form/consts';\nimport { useVModel, useDisabled, useReadonly } from '@tdesign/shared-hooks';\n\nimport { useLengthLimit } from './useLengthLimit';\n\nexport function getOutputValue(val: InputValue, type: TdInputProps['type']) {\n if (type === 'number') {\n return val || val === 0 ? Number(val) : undefined;\n }\n return val;\n}\n\nexport interface ExtendsTdInputProps extends TdInputProps {\n showInput: boolean;\n keepWrapperWidth: boolean;\n}\n\nexport function useInput(props: ExtendsTdInputProps, expose: (exposed: Record<string, any>) => void) {\n const { value, modelValue } = toRefs(props);\n const inputValue = ref<InputValue>();\n const isComposition = ref(false);\n const compositionValue = ref<InputValue>();\n const clearIconRef = ref(null);\n const innerClickElement = ref();\n const disabled = useDisabled();\n const readonly = useReadonly();\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const isHover = ref(false);\n const focused = ref(false);\n const renderType = ref(props.type);\n const inputRef = ref<HTMLInputElement>(null);\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n status: props.status,\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n onValidate: props.onValidate,\n }));\n const { limitNumber, getValueByLimitNumber, tStatus } = useLengthLimit(limitParams);\n\n const showClear = computed(() => {\n return (\n ((innerValue.value && !disabled.value && props.clearable && !readonly.value) || props.showClearIconOnEmpty) &&\n isHover.value\n );\n });\n\n const focus = () => {\n focused.value = true;\n inputRef.value?.focus();\n };\n\n const blur = () => {\n focused.value = false;\n inputRef.value?.blur();\n };\n\n const emitFocus = (e: FocusEvent) => {\n if (isHover.value && focused.value) return;\n inputValue.value = innerValue.value;\n if (props.disabled) return;\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const emitClear = ({ e }: { e: MouseEvent }) => {\n const val = props.type === 'number' ? undefined : '';\n setInnerValue(val, { e, trigger: 'clear' });\n props.onClear?.({ e });\n };\n\n const onClearIconMousedown = (e: MouseEvent) => {\n innerClickElement.value = e.target;\n };\n\n const emitPassword = () => {\n if (disabled.value) return;\n const toggleType = renderType.value === 'password' ? 'text' : 'password';\n renderType.value = toggleType;\n };\n\n const setInputElValue = (v: InputValue = '') => {\n const inputEl = inputRef.value as HTMLInputElement;\n if (!inputEl) return;\n const sV = String(v);\n if (!inputEl.value) {\n return;\n }\n if (inputEl.value !== sV) {\n inputEl.value = sV;\n }\n };\n const inputValueChangeHandle = (e: InputEvent | CompositionEvent) => {\n const { target } = e;\n let val = (target as HTMLInputElement).value;\n // over length: allow delete; not add\n if (props.type !== 'number' && typeof innerValue.value === 'string' && val.length > innerValue.value?.length) {\n val = getValueByLimitNumber(val);\n }\n setInnerValue(getOutputValue(val, props.type), { e, trigger: 'input' });\n // 受控\n nextTick(() => {\n // type = 'number'时, 解决小数点后面有 0 自动删除的问题\n if (props.type === 'number' && /\\.(\\d+)?0$/.test(val)) {\n setInputElValue(val);\n } else {\n setInputElValue(innerValue.value);\n }\n });\n };\n\n const handleInput = (e: InputEvent) => {\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n const {\n currentTarget: { value: val },\n }: any = e;\n if (checkInputType || isComposition.value) {\n compositionValue.value = val;\n return;\n }\n inputValueChangeHandle(e);\n };\n\n const isClearIcon = () => {\n let tmp = innerClickElement.value;\n if (!tmp || !tmp.tagName || !clearIconRef.value?.$el || !['path', 'svg'].includes(tmp.tagName)) return false;\n while (tmp) {\n if (clearIconRef.value?.$el === tmp) {\n return true;\n }\n tmp = tmp.parentNode;\n }\n return false;\n };\n\n const formItem = inject(FormItemInjectionKey, undefined);\n const formatAndEmitBlur = (e: FocusEvent) => {\n if (!isClearIcon()) {\n if (props.format) {\n inputValue.value =\n typeof innerValue.value === 'number' || props.type === 'number'\n ? innerValue.value\n : props.format(innerValue.value);\n }\n focused.value = false;\n if (isComposition.value) {\n isComposition.value = false;\n compositionValue.value = '';\n }\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n } else {\n focus();\n }\n };\n\n const onHandleCompositionend = (e: CompositionEvent) => {\n isComposition.value = false;\n compositionValue.value = '';\n inputValueChangeHandle(e);\n props.onCompositionend?.(String(innerValue.value), { e });\n };\n\n const onHandleCompositionstart = (e: CompositionEvent) => {\n isComposition.value = true;\n const {\n currentTarget: { value },\n }: any = e;\n compositionValue.value = value;\n props.onCompositionstart?.(String(innerValue.value), { e });\n };\n\n const onRootClick = (e: MouseEvent) => {\n inputRef.value?.focus();\n props.onClick?.({ e });\n };\n\n watch(\n () => props.autofocus,\n (value) => {\n if (value === true) {\n nextTick(() => {\n inputRef.value?.focus();\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n innerValue,\n (val, oldVal) => {\n const isNumberType = props.type === 'number';\n // 初始化时,如果有 format 函数,需要对 value 进行格式化\n if (oldVal === undefined && props.format && typeof val !== 'number' && !isNumberType) {\n inputValue.value = props.format(val);\n } else {\n inputValue.value = val;\n }\n // limit props value\n const newVal = typeof val === 'number' ? val : getValueByLimitNumber(val);\n if (newVal !== val && !isNumberType) {\n setInnerValue(newVal, { trigger: 'initial' });\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.type,\n (v) => {\n renderType.value = v;\n },\n { immediate: true },\n );\n\n expose({\n inputRef,\n focus,\n blur,\n });\n\n return {\n isHover,\n focused,\n renderType,\n showClear,\n inputRef,\n clearIconRef,\n inputValue,\n isComposition,\n compositionValue,\n limitNumber,\n tStatus,\n emitFocus,\n formatAndEmitBlur,\n onHandleCompositionend,\n onHandleCompositionstart,\n onRootClick,\n emitPassword,\n handleInput,\n emitClear,\n onClearIconMousedown,\n innerValue,\n };\n}\n"],"names":["getOutputValue","val","type","Number","useInput","props","expose","_toRefs","toRefs","value","modelValue","inputValue","ref","isComposition","compositionValue","clearIconRef","innerClickElement","disabled","useDisabled","readonly","useReadonly","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","innerValue","setInnerValue","isHover","focused","renderType","inputRef","limitParams","computed","includes","String","status","maxlength","maxcharacter","allowInputOverMax","onValidate","_useLengthLimit","useLengthLimit","limitNumber","getValueByLimitNumber","tStatus","showClear","clearable","showClearIconOnEmpty","focus","_inputRef$value","blur","_inputRef$value2","emitFocus","e","_props$onFocus","onFocus","call","emitClear","_ref","_props$onClear","trigger","onClear","onClearIconMousedown","target","emitPassword","toggleType","setInputElValue","v","arguments","length","undefined","inputEl","sV","inputValueChangeHandle","_innerValue$value","nextTick","test","handleInput","checkInputType","inputType","currentTarget","isClearIcon","_clearIconRef$value","tmp","tagName","$el","_clearIconRef$value2","parentNode","formItem","inject","FormItemInjectionKey","formatAndEmitBlur","_props$onBlur","format","onBlur","handleBlur","onHandleCompositionend","_props$onCompositione","onCompositionend","onHandleCompositionstart","_props$onCompositions","onCompositionstart","onRootClick","_inputRef$value3","_props$onClick","onClick","watch","autofocus","_inputRef$value4","immediate","oldVal","isNumberType","newVal"],"mappings":"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"}