tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 20.7 kB
Source Map (JSON)
{"version":3,"file":"input.mjs","sources":["../../src/input/input.tsx"],"sourcesContent":["import { PropType, ref, 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/isFunction';\nimport config from '../config';\nimport InputProps from './props';\nimport { InputValue, TdInputProps } from './type';\nimport { useDefault, extendAPI } from '../shared';\nimport { FormItemInjectionKey } from '../form/const';\nimport { useFormDisabled } from '../form/hooks';\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 const [innerValue] = useDefault<string, TdInputProps>(props, context.emit, 'value', 'change');\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 && 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 innerValue.value = 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 innerValue.value = '';\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 innerValue.value = 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 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","_useDefault","useDefault","emit","_useDefault2","_slicedToArray","innerValue","status","renderType","focused","formItem","inject","FormItemInjectionKey","inputClasses","computed","concat","value","_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","onInput","onCompositionend"],"mappings":"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"}