{"version":3,"file":"input.vue2.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\r\n  <component\r\n    :is=\"componentType\"\r\n    ref=\"inputRef\"\r\n    v-bind=\"attrs\"\r\n    v-model:value=\"innerValue\"\r\n    autocomplete=\"off\"\r\n    :allow-clear=\"allowClear\"\r\n    :disabled=\"disabled\"\r\n    :readonly=\"readonly\"\r\n    :maxlength=\"getMaxlength\"\r\n    :class=\"[\r\n      bem.b(),\r\n      bem.is(isGray ? 'gray-input' : ''),\r\n      allowClear && !!innerValue && isMouseOver && !disabled\r\n        ? 'show-clear-icon'\r\n        : '',\r\n    ]\"\r\n    @change=\"onChange\"\r\n  >\r\n    <template v-for=\"item in Object.keys($slots)\" :key=\"item\" #[item]=\"data\">\r\n      <slot :name=\"item\" v-bind=\"data || {}\"></slot>\r\n    </template>\r\n    <template v-if=\"prefixIcon\" #prefix>\r\n      <ll-icon :icon-name=\"prefixIcon\" class=\"prefix-icon\" />\r\n    </template>\r\n    <template v-if=\"suffixIcon\" #suffix>\r\n      <ll-icon :icon-name=\"suffixIcon\" class=\"suffix-icon\" />\r\n    </template>\r\n  </component>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { createNamespace } from '@ll-plus/utils'\r\nimport { Input } from 'ant-design-vue'\r\nimport { computed, nextTick, onMounted, onUnmounted, ref, useAttrs } from 'vue'\r\nimport { InputValue, inputProps } from './input'\r\n\r\ndefineOptions({ name: 'LlInput', inheritAttrs: false })\r\n\r\nconst bem = createNamespace('input')\r\n\r\nconst props = defineProps(inputProps)\r\n\r\nconst emit = defineEmits(['update:value', 'change', 'clear'])\r\n\r\nconst attrs = useAttrs()\r\n\r\nconst inputRef = ref()\r\nconst isMouseOver = ref(false)\r\nconst affixWrapper = ref()\r\n\r\nconst innerValue = computed({\r\n  get() {\r\n    return props.value || props.defaultValue\r\n  },\r\n  set(val: InputValue) {\r\n    emit('update:value', val)\r\n  },\r\n})\r\n\r\nconst getMaxlength = computed(() =>\r\n  typeof props.maxlength === 'number'\r\n    ? props.maxlength > 0\r\n      ? props.maxlength\r\n      : null\r\n    : null,\r\n)\r\n\r\n// 鼠标移入事件\r\nconst handleMouseOver = () => {\r\n  isMouseOver.value = true\r\n}\r\n\r\n// 鼠标移出事件\r\nconst handleMouseOut = () => {\r\n  isMouseOver.value = false\r\n}\r\n\r\n// 输入框发送变化的回调\r\nconst onChange = (e: any) => {\r\n  const { value } = e.target\r\n  emit('change', e)\r\n  if (!value && e.type === 'click') {\r\n    emit('clear', value)\r\n  }\r\n}\r\n\r\n// 根据showPassword属性决定组件类型\r\nconst componentType = props.showPassword ? Input.Password : Input\r\n\r\nconst focus = () => {\r\n  inputRef.value?.focus?.()\r\n}\r\nconst select = () => {\r\n  inputRef.value?.select?.()\r\n}\r\n\r\nconst handleWrapperMouseOver = () => handleMouseOver()\r\nconst handleWrapperMouseOut = () => handleMouseOut()\r\n\r\nonMounted(() => {\r\n  nextTick(() => {\r\n    if (!inputRef.value || !inputRef.value.$el || props.showPassword) return\r\n\r\n    // 简化逻辑：先检查根元素是否已经是目标元素\r\n    const rootElement = inputRef.value.$el\r\n    const isRootAffixWrapper = rootElement.classList?.contains(\r\n      'ant-input-affix-wrapper',\r\n    )\r\n\r\n    if (isRootAffixWrapper) {\r\n      // 情况1：根元素本身就是 affix-wrapper\r\n      affixWrapper.value = rootElement\r\n    } else {\r\n      // 情况2：在子元素中查找\r\n      affixWrapper.value = rootElement.querySelector?.(\r\n        '.ant-input-affix-wrapper',\r\n      )\r\n    }\r\n    if (affixWrapper.value) {\r\n      affixWrapper.value.addEventListener('mouseenter', handleWrapperMouseOver)\r\n      affixWrapper.value.addEventListener('mouseleave', handleWrapperMouseOut)\r\n    }\r\n  })\r\n})\r\n\r\nonUnmounted(() => {\r\n  if (affixWrapper.value) {\r\n    affixWrapper.value.removeEventListener('mouseenter', handleWrapperMouseOver)\r\n    affixWrapper.value.removeEventListener('mouseleave', handleWrapperMouseOut)\r\n  }\r\n})\r\n\r\n// 公开focus方法\r\ndefineExpose({\r\n  focus,\r\n  select,\r\n})\r\n</script>\r\n"],"names":["_createBlock","_resolveDynamicComponent","_unref","_mergeProps","allowClear","disabled","readonly","isGray","_renderList","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps","prefixIcon","_createVNode","suffixIcon"],"mappings":"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"}