{"version":3,"file":"useInputWidth.mjs","sources":["../../../../components/input/hooks/useInputWidth.ts"],"sourcesContent":["import { onMounted, Ref, ref, watch, nextTick, onBeforeUnmount, toRefs } from 'vue';\nimport { useResizeObserver } from '@tdesign/shared-hooks';\nimport { InputValue, TdInputProps } from './../type';\n\nconst ANIMATION_TIME = 100;\n\nexport function useInputWidth(props: TdInputProps, inputRef: Ref<HTMLInputElement>, innerValue: Ref<InputValue>) {\n  const { autoWidth, placeholder } = toRefs(props);\n  const inputPreRef = ref<HTMLSpanElement>();\n  const observerTimer = ref(null);\n\n  const updateInputWidth = () => {\n    if (!inputPreRef.value || !inputRef.value) return;\n    // 使用 getComputedStyle 规避 transform 带来的影响\n    inputRef.value.style.width = getComputedStyle(inputPreRef.value).width;\n  };\n\n  useResizeObserver(inputPreRef, () => {\n    if (autoWidth.value) {\n      observerTimer.value = setTimeout(() => {\n        updateInputWidth();\n        clearTimeout(observerTimer.value);\n      }, ANIMATION_TIME);\n    }\n  });\n\n  onBeforeUnmount(() => {\n    clearTimeout(observerTimer.value);\n  });\n\n  const addListeners = () => {\n    watch(\n      [innerValue, placeholder],\n      () => {\n        if (!autoWidth.value) return;\n        nextTick(() => {\n          updateInputWidth();\n        });\n      },\n      { immediate: true },\n    );\n  };\n\n  onMounted(() => {\n    if (autoWidth.value) {\n      addListeners();\n    }\n  });\n\n  return {\n    inputPreRef,\n  };\n}\n"],"names":["ANIMATION_TIME","useInputWidth","props","inputRef","innerValue","_toRefs","toRefs","autoWidth","placeholder","inputPreRef","ref","observerTimer","updateInputWidth","value","style","width","getComputedStyle","useResizeObserver","setTimeout","clearTimeout","onBeforeUnmount","addListeners","watch","nextTick","immediate","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,cAAiB,GAAA,GAAA,CAAA;AAEP,SAAAC,aAAAA,CAAcC,KAAqB,EAAAC,QAAA,EAAiCC,UAA6B,EAAA;AAC/G,EAAA,IAAAC,OAAA,GAAmCC,OAAOJ,KAAK,CAAA;IAAvCK,SAAA,GAAAF,OAAA,CAAAE,SAAA;IAAWC,WAAY,GAAAH,OAAA,CAAZG,WAAY,CAAA;AAC/B,EAAA,IAAMC,cAAcC,GAAqB,EAAA,CAAA;AACnC,EAAA,IAAAC,aAAA,GAAgBD,IAAI,IAAI,CAAA,CAAA;AAE9B,EAAA,IAAME,mBAAmB,SAAnBA,mBAAyB;IAC7B,IAAI,CAACH,WAAA,CAAYI,KAAS,IAAA,CAACV,QAAS,CAAAU,KAAA,EAAO,OAAA;AAE3CV,IAAAA,QAAA,CAASU,MAAMC,KAAM,CAAAC,KAAA,GAAQC,gBAAiB,CAAAP,WAAA,CAAYI,KAAK,CAAE,CAAAE,KAAA,CAAA;GACnE,CAAA;EAEAE,iBAAA,CAAkBR,aAAa,YAAM;IACnC,IAAIF,UAAUM,KAAO,EAAA;AACLF,MAAAA,aAAA,CAAAE,KAAA,GAAQK,WAAW,YAAM;AACpBN,QAAAA,gBAAA,EAAA,CAAA;AACjBO,QAAAA,YAAA,CAAaR,cAAcE,KAAK,CAAA,CAAA;SAC/Bb,cAAc,CAAA,CAAA;AACnB,KAAA;AACF,GAAC,CAAA,CAAA;AAEDoB,EAAAA,eAAA,CAAgB,YAAM;AACpBD,IAAAA,YAAA,CAAaR,cAAcE,KAAK,CAAA,CAAA;AAClC,GAAC,CAAA,CAAA;AAED,EAAA,IAAMQ,eAAe,SAAfA,eAAqB;AACzBC,IAAAA,KAAA,CACE,CAAClB,YAAYI,WAAW,CAAA,EACxB,YAAM;AACJ,MAAA,IAAI,CAACD,SAAU,CAAAM,KAAA,EAAO,OAAA;AACtBU,MAAAA,QAAA,CAAS,YAAM;AACIX,QAAAA,gBAAA,EAAA,CAAA;AACnB,OAAC,CAAA,CAAA;AACH,KAAA,EACA;AAAEY,MAAAA,WAAW,IAAA;AAAK,KACpB,CAAA,CAAA;GACF,CAAA;AAEAC,EAAAA,SAAA,CAAU,YAAM;IACd,IAAIlB,UAAUM,KAAO,EAAA;AACNQ,MAAAA,YAAA,EAAA,CAAA;AACf,KAAA;AACF,GAAC,CAAA,CAAA;EAEM,OAAA;AACLZ,IAAAA,WAAA,EAAAA,WAAAA;GACF,CAAA;AACF;;;;"}