{"version":3,"file":"input.mjs","sources":["../../../components/input/input.tsx"],"sourcesContent":["import { defineComponent, computed, ComputedRef } from 'vue';\nimport {\n  BrowseIcon as TdBrowseIcon,\n  BrowseOffIcon as TdBrowseOffIcon,\n  CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport props from './props';\nimport {\n  useConfig,\n  useDisabled,\n  useReadonly,\n  useTNodeJSX,\n  useGlobalIcon,\n  usePrefixClass,\n  useCommonClassName,\n} from '@tdesign/shared-hooks';\n\nimport { useInput, useInputEventHandler, useInputWidth } from './hooks';\nimport { getValidAttrs } from '@tdesign/common-js/utils/helper';\n\nexport default defineComponent({\n  name: 'TInput',\n  props: {\n    ...props,\n    /**\n     * 非公开 API，随时可能变动，请勿使用。控制透传readonly同时是否展示input 默认保留 因为正常Input需要撑开宽度\n     */\n    showInput: {\n      type: Boolean,\n      default: true,\n    },\n    /**\n     * 非公开 API，随时可能变动，请勿使用。控制透传autoWidth之后是否容器宽度也自适应 多选等组件需要用到自适应但也需要保留宽度\n     */\n    keepWrapperWidth: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  setup(props, { expose }) {\n    const { globalConfig } = useConfig('input');\n    const { BrowseIcon, BrowseOffIcon, CloseCircleFilledIcon } = useGlobalIcon({\n      BrowseIcon: TdBrowseIcon,\n      BrowseOffIcon: TdBrowseOffIcon,\n      CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n    });\n    const readonly = useReadonly();\n    const isDisabled = useDisabled() as ComputedRef<boolean>;\n\n    const COMPONENT_NAME = usePrefixClass('input');\n    const INPUT_WRAP_CLASS = usePrefixClass('input__wrap');\n    const INPUT_TIPS_CLASS = usePrefixClass('input__tips');\n    const { STATUS, SIZE } = useCommonClassName();\n    const classPrefix = usePrefixClass();\n    const renderTNodeJSX = useTNodeJSX();\n    const {\n      isHover,\n      tStatus,\n      inputRef,\n      renderType,\n      showClear,\n      focused,\n      inputValue,\n      isComposition,\n      compositionValue,\n      innerValue,\n      limitNumber,\n      ...inputHandle\n    } = useInput(props, expose);\n\n    const { inputPreRef } = useInputWidth(props, inputRef, innerValue);\n\n    const inputEventHandler = useInputEventHandler(props, isHover, isComposition);\n\n    const tPlaceholder = computed(() => props.placeholder ?? globalConfig.value.placeholder);\n    const inputAttrs = computed(() => {\n      const value = {\n        autofocus: props.autofocus,\n        disabled: isDisabled.value,\n        readonly: readonly.value,\n        placeholder: tPlaceholder.value,\n        name: props.name || undefined,\n        type: renderType.value,\n        autocomplete: props.autocomplete ?? (globalConfig.value.autocomplete || undefined),\n        unselectable: readonly.value ? 'on' : 'off',\n        spellcheck: props.spellCheck,\n        // 不要传给 input 原生元素 maxlength，浏览器默认行为会按照 unicode 进行限制，与 maxLength API 违背\n        // https://github.com/Tencent/tdesign-vue-next/issues/4413\n        // 参见： https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/maxlength，提到了字符串长度的计算方法，就是 str.length\n      } as const;\n      return getValidAttrs(value);\n    });\n\n    const wrapClasses = computed(() => [\n      INPUT_WRAP_CLASS.value,\n      {\n        [`${COMPONENT_NAME.value}--auto-width`]: props.autoWidth && !props.keepWrapperWidth,\n      },\n    ]);\n\n    const inputEvents = getValidAttrs({\n      onFocus: inputHandle.emitFocus,\n      onBlur: inputHandle.formatAndEmitBlur,\n      onKeydown: inputEventHandler.handleKeydown,\n      onKeyup: inputEventHandler.handleKeyUp,\n      onKeypress: inputEventHandler.handleKeypress,\n      onPaste: inputEventHandler.onHandlePaste,\n      onCompositionend: inputHandle.onHandleCompositionend,\n      onCompositionstart: inputHandle.onHandleCompositionstart,\n    });\n\n    return () => {\n      const prefixIcon = renderTNodeJSX('prefixIcon');\n      let suffixIcon = renderTNodeJSX('suffixIcon');\n      let passwordIcon = renderTNodeJSX('passwordIcon');\n      const label = renderTNodeJSX('label', { silent: true });\n      const suffix = renderTNodeJSX('suffix');\n      const limitNode =\n        limitNumber.value && props.showLimitNumber ? (\n          <div\n            class={[\n              `${classPrefix.value}-input__limit-number`,\n              {\n                [`${classPrefix.value}-is-disabled`]: isDisabled.value,\n              },\n            ]}\n          >\n            {limitNumber.value}\n          </div>\n        ) : null;\n\n      const labelContent = label ? <div class={`${COMPONENT_NAME.value}__prefix`}>{label}</div> : null;\n      const suffixContent =\n        suffix || limitNode ? (\n          <div class={`${COMPONENT_NAME.value}__suffix`}>\n            {suffix}\n            {limitNode}\n          </div>\n        ) : null;\n\n      if (props.type === 'password') {\n        const passwordClass = [{ [`${COMPONENT_NAME.value}__suffix-clear`]: !isDisabled.value }];\n        if (renderType.value === 'password') {\n          suffixIcon = <BrowseOffIcon class={passwordClass} onClick={inputHandle.emitPassword} />;\n        } else if (renderType.value === 'text') {\n          suffixIcon = <BrowseIcon class={passwordClass} onClick={inputHandle.emitPassword} />;\n        }\n      }\n\n      if (showClear.value) {\n        // 如果类型为 password 则使用 passwordIcon 显示 clear\n        if (props.type === 'password') {\n          passwordIcon = (\n            <CloseCircleFilledIcon\n              ref={inputHandle.clearIconRef}\n              class={`${COMPONENT_NAME.value}__suffix-clear`}\n              onClick={inputHandle.emitClear}\n              onMousedown={inputHandle.onClearIconMousedown}\n            />\n          );\n        } else {\n          suffixIcon = (\n            <CloseCircleFilledIcon\n              ref={inputHandle.clearIconRef}\n              class={`${COMPONENT_NAME.value}__suffix-clear`}\n              onClick={inputHandle.emitClear}\n              onMousedown={inputHandle.onClearIconMousedown}\n            />\n          );\n        }\n      }\n\n      const classes = [\n        COMPONENT_NAME.value,\n        props.inputClass,\n        {\n          [SIZE.value[props.size]]: props.size !== 'medium',\n          [STATUS.value.disabled]: isDisabled.value,\n          [STATUS.value.focused]: isDisabled.value ? false : focused.value,\n          [`${classPrefix.value}-is-${tStatus.value}`]: tStatus.value && tStatus.value !== 'default',\n          [`${classPrefix.value}-align-${props.align}`]: props.align !== 'left',\n          [`${classPrefix.value}-is-readonly`]: readonly.value,\n          [`${COMPONENT_NAME.value}--prefix`]: prefixIcon || labelContent,\n          [`${COMPONENT_NAME.value}--suffix`]: suffixIcon || suffixContent,\n          [`${COMPONENT_NAME.value}--borderless`]: props.borderless,\n          [`${COMPONENT_NAME.value}--focused`]: focused.value,\n        },\n      ];\n\n      const tips = renderTNodeJSX('tips');\n\n      const tipsClasses = [\n        INPUT_TIPS_CLASS.value,\n        `${classPrefix.value}-tips`,\n        `${classPrefix.value}-is-${tStatus.value || 'default'}`,\n      ];\n\n      return (\n        <div class={wrapClasses.value} v-show={props.type !== 'hidden'}>\n          <div\n            class={classes}\n            onClick={inputHandle.onRootClick}\n            onMouseenter={inputEventHandler.onInputMouseenter}\n            onMouseleave={inputEventHandler.onInputMouseleave}\n            onWheel={inputEventHandler.onHandleMousewheel}\n          >\n            {prefixIcon ? (\n              <span class={[`${COMPONENT_NAME.value}__prefix`, `${COMPONENT_NAME.value}__prefix-icon`]}>\n                {prefixIcon}\n              </span>\n            ) : null}\n            {labelContent}\n            {/* input element must exist, or other select components can not focus by keyboard operation */}\n            <input\n              class={[`${COMPONENT_NAME.value}__inner`, { [`${COMPONENT_NAME.value}--soft-hidden`]: !props.showInput }]}\n              {...inputAttrs.value}\n              {...inputEvents}\n              ref={inputRef}\n              value={isComposition.value ? compositionValue.value ?? '' : inputValue.value ?? ''}\n              onInput={(e: Event) => inputHandle.handleInput(e as InputEvent)}\n            />\n            {props.autoWidth && (\n              <span ref={inputPreRef} class={`${classPrefix.value}-input__input-pre`}>\n                {isComposition.value ? compositionValue.value ?? '' : innerValue.value || tPlaceholder.value}\n              </span>\n            )}\n            {suffixContent}\n            {passwordIcon ? (\n              <span\n                class={[\n                  `${COMPONENT_NAME.value}__suffix`,\n                  `${COMPONENT_NAME.value}__suffix-icon`,\n                  `${COMPONENT_NAME.value}__clear`,\n                ]}\n              >\n                {passwordIcon}\n              </span>\n            ) : null}\n            {suffixIcon ? (\n              <span\n                class={[\n                  `${COMPONENT_NAME.value}__suffix`,\n                  `${COMPONENT_NAME.value}__suffix-icon`,\n                  { [`${COMPONENT_NAME.value}__clear`]: showClear.value },\n                ]}\n              >\n                {suffixIcon}\n              </span>\n            ) : null}\n          </div>\n          {tips && <div class={tipsClasses}>{tips}</div>}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","name","props","_objectSpread","showInput","type","Boolean","keepWrapperWidth","setup","expose","_ref","_useConfig","useConfig","globalConfig","_useGlobalIcon","useGlobalIcon","BrowseIcon","TdBrowseIcon","BrowseOffIcon","TdBrowseOffIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","readonly","useReadonly","isDisabled","useDisabled","COMPONENT_NAME","usePrefixClass","INPUT_WRAP_CLASS","INPUT_TIPS_CLASS","_useCommonClassName","useCommonClassName","STATUS","SIZE","classPrefix","renderTNodeJSX","useTNodeJSX","_useInput","useInput","isHover","tStatus","inputRef","renderType","showClear","focused","inputValue","isComposition","compositionValue","innerValue","limitNumber","inputHandle","_objectWithoutProperties","_excluded","_useInputWidth","useInputWidth","inputPreRef","inputEventHandler","useInputEventHandler","tPlaceholder","computed","_props2$placeholder","placeholder","value","inputAttrs","_props2$autocomplete","autofocus","disabled","autocomplete","unselectable","spellcheck","spellCheck","getValidAttrs","wrapClasses","_defineProperty","concat","autoWidth","inputEvents","onFocus","emitFocus","onBlur","formatAndEmitBlur","onKeydown","handleKeydown","onKeyup","handleKeyUp","onKeypress","handleKeypress","onPaste","onHandlePaste","onCompositionend","onHandleCompositionend","onCompositionstart","onHandleCompositionstart","_compositionValue$val","_inputValue$value","_compositionValue$val2","prefixIcon","suffixIcon","passwordIcon","label","silent","suffix","limitNode","showLimitNumber","_createVNode","labelContent","suffixContent","passwordClass","emitPassword","clearIconRef","emitClear","onClearIconMousedown","classes","inputClass","size","align","borderless","tips","tipsClasses","_withDirectives","onRootClick","onInputMouseenter","onInputMouseleave","onHandleMousewheel","_mergeProps","onInput","e","handleInput","_vShow"],"mappings":"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"}