You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
43 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, useAttrs, useSlots, computed, shallowRef, ref, watch, nextTick, onMounted, toRef, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, createCommentVNode, Fragment, renderSlot, createElementVNode, createBlock, withCtx, resolveDynamicComponent, mergeProps, withModifiers, createVNode, toDisplayString } from 'vue';\nimport { useResizeObserver, isClient } from '@vueuse/core';\nimport { isNil } from 'lodash-unified';\nimport { ElIcon } from '../../icon/index.mjs';\nimport { View, Hide, CircleClose } from '@element-plus/icons-vue';\nimport { calcTextareaHeight } from './utils.mjs';\nimport { inputProps, inputEmits } from './input.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useAttrs as useAttrs$1 } from '../../../hooks/use-attrs/index.mjs';\nimport { useFormItem, useFormItemInputId } from '../../form/src/hooks/use-form-item.mjs';\nimport { useFormSize, useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';\nimport { useFocusController } from '../../../hooks/use-focus-controller/index.mjs';\nimport { ValidateComponentsMap } from '../../../utils/vue/icon.mjs';\nimport { useComposition } from '../../../hooks/use-composition/index.mjs';\nimport { useCursor } from '../../../hooks/use-cursor/index.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { debugWarn } from '../../../utils/error.mjs';\nimport { NOOP, isObject } from '@vue/shared';\nimport { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';\nconst __default__ = defineComponent({\n name: \"ElInput\",\n inheritAttrs: false\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: inputProps,\n emits: inputEmits,\n setup(__props, {\n expose,\n emit\n }) {\n const props = __props;\n const rawAttrs = useAttrs();\n const attrs = useAttrs$1();\n const slots = useSlots();\n const containerKls = computed(() => [props.type === \"textarea\" ? nsTextarea.b() : nsInput.b(), nsInput.m(inputSize.value), nsInput.is(\"disabled\", inputDisabled.value), nsInput.is(\"exceed\", inputExceed.value), {\n [nsInput.b(\"group\")]: slots.prepend || slots.append,\n [nsInput.m(\"prefix\")]: slots.prefix || props.prefixIcon,\n [nsInput.m(\"suffix\")]: slots.suffix || props.suffixIcon || props.clearable || props.showPassword,\n [nsInput.bm(\"suffix\", \"password-clear\")]: showClear.value && showPwdVisible.value,\n [nsInput.b(\"hidden\")]: props.type === \"hidden\"\n }, rawAttrs.class]);\n const wrapperKls = computed(() => [nsInput.e(\"wrapper\"), nsInput.is(\"focus\", isFocused.value)]);\n const {\n form: elForm,\n formItem: elFormItem\n } = useFormItem();\n const {\n inputId\n } = useFormItemInputId(props, {\n formItemContext: elFormItem\n });\n const inputSize = useFormSize();\n const inputDisabled = useFormDisabled();\n const nsInput = useNamespace(\"input\");\n const nsTextarea = useNamespace(\"textarea\");\n const input = shallowRef();\n const textarea = shallowRef();\n const hovering = ref(false);\n const passwordVisible = ref(false);\n const countStyle = ref();\n const textareaCalcStyle = shallowRef(props.inputStyle);\n const _ref = computed(() => input.value || textarea.value);\n const {\n wrapperRef,\n isFocused,\n handleFocus,\n handleBlur\n } = useFocusController(_ref, {\n beforeFocus() {\n return inputDisabled.value;\n },\n afterBlur() {\n var _a;\n if (props.validateEvent) {\n (_a = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _a.call(elFormItem, \"blur\").catch(err => debugWarn(err));\n }\n }\n });\n const needStatusIcon = computed(() => {\n var _a;\n return (_a = elForm == null ? void 0 : elForm.statusIcon) != null ? _a : false;\n });\n const validateState = computed(() => (elFormItem == null ? void 0 : elFormItem.validateState) || \"\");\n c