element-plus
Version:
A Component Library for Vue 3
1 lines • 35.2 kB
Source Map (JSON)
{"version":3,"file":"input.vue2.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n containerKls,\n {\n [nsInput.bm('group', 'append')]: $slots.append,\n [nsInput.bm('group', 'prepend')]: $slots.prepend,\n },\n ]\"\n :style=\"containerStyle\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- input -->\n <template v-if=\"type !== 'textarea'\">\n <!-- prepend slot -->\n <div v-if=\"$slots.prepend\" :class=\"nsInput.be('group', 'prepend')\">\n <slot name=\"prepend\" />\n </div>\n\n <div ref=\"wrapperRef\" :class=\"wrapperKls\">\n <!-- prefix slot -->\n <span v-if=\"$slots.prefix || prefixIcon\" :class=\"nsInput.e('prefix')\">\n <span :class=\"nsInput.e('prefix-inner')\">\n <slot name=\"prefix\" />\n <el-icon v-if=\"prefixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"prefixIcon\" />\n </el-icon>\n </span>\n </span>\n\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"nsInput.e('inner')\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :type=\"showPassword ? (passwordVisible ? 'text' : 'password') : type\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :role=\"containerRole\"\n :inputmode=\"inputmode\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n\n <!-- suffix slot -->\n <span v-if=\"suffixVisible\" :class=\"nsInput.e('suffix')\">\n <span :class=\"nsInput.e('suffix-inner')\">\n <template\n v-if=\"!showClear || !showPwdVisible || !isWordLimitVisible\"\n >\n <slot name=\"suffix\" />\n <el-icon v-if=\"suffixIcon\" :class=\"nsInput.e('icon')\">\n <component :is=\"suffixIcon\" />\n </el-icon>\n </template>\n <el-icon\n v-if=\"showClear\"\n :class=\"[nsInput.e('icon'), nsInput.e('clear')]\"\n @mousedown.prevent=\"NOOP\"\n @click=\"clear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <el-icon\n v-if=\"showPwdVisible\"\n :class=\"[nsInput.e('icon'), nsInput.e('password')]\"\n @click=\"handlePasswordVisible\"\n @mousedown.prevent=\"NOOP\"\n @mouseup.prevent=\"NOOP\"\n >\n <component :is=\"passwordIcon\" />\n </el-icon>\n <span\n v-if=\"isWordLimitVisible\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n <span :class=\"nsInput.e('count-inner')\">\n {{ textLength }} / {{ maxlength }}\n </span>\n </span>\n <el-icon\n v-if=\"validateState && validateIcon && needStatusIcon\"\n :class=\"[\n nsInput.e('icon'),\n nsInput.e('validateIcon'),\n nsInput.is('loading', validateState === 'validating'),\n ]\"\n >\n <component :is=\"validateIcon\" />\n </el-icon>\n </span>\n </span>\n </div>\n\n <!-- append slot -->\n <div v-if=\"$slots.append\" :class=\"nsInput.be('group', 'append')\">\n <slot name=\"append\" />\n </div>\n </template>\n\n <!-- textarea -->\n <template v-else>\n <textarea\n :id=\"inputId\"\n ref=\"textarea\"\n :class=\"[nsTextarea.e('inner'), nsInput.is('focus', isFocused)]\"\n v-bind=\"attrs\"\n :name=\"name\"\n :minlength=\"minlength\"\n :maxlength=\"maxlength\"\n :tabindex=\"tabindex\"\n :disabled=\"inputDisabled\"\n :readonly=\"readonly\"\n :autocomplete=\"autocomplete\"\n :style=\"textareaStyle\"\n :aria-label=\"ariaLabel\"\n :placeholder=\"placeholder\"\n :form=\"form\"\n :autofocus=\"autofocus\"\n :rows=\"rows\"\n :role=\"containerRole\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @input=\"handleInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @change=\"handleChange\"\n @keydown=\"handleKeydown\"\n />\n <span\n v-if=\"isWordLimitVisible\"\n :style=\"countStyle\"\n :class=\"[\n nsInput.e('count'),\n nsInput.is('outside', wordLimitPosition === 'outside'),\n ]\"\n >\n {{ textLength }} / {{ maxlength }}\n </span>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n toRef,\n useAttrs as useRawAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { isNil } from 'lodash-unified'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Hide as IconHide, View as IconView } from '@element-plus/icons-vue'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport {\n NOOP,\n ValidateComponentsMap,\n debugWarn,\n isClient,\n isObject,\n} from '@element-plus/utils'\nimport {\n useAttrs,\n useComposition,\n useCursor,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { calcTextareaHeight, looseToNumber } from './utils'\nimport { inputEmits, inputPropsDefaults } from './input'\n\nimport type { StyleValue } from 'vue'\nimport type { InputProps } from './input'\n\ntype TargetElement = HTMLInputElement | HTMLTextAreaElement\n\nconst COMPONENT_NAME = 'ElInput'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\nconst props = withDefaults(defineProps<InputProps>(), {\n ...inputPropsDefaults,\n})\nconst emit = defineEmits(inputEmits)\n\nconst rawAttrs = useRawAttrs()\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst containerKls = computed(() => [\n props.type === 'textarea' ? nsTextarea.b() : nsInput.b(),\n nsInput.m(inputSize.value),\n nsInput.is('disabled', inputDisabled.value),\n nsInput.is('exceed', inputExceed.value),\n {\n [nsInput.b('group')]: slots.prepend || slots.append,\n [nsInput.m('prefix')]: slots.prefix || props.prefixIcon,\n [nsInput.m('suffix')]:\n slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm('suffix', 'password-clear')]:\n showClear.value && showPwdVisible.value,\n [nsInput.b('hidden')]: props.type === 'hidden',\n },\n rawAttrs.class,\n])\n\nconst wrapperKls = computed(() => [\n nsInput.e('wrapper'),\n nsInput.is('focus', isFocused.value),\n])\n\nconst { form: elForm, formItem: elFormItem } = useFormItem()\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: elFormItem,\n})\nconst inputSize = useFormSize()\nconst inputDisabled = useFormDisabled()\nconst nsInput = useNamespace('input')\nconst nsTextarea = useNamespace('textarea')\n\nconst input = shallowRef<HTMLInputElement>()\nconst textarea = shallowRef<HTMLTextAreaElement>()\n\nconst hovering = ref(false)\nconst passwordVisible = ref(false)\nconst countStyle = ref<StyleValue>()\nconst textareaCalcStyle = shallowRef(props.inputStyle)\n\nconst _ref = computed(() => input.value || textarea.value)\n\n// wrapperRef for type=\"text\", handleFocus and handleBlur for type=\"textarea\"\nconst { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(\n _ref,\n {\n disabled: inputDisabled,\n afterBlur() {\n if (props.validateEvent) {\n elFormItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n }\n)\n\nconst needStatusIcon = computed(() => elForm?.statusIcon ?? false)\nconst validateState = computed(() => elFormItem?.validateState || '')\nconst validateIcon = computed(\n () => validateState.value && ValidateComponentsMap[validateState.value]\n)\nconst passwordIcon = computed(() =>\n passwordVisible.value ? IconView : IconHide\n)\nconst containerStyle = computed<StyleValue>(() => [\n rawAttrs.style as StyleValue,\n])\nconst textareaStyle = computed<StyleValue>(() => [\n props.inputStyle,\n textareaCalcStyle.value,\n { resize: props.resize },\n])\nconst nativeInputValue = computed(() =>\n isNil(props.modelValue) ? '' : String(props.modelValue)\n)\nconst showClear = computed(\n () =>\n props.clearable &&\n !inputDisabled.value &&\n !props.readonly &&\n !!nativeInputValue.value &&\n (isFocused.value || hovering.value)\n)\nconst showPwdVisible = computed(\n () => props.showPassword && !inputDisabled.value && !!nativeInputValue.value\n)\nconst isWordLimitVisible = computed(\n () =>\n props.showWordLimit &&\n !!props.maxlength &&\n (props.type === 'text' || props.type === 'textarea') &&\n !inputDisabled.value &&\n !props.readonly &&\n !props.showPassword\n)\nconst textLength = computed(() => nativeInputValue.value.length)\nconst inputExceed = computed(\n () =>\n // show exceed style if length of initial value greater then maxlength\n !!isWordLimitVisible.value && textLength.value > Number(props.maxlength)\n)\nconst suffixVisible = computed(\n () =>\n !!slots.suffix ||\n !!props.suffixIcon ||\n showClear.value ||\n props.showPassword ||\n isWordLimitVisible.value ||\n (!!validateState.value && needStatusIcon.value)\n)\nconst hasModelModifiers = computed(\n () => !!Object.keys(props.modelModifiers).length\n)\n\nconst [recordCursor, setCursor] = useCursor(input)\n\nuseResizeObserver(textarea, (entries) => {\n onceInitSizeTextarea()\n if (\n !isWordLimitVisible.value ||\n (props.resize !== 'both' && props.resize !== 'horizontal')\n )\n return\n const entry = entries[0]\n const { width } = entry.contentRect\n countStyle.value = {\n /** right: 100% - width + padding(22) - right(10) */\n right: `calc(100% - ${width + 22 - 10}px)`,\n }\n})\n\nconst resizeTextarea = () => {\n const { type, autosize } = props\n\n if (!isClient || type !== 'textarea' || !textarea.value) return\n\n if (autosize) {\n const minRows = isObject(autosize) ? autosize.minRows : undefined\n const maxRows = isObject(autosize) ? autosize.maxRows : undefined\n const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows)\n\n // If the scrollbar is displayed, the height of the textarea needs more space than the calculated height.\n // If set textarea height in this case, the scrollbar will not hide.\n // So we need to hide scrollbar first, and reset it in next tick.\n // see https://github.com/element-plus/element-plus/issues/8825\n textareaCalcStyle.value = {\n overflowY: 'hidden',\n ...textareaStyle,\n }\n\n nextTick(() => {\n // NOTE: Force repaint to make sure the style set above is applied.\n textarea.value!.offsetHeight\n textareaCalcStyle.value = textareaStyle\n })\n } else {\n textareaCalcStyle.value = {\n minHeight: calcTextareaHeight(textarea.value).minHeight,\n }\n }\n}\n\nconst createOnceInitResize = (resizeTextarea: () => void) => {\n let isInit = false\n return () => {\n if (isInit || !props.autosize) return\n const isElHidden = textarea.value?.offsetParent === null\n if (!isElHidden) {\n setTimeout(resizeTextarea)\n isInit = true\n }\n }\n}\n// fix: https://github.com/element-plus/element-plus/issues/12074\nconst onceInitSizeTextarea = createOnceInitResize(resizeTextarea)\n\nconst setNativeInputValue = () => {\n const input = _ref.value\n const formatterValue = props.formatter\n ? props.formatter(nativeInputValue.value)\n : nativeInputValue.value\n if (!input || input.value === formatterValue || props.type === 'file') return\n input.value = formatterValue\n}\n\nconst formatValue = (value: string) => {\n const { trim, number } = props.modelModifiers\n if (trim) {\n value = value.trim()\n }\n if (number) {\n value = `${looseToNumber(value)}`\n }\n if (props.formatter && props.parser) {\n value = props.parser(value)\n }\n return value\n}\n\nconst handleInput = async (event: Event) => {\n // should not emit input during composition\n // see: https://github.com/ElemeFE/element/issues/10516\n if (isComposing.value) return\n\n const { lazy } = props.modelModifiers\n let { value } = event.target as TargetElement\n if (lazy) {\n emit(INPUT_EVENT, value)\n return\n }\n\n value = formatValue(value)\n\n // hack for https://github.com/ElemeFE/element/issues/8548\n // should remove the following line when we don't support IE\n if (String(value) === nativeInputValue.value) {\n // preserve native features while being compatible with #9501\n if (props.formatter) {\n setNativeInputValue()\n }\n return\n }\n\n recordCursor()\n emit(UPDATE_MODEL_EVENT, value)\n emit(INPUT_EVENT, value)\n\n // ensure native input value is controlled\n // see: https://github.com/ElemeFE/element/issues/12850\n await nextTick()\n\n if ((props.formatter && props.parser) || !hasModelModifiers.value) {\n setNativeInputValue()\n }\n setCursor()\n}\n\nconst handleChange = async (event: Event) => {\n let { value } = event.target as TargetElement\n\n value = formatValue(value)\n if (props.modelModifiers.lazy) {\n emit(UPDATE_MODEL_EVENT, value)\n }\n emit(CHANGE_EVENT, value, event)\n\n await nextTick()\n setNativeInputValue()\n}\n\nconst {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n} = useComposition({ emit, afterComposition: handleInput })\n\nconst handlePasswordVisible = () => {\n passwordVisible.value = !passwordVisible.value\n}\n\nconst focus = () => _ref.value?.focus()\n\nconst blur = () => _ref.value?.blur()\n\nconst handleMouseLeave = (evt: MouseEvent) => {\n hovering.value = false\n emit('mouseleave', evt)\n}\n\nconst handleMouseEnter = (evt: MouseEvent) => {\n hovering.value = true\n emit('mouseenter', evt)\n}\n\nconst handleKeydown = (evt: KeyboardEvent) => {\n emit('keydown', evt)\n}\n\nconst select = () => {\n _ref.value?.select()\n}\n\nconst clear = () => {\n emit(UPDATE_MODEL_EVENT, '')\n emit(CHANGE_EVENT, '')\n emit('clear')\n emit(INPUT_EVENT, '')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n nextTick(() => resizeTextarea())\n if (props.validateEvent) {\n elFormItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\n// native input value is set explicitly\n// do not use v-model / :value in template\n// see: https://github.com/ElemeFE/element/issues/14521\nwatch(nativeInputValue, (newValue) => {\n if (!_ref.value) {\n return\n }\n const { trim, number } = props.modelModifiers\n const elValue = _ref.value.value\n const displayValue =\n (number || props.type === 'number') && !/^0\\d/.test(elValue)\n ? `${looseToNumber(elValue)}`\n : elValue\n\n if (displayValue === newValue) {\n return\n }\n\n if (document.activeElement === _ref.value && _ref.value.type !== 'range') {\n if (trim && displayValue.trim() === newValue) {\n return\n }\n }\n\n setNativeInputValue()\n})\n\n// when change between <input> and <textarea>,\n// update DOM dependent value and styles\n// https://github.com/ElemeFE/element/issues/14857\nwatch(\n () => props.type,\n async () => {\n await nextTick()\n setNativeInputValue()\n resizeTextarea()\n }\n)\n\nonMounted(() => {\n if (!props.formatter && props.parser) {\n debugWarn(\n COMPONENT_NAME,\n 'If you set the parser, you also need to set the formatter.'\n )\n }\n setNativeInputValue()\n nextTick(resizeTextarea)\n})\n\ndefineExpose({\n /** @description HTML input element */\n input,\n /** @description HTML textarea element */\n textarea,\n /** @description HTML element, input or textarea */\n ref: _ref,\n /** @description style of textarea. */\n textareaStyle,\n\n /** @description from props (used on unit test) */\n autosize: toRef(props, 'autosize'),\n\n /** @description is input composing */\n isComposing,\n\n /** @description HTML input element native method */\n focus,\n /** @description HTML input element native method */\n blur,\n /** @description HTML input element native method */\n select,\n /** @description clear input value */\n clear,\n /** @description resize textarea. */\n resizeTextarea,\n})\n</script>\n"],"names":["useRawAttrs","useAttrs","IconView","IconHide","textareaStyle","resizeTextarea","input","_createElementBlock","_normalizeClass","_unref","$slots","_createCommentVNode","_Fragment","_renderSlot","_createElementVNode","_createBlock","_openBlock","_resolveDynamicComponent","_mergeProps","_toDisplayString"],"mappings":"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"}