{"version":3,"file":"input.mjs","sources":["../../src/input/input.tsx"],"sourcesContent":["import { PropType, ref, computed, defineComponent, nextTick, watch } from 'vue';\nimport {\n  BrowseIcon as TBrowseIcon,\n  BrowseOffIcon as TBrowseOffIcon,\n  CloseCircleFilledIcon as TCloseCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport config from '../config';\nimport InputProps from './props';\nimport { InputValue, TdInputProps } from './type';\nimport { getCharacterLength, useDefault, extendAPI } from '../shared';\nimport { useFormDisabled } from '../form/hooks';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n  name: `${prefix}-input`,\n  props: {\n    ...InputProps,\n    labelAlign: {\n      type: String,\n      default: 'top',\n    },\n    pattern: {\n      type: String,\n    },\n    inputmode: {\n      type: String as PropType<'search' | 'text' | 'none' | 'url' | 'tel' | 'email' | 'numeric' | 'decimal'>,\n      validator(val: string): boolean {\n        if (!val) return true;\n        return ['search', 'text', 'none', 'url', 'tel', 'email', 'numeric', 'decimal'].includes(val);\n      },\n    },\n  },\n  setup(props, context) {\n    const renderTNodeJSX = useTNodeJSX();\n    const inputClass = usePrefixClass('input');\n    const isDisabled = useFormDisabled();\n\n    const inputRef = ref();\n    const [innerValue] = useDefault<string, TdInputProps>(props, context.emit, 'value', 'change');\n\n    const status = props.status || 'default';\n    const renderType = ref(props.type);\n    const focused = ref(false);\n\n    const inputClasses = computed(() => [\n      `${inputClass.value}__control`,\n      {\n        [`${inputClass.value}--${props.align}`]: props.align !== 'left',\n        [`${inputClass.value}--${status}`]: status,\n        [`${inputClass.value}__control--disabled`]: isDisabled.value,\n      },\n    ]);\n\n    const rootClasses = computed(() => [\n      inputClass.value,\n      {\n        [`${inputClass.value}--layout-${props.layout}`]: props.layout,\n        [`${inputClass.value}--center`]: props.labelAlign === 'center',\n        [`${inputClass.value}--border`]: !props.borderless,\n      },\n    ]);\n    const showClear = computed(() => {\n      if (isDisabled.value || props.readonly === true) return false;\n\n      if (props.clearable && innerValue.value && innerValue.value.length > 0) {\n        return props.clearTrigger === 'always' || (props.clearTrigger === 'focus' && focused.value);\n      }\n      return false;\n    });\n\n    const setInputValue = (v: InputValue = '') => {\n      const input = inputRef.value as HTMLInputElement;\n      const sV = String(v);\n      if (!input) {\n        return;\n      }\n      if (input.value !== sV) {\n        input.value = sV;\n      }\n    };\n\n    const handleInput = (e: Event) => {\n      // 中文输入的时候inputType是insertCompositionText所以中文输入的时候禁止触发。\n      if (e instanceof InputEvent) {\n        const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n        if (e.isComposing || checkInputType) return;\n      }\n      inputValueChangeHandle(e);\n    };\n\n    const inputValueChangeHandle = (e: Event) => {\n      const { value } = e.target as HTMLInputElement;\n      const { allowInputOverMax, maxcharacter } = props;\n      if (!allowInputOverMax && maxcharacter && maxcharacter > 0 && !Number.isNaN(maxcharacter)) {\n        const { length = 0, characters = '' } = getCharacterLength(value, maxcharacter) as {\n          length: number;\n          characters: string;\n        };\n        innerValue.value = characters;\n      } else {\n        innerValue.value = value;\n      }\n      nextTick(() => setInputValue(innerValue.value));\n    };\n\n    const focus = () => {\n      focused.value = true;\n      inputRef.value?.focus();\n    };\n\n    const blur = () => {\n      focused.value = false;\n      inputRef.value?.blur();\n    };\n\n    extendAPI({ focus, blur });\n\n    const handleClear = (e: TouchEvent) => {\n      e.preventDefault();\n      innerValue.value = '';\n      focus();\n      props.onClear?.({ e });\n    };\n\n    const handleFocus = (e: FocusEvent) => {\n      focused.value = true;\n      props.onFocus?.(innerValue.value, { e });\n    };\n\n    const handleBlur = (e: FocusEvent) => {\n      focused.value = false;\n      props.onBlur?.(innerValue.value, { e });\n    };\n\n    const handleCompositionend = (e: CompositionEvent) => {\n      inputValueChangeHandle(e);\n    };\n\n    const handlePwdIconClick = () => {\n      if (isDisabled.value) return;\n\n      renderType.value = renderType.value === 'password' ? 'text' : 'password';\n    };\n\n    watch(\n      () => props.autofocus,\n      (v) => {\n        if (v === true) {\n          nextTick(() => {\n            focus();\n          });\n        }\n      },\n      { immediate: true },\n    );\n\n    watch(\n      () => props.type,\n      (v) => {\n        renderType.value = v;\n      },\n      { immediate: true },\n    );\n\n    return () => {\n      const renderPrefix = () => {\n        const prefixIcon = renderTNodeJSX('prefixIcon');\n        const label = renderTNodeJSX('label');\n\n        return (\n          <div class={`${inputClass.value}__wrap--prefix`}>\n            {prefixIcon && <div class={`${inputClass.value}__icon--prefix`}>{prefixIcon}</div>}\n            <div class={`${inputClass.value}__label`}>{label}</div>\n          </div>\n        );\n      };\n      const renderClearable = () => {\n        if (showClear.value) {\n          return (\n            <div class={`${inputClass.value}__wrap--clearable-icon`} onTouchend={handleClear}>\n              <TCloseCircleFilledIcon />\n            </div>\n          );\n        }\n\n        return null;\n      };\n      const renderSuffix = () => {\n        const suffix = renderTNodeJSX('suffix');\n        if (!suffix) {\n          return null;\n        }\n        return <div class={`${inputClass.value}__wrap--suffix`}>{suffix}</div>;\n      };\n\n      const renderSuffixIcon = () => {\n        let suffixIcon = renderTNodeJSX('suffixIcon');\n        if (props.type === 'password') {\n          if (renderType.value === 'password') {\n            suffixIcon = <TBrowseOffIcon onClick={handlePwdIconClick} />;\n          } else if (renderType.value === 'text') {\n            suffixIcon = <TBrowseIcon onClick={handlePwdIconClick} />;\n          }\n        }\n\n        if (!suffixIcon) {\n          return null;\n        }\n        return <div class={`${inputClass.value}__wrap--suffix-icon`}>{suffixIcon}</div>;\n      };\n\n      const renderTips = () => {\n        const tips = renderTNodeJSX('tips');\n        if (!tips) {\n          return null;\n        }\n        return <div class={`${inputClass.value}__tips ${inputClass.value}--${props.align}`}>{tips}</div>;\n      };\n\n      return (\n        <div class={rootClasses.value}>\n          {renderPrefix()}\n          <div class={`${inputClass.value}__wrap`}>\n            <div class={`${inputClass.value}__content ${inputClass.value}--${status || 'default'}`}>\n              <input\n                ref={inputRef}\n                value={innerValue.value}\n                name={props.name}\n                class={inputClasses.value}\n                type={renderType.value}\n                disabled={isDisabled.value}\n                autocomplete={props.autocomplete ? 'On' : 'Off'}\n                placeholder={props.placeholder}\n                readonly={props.readonly}\n                maxlength={props.maxlength || -1}\n                pattern={props.pattern}\n                inputmode={props.inputmode}\n                spellcheck={props.spellCheck}\n                onFocus={handleFocus}\n                onBlur={handleBlur}\n                onInput={handleInput}\n                onCompositionend={handleCompositionend}\n              />\n              {renderClearable()}\n              {renderSuffix()}\n              {renderSuffixIcon()}\n            </div>\n            {renderTips()}\n          </div>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","defineComponent","name","props","_objectSpread","InputProps","labelAlign","type","String","default","pattern","inputmode","validator","val","includes","setup","context","renderTNodeJSX","useTNodeJSX","inputClass","usePrefixClass","isDisabled","useFormDisabled","inputRef","ref","_useDefault","useDefault","emit","_useDefault2","_slicedToArray","innerValue","status","renderType","focused","inputClasses","computed","concat","value","_defineProperty","align","rootClasses","layout","borderless","showClear","readonly","clearable","length","clearTrigger","setInputValue","v","arguments","undefined","input","sV","handleInput","e","InputEvent","checkInputType","inputType","isComposing","inputValueChangeHandle","target","allowInputOverMax","maxcharacter","Number","isNaN","_getCharacterLength","getCharacterLength","_getCharacterLength$l","_getCharacterLength$c","characters","nextTick","focus","_inputRef$value","blur","_inputRef$value2","extendAPI","handleClear","_props$onClear","preventDefault","onClear","call","handleFocus","_props$onFocus","onFocus","handleBlur","_props$onBlur","onBlur","handleCompositionend","handlePwdIconClick","watch","autofocus","immediate","renderPrefix","prefixIcon","label","_createVNode","renderClearable","TCloseCircleFilledIcon","renderSuffix","suffix","renderSuffixIcon","suffixIcon","TBrowseOffIcon","TBrowseIcon","renderTips","tips","autocomplete","placeholder","maxlength","spellCheck"],"mappings":"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"}