UNPKG

tdesign-mobile-vue

Version:
1 lines 21.3 kB
{"version":3,"file":"input.mjs","sources":["../../src/input/input.tsx"],"sourcesContent":["import { PropType, ref, toRefs, computed, defineComponent, nextTick, watch, inject } from 'vue';\nimport {\n BrowseIcon as TBrowseIcon,\n BrowseOffIcon as TBrowseOffIcon,\n CloseCircleFilledIcon as TCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { isFunction } from 'lodash-es';\nimport config from '../config';\nimport InputProps from './props';\nimport { InputValue, TdInputProps } from './type';\nimport { extendAPI } from '../shared';\nimport { FormItemInjectionKey } from '../form/const';\nimport { useFormDisabled } from '../form/hooks';\nimport useVModel from '../hooks/useVModel';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useLengthLimit from '../hooks/useLengthLimit';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-input`,\n props: {\n ...InputProps,\n labelAlign: {\n type: String,\n default: 'top',\n },\n pattern: {\n type: String,\n },\n inputmode: {\n type: String as PropType<'search' | 'text' | 'none' | 'url' | 'tel' | 'email' | 'numeric' | 'decimal'>,\n validator(val: string): boolean {\n if (!val) return true;\n return ['search', 'text', 'none', 'url', 'tel', 'email', 'numeric', 'decimal'].includes(val);\n },\n },\n },\n setup(props, context) {\n const renderTNodeJSX = useTNodeJSX();\n const inputClass = usePrefixClass('input');\n const isDisabled = useFormDisabled();\n\n const inputRef = ref();\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const status = props.status || 'default';\n const renderType = ref(props.type);\n const focused = ref(false);\n const formItem = inject(FormItemInjectionKey, undefined);\n\n const inputClasses = computed(() => [\n `${inputClass.value}__control`,\n {\n [`${inputClass.value}--${props.align}`]: props.align !== 'left',\n [`${inputClass.value}--${status}`]: status,\n [`${inputClass.value}__control--disabled`]: isDisabled.value,\n },\n ]);\n\n const rootClasses = computed(() => [\n inputClass.value,\n {\n [`${inputClass.value}--layout-${props.layout}`]: props.layout,\n [`${inputClass.value}--center`]: props.labelAlign === 'center',\n [`${inputClass.value}--border`]: !props.borderless,\n },\n ]);\n const showClear = computed(() => {\n if (isDisabled.value || props.readonly === true) return false;\n\n if (props.clearable && innerValue.value && String(innerValue.value).length > 0) {\n return props.clearTrigger === 'always' || (props.clearTrigger === 'focus' && focused.value);\n }\n return false;\n });\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(innerValue.value) ? undefined : String(innerValue.value),\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: props.allowInputOverMax,\n }));\n\n const { getValueByLimitNumber } = useLengthLimit(limitParams);\n\n const setInputValue = (v: InputValue = '') => {\n const input = inputRef.value as HTMLInputElement;\n const sV = String(v);\n if (!input) {\n return;\n }\n if (input.value !== sV) {\n input.value = sV;\n }\n };\n\n const handleInput = (e: Event) => {\n // 中文输入的时候inputType是insertCompositionText所以中文输入的时候禁止触发。\n if (e instanceof InputEvent) {\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n if (e.isComposing || checkInputType) return;\n }\n inputValueChangeHandle(e);\n };\n\n const inputValueChangeHandle = (e: Event) => {\n const { value } = e.target as HTMLInputElement;\n setInnerValue(getValueByLimitNumber(value));\n nextTick(() => setInputValue(innerValue.value));\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 extendAPI({ focus, blur });\n\n const handleClear = (e: TouchEvent) => {\n e.preventDefault();\n const val = props.type === 'number' ? undefined : '';\n setInnerValue(val);\n focus();\n props.onClear?.({ e });\n };\n\n const handleFocus = (e: FocusEvent) => {\n focused.value = true;\n props.onFocus?.(innerValue.value, { e });\n };\n\n const handleBlur = (e: FocusEvent) => {\n focused.value = false;\n // 失焦时处理 format\n if (isFunction(props.format)) {\n setInnerValue(props.format(innerValue.value));\n nextTick(() => {\n setInputValue(innerValue.value);\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n });\n return;\n }\n\n props.onBlur?.(innerValue.value, { e });\n formItem?.handleBlur();\n };\n\n const handleCompositionend = (e: CompositionEvent) => {\n inputValueChangeHandle(e);\n };\n\n const handlePwdIconClick = () => {\n if (isDisabled.value) return;\n\n renderType.value = renderType.value === 'password' ? 'text' : 'password';\n };\n\n watch(\n () => props.autofocus,\n (v) => {\n if (v === true) {\n nextTick(() => {\n focus();\n });\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 return () => {\n const renderPrefix = () => {\n const prefixIcon = renderTNodeJSX('prefixIcon');\n const label = renderTNodeJSX('label');\n\n return (\n <div class={`${inputClass.value}__wrap--prefix`}>\n {prefixIcon && <div class={`${inputClass.value}__icon--prefix`}>{prefixIcon}</div>}\n <div class={`${inputClass.value}__label`}>{label}</div>\n </div>\n );\n };\n const renderClearable = () => {\n if (showClear.value) {\n return (\n <div class={`${inputClass.value}__wrap--clearable-icon`} onTouchend={handleClear}>\n <TCloseCircleFilledIcon />\n </div>\n );\n }\n\n return null;\n };\n const renderSuffix = () => {\n const suffix = renderTNodeJSX('suffix');\n if (!suffix) {\n return null;\n }\n return <div class={`${inputClass.value}__wrap--suffix`}>{suffix}</div>;\n };\n\n const renderSuffixIcon = () => {\n let suffixIcon = renderTNodeJSX('suffixIcon');\n if (props.type === 'password') {\n if (renderType.value === 'password') {\n suffixIcon = <TBrowseOffIcon onClick={handlePwdIconClick} />;\n } else if (renderType.value === 'text') {\n suffixIcon = <TBrowseIcon onClick={handlePwdIconClick} />;\n }\n }\n\n if (!suffixIcon) {\n return null;\n }\n return <div class={`${inputClass.value}__wrap--suffix-icon`}>{suffixIcon}</div>;\n };\n\n const renderTips = () => {\n const tips = renderTNodeJSX('tips');\n if (!tips) {\n return null;\n }\n return <div class={`${inputClass.value}__tips ${inputClass.value}--${props.align}`}>{tips}</div>;\n };\n\n // 参考: https://github.com/Tencent/tdesign-vue-next/issues/4413\n // 不传给 input 原生元素 maxlength,浏览器默认行为会按照 unicode 进行限制,与 maxLength API 违背\n const inputAttrs = {\n ref: inputRef,\n class: inputClasses.value,\n value: innerValue.value,\n name: props.name,\n type: renderType.value,\n disabled: isDisabled.value,\n autocomplete: props.autocomplete ? 'On' : 'Off',\n placeholder: props.placeholder,\n readonly: props.readonly,\n // maxlength: props.maxlength,\n pattern: props.pattern,\n inputmode: props.inputmode,\n spellcheck: props.spellCheck,\n enterkeyhint: props.enterkeyhint,\n style: { '--td-input-cursor-color': props.cursorColor },\n onFocus: handleFocus,\n onBlur: handleBlur,\n onInput: handleInput,\n onCompositionend: handleCompositionend,\n };\n\n return (\n <div class={rootClasses.value}>\n {renderPrefix()}\n <div class={`${inputClass.value}__wrap`}>\n <div class={`${inputClass.value}__content ${inputClass.value}--${status || 'default'}`}>\n <input {...inputAttrs} />\n {renderClearable()}\n {renderSuffix()}\n {renderSuffixIcon()}\n </div>\n {renderTips()}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","_objectSpread","InputProps","labelAlign","type","String","default","pattern","inputmode","validator","val","includes","setup","context","renderTNodeJSX","useTNodeJSX","inputClass","usePrefixClass","isDisabled","useFormDisabled","inputRef","ref","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","innerValue","setInnerValue","status","renderType","focused","formItem","inject","FormItemInjectionKey","inputClasses","computed","concat","_defineProperty","align","rootClasses","layout","borderless","showClear","readonly","clearable","length","clearTrigger","limitParams","maxlength","Number","maxcharacter","allowInputOverMax","_useLengthLimit","useLengthLimit","getValueByLimitNumber","setInputValue","v","arguments","undefined","input","sV","handleInput","e","InputEvent","checkInputType","inputType","isComposing","inputValueChangeHandle","target","nextTick","focus","_inputRef$value","blur","_inputRef$value2","extendAPI","handleClear","_props$onClear","preventDefault","onClear","call","handleFocus","_props$onFocus","onFocus","handleBlur","_props$onBlur2","isFunction","format","_props$onBlur","onBlur","handleCompositionend","handlePwdIconClick","watch","autofocus","immediate","renderPrefix","prefixIcon","label","_createVNode","renderClearable","TCloseCircleFilledIcon","renderSuffix","suffix","renderSuffixIcon","suffixIcon","TBrowseOffIcon","TBrowseIcon","renderTips","tips","inputAttrs","class","disabled","autocomplete","placeholder","spellcheck","spellCheck","enterkeyhint","style","cursorColor","onInput","onCompositionend"],"mappings":"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"}