{"version":3,"file":"tag-input.mjs","sources":["../../../components/tag-input/tag-input.tsx"],"sourcesContent":["import { defineComponent, computed, toRefs, ref, nextTick, reactive, watch, ComputedRef } from 'vue';\nimport { CloseCircleFilledIcon as TdCloseCircleFilledIcon } from 'tdesign-icons-vue-next';\nimport TInput, { InputProps, StrInputProps, TdInputProps } from '../input';\nimport { TdTagInputProps } from './type';\nimport props from './props';\nimport { useConfig } from '../config-provider/hooks/useConfig';\nimport {\n  useDisabled,\n  useReadonly,\n  useTNodeJSX,\n  useGlobalIcon,\n  usePrefixClass,\n  useDefaultValue,\n  useEventForward,\n} from '@tdesign/shared-hooks';\n\nimport { useTagScroll, useHover, useDragSorter, useTagList } from './hooks';\n\nimport { isArray } from 'lodash-es';\n\nconst useComponentClassName = () => {\n  return {\n    NAME_CLASS: usePrefixClass('tag-input'),\n    CLEAR_CLASS: usePrefixClass('tag-input__suffix-clear'),\n    BREAK_LINE_CLASS: usePrefixClass('tag-input--break-line'),\n  };\n};\n\nexport default defineComponent({\n  name: 'TTagInput',\n  props,\n  setup(props: TdTagInputProps, { slots }) {\n    const renderTNodeJSX = useTNodeJSX();\n    const { NAME_CLASS, CLEAR_CLASS, BREAK_LINE_CLASS } = useComponentClassName();\n    const { CloseCircleFilledIcon } = useGlobalIcon({ CloseCircleFilledIcon: TdCloseCircleFilledIcon });\n\n    const isDisabled = useDisabled() as ComputedRef<boolean>;\n    const isReadonly = useReadonly();\n\n    const { inputValue, inputProps, borderless, size, tips, status, suffix, autoWidth, onPaste } = toRefs(props);\n    const [tInputValue, setTInputValue] = useDefaultValue(\n      inputValue,\n      props.defaultInputValue,\n      props.onInputChange,\n      'inputValue',\n    );\n    const { excessTagsDisplayType, clearable, placeholder } = toRefs(props);\n    const { isHover, addHover, cancelHover } = useHover({\n      readonly: isReadonly.value,\n      disabled: isDisabled.value,\n      onMouseenter: props.onMouseenter,\n      onMouseleave: props.onMouseleave,\n    });\n    const isComposition = ref(false);\n    const { classPrefix } = useConfig();\n    const isFocused = ref(false);\n\n    // 这里不需要响应式，因此直接传递参数\n    const { getDragProps } = useDragSorter({\n      ...props,\n      sortOnDraggable: props.dragSort,\n      onDragOverCheck: {\n        x: true,\n        targetClassNameRegExp: new RegExp(`^${classPrefix.value}-tag`),\n      },\n    });\n    const { scrollToRight, onWheel, scrollToRightOnEnter, scrollToLeftOnLeave, tagInputRef, isScrollable } =\n      useTagScroll(props);\n    // handle tag add and remove\n    // 需要响应式，为了尽量的和 react 版本做法相同，这里进行响应式处理\n    const { tagValue, onInnerEnter, onInputBackspaceKeyUp, onInputBackspaceKeyDown, clearAll, renderLabel, onClose } =\n      useTagList(\n        reactive({\n          ...toRefs(props),\n          getDragProps,\n        }),\n      );\n\n    const classes = computed(() => {\n      const isEmpty = !(isArray(tagValue.value) && tagValue.value.length);\n      return [\n        NAME_CLASS.value,\n        {\n          [BREAK_LINE_CLASS.value]: excessTagsDisplayType.value === 'break-line',\n          [`${classPrefix.value}-is-empty`]: isEmpty,\n          [`${classPrefix.value}-tag-input--with-tag`]: !isEmpty,\n          [`${classPrefix.value}-tag-input--drag-sort`]: props.dragSort && !isReadonly.value && !isDisabled.value,\n        },\n      ];\n    });\n\n    const tagInputPlaceholder = computed(() => (!tagValue.value?.length ? placeholder.value : ''));\n\n    const showClearIcon = computed(() =>\n      Boolean(\n        !isReadonly.value &&\n          !isDisabled.value &&\n          clearable.value &&\n          isHover.value &&\n          (tagValue.value?.length || tInputValue.value),\n      ),\n    );\n\n    const onInputEnter = (value: string, context: { e: KeyboardEvent }) => {\n      // 阻止 Enter 默认行为，避免在 Form 中触发 submit 事件\n      context.e?.preventDefault?.();\n      setTInputValue('', { e: context.e, trigger: 'enter' });\n      !isComposition.value && onInnerEnter(value, context);\n      nextTick(() => {\n        scrollToRight();\n        isComposition.value = false;\n      });\n    };\n\n    const onInputCompositionstart = (value: string, context: { e: CompositionEvent }) => {\n      isComposition.value = true;\n      inputProps.value?.onCompositionstart?.(value, context);\n    };\n\n    const onInputCompositionend = (value: string, context: { e: CompositionEvent }) => {\n      isComposition.value = false;\n      inputProps.value?.onCompositionend?.(value, context);\n    };\n\n    const onClick: TdInputProps['onClick'] = (ctx) => {\n      if (isDisabled.value) return;\n      isFocused.value = true;\n      tagInputRef.value?.focus();\n      props.onClick?.(ctx);\n    };\n\n    const onClearClick = (context: { e: MouseEvent }) => {\n      clearAll(context);\n      setTInputValue('', { e: context.e, trigger: 'clear' });\n      props.onClear?.(context);\n    };\n\n    const onMouseEnter: InputProps['onMouseenter'] = (context) => {\n      addHover(context);\n      scrollToRightOnEnter();\n    };\n\n    const onMouseLeave: InputProps['onMouseleave'] = (context) => {\n      cancelHover(context);\n      scrollToLeftOnLeave();\n    };\n\n    const onInnerFocus: InputProps['onFocus'] = (inputValue: string, context: { e: MouseEvent }) => {\n      if (isFocused.value) return;\n      isFocused.value = true;\n      props.onFocus?.(tagValue.value, { e: context.e, inputValue });\n    };\n\n    const onInnerBlur: InputProps['onBlur'] = (inputValue: string, context: { e: MouseEvent }) => {\n      isFocused.value = false;\n      setTInputValue('', { e: context.e, trigger: 'blur' });\n      props.onBlur?.(tagValue.value, { e: context.e, inputValue });\n    };\n\n    const onInnerChange: StrInputProps['onChange'] = (val, context) => {\n      setTInputValue(val, { ...context, trigger: 'input' });\n    };\n\n    watch(\n      () => isScrollable.value,\n      (v) => {\n        if (props.excessTagsDisplayType !== 'scroll') return;\n        const scrollElementClass = `${classPrefix.value}-input__prefix`;\n        const scrollElement = tagInputRef.value.$el.querySelector(`.${scrollElementClass}`);\n        if (v) scrollElement.classList.add(`${scrollElementClass}--scrollable`);\n        else scrollElement.classList.remove(`${scrollElementClass}--scrollable`);\n      },\n    );\n\n    return () => {\n      const suffixIconNode = showClearIcon.value ? (\n        <CloseCircleFilledIcon class={CLEAR_CLASS.value} onClick={onClearClick} />\n      ) : (\n        renderTNodeJSX('suffixIcon')\n      );\n      const prefixIconNode = renderTNodeJSX('prefixIcon');\n      const suffixClass = `${classPrefix.value}-tag-input__with-suffix-icon`;\n      if (suffixIconNode && !classes.value.includes(suffixClass)) {\n        classes.value.push(suffixClass);\n      }\n      // 自定义 Tag 节点\n      const displayNode = renderTNodeJSX('valueDisplay', {\n        params: {\n          value: tagValue.value,\n          onClose: (index: number) => onClose({ index }),\n        },\n      });\n      // 左侧文本\n      const label = renderTNodeJSX('label', { silent: true });\n      // const inputProps = inputProps as TdTagInputProps['inputProps'];\n      const readonly = isReadonly.value || inputProps.value?.readonly;\n\n      const inputEvents = useEventForward(inputProps.value, {\n        onWheel: onWheel,\n        onChange: onInnerChange,\n        onPaste: onPaste.value,\n        onEnter: onInputEnter,\n        onKeyup: onInputBackspaceKeyUp,\n        onKeydown: onInputBackspaceKeyDown,\n        onMouseenter: onMouseEnter,\n        onMouseleave: onMouseLeave,\n        onFocus: onInnerFocus,\n        onBlur: onInnerBlur,\n        onClick: onClick,\n        onCompositionstart: onInputCompositionstart,\n        onCompositionend: onInputCompositionend,\n      });\n\n      return (\n        <TInput\n          ref={tagInputRef}\n          v-slots={{\n            suffix: slots.suffix,\n          }}\n          borderless={borderless.value}\n          readonly={readonly}\n          showInput={!readonly || !tagValue.value || !tagValue.value?.length}\n          value={tInputValue.value}\n          autoWidth={true} // 控制input_inner的宽度 设置为true让内部input不会提前换行\n          size={size.value}\n          disabled={isDisabled.value}\n          label={() => renderLabel({ displayNode, label })}\n          class={classes.value}\n          tips={tips.value}\n          status={status.value}\n          placeholder={tagInputPlaceholder.value}\n          suffix={suffix.value}\n          suffixIcon={() => suffixIconNode}\n          prefixIcon={() => prefixIconNode}\n          keepWrapperWidth={!autoWidth.value}\n          {...inputEvents.value}\n        />\n      );\n    };\n  },\n});\n"],"names":["useComponentClassName","NAME_CLASS","usePrefixClass","CLEAR_CLASS","BREAK_LINE_CLASS","defineComponent","name","props","setup","slots","_ref","renderTNodeJSX","useTNodeJSX","_useComponentClassNam","_useGlobalIcon","useGlobalIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","isDisabled","useDisabled","isReadonly","useReadonly","_toRefs","toRefs","inputValue","inputProps","borderless","size","tips","status","suffix","autoWidth","onPaste","_useDefaultValue","useDefaultValue","defaultInputValue","onInputChange","_useDefaultValue2","_slicedToArray","tInputValue","setTInputValue","_toRefs2","excessTagsDisplayType","clearable","placeholder","_useHover","useHover","readonly","value","disabled","onMouseenter","onMouseleave","isHover","addHover","cancelHover","isComposition","ref","_useConfig","useConfig","classPrefix","isFocused","_useDragSorter","useDragSorter","_objectSpread","sortOnDraggable","dragSort","onDragOverCheck","x","targetClassNameRegExp","RegExp","concat","getDragProps","_useTagScroll","useTagScroll","scrollToRight","onWheel","scrollToRightOnEnter","scrollToLeftOnLeave","tagInputRef","isScrollable","_useTagList","useTagList","reactive","tagValue","onInnerEnter","onInputBackspaceKeyUp","onInputBackspaceKeyDown","clearAll","renderLabel","onClose","classes","computed","isEmpty","isArray","length","_defineProperty","tagInputPlaceholder","_tagValue$value","showClearIcon","_tagValue$value2","Boolean","onInputEnter","context","_context$e","_context$e$preventDef","e","preventDefault","call","trigger","nextTick","onInputCompositionstart","_inputProps$value","_inputProps$value$onC","onCompositionstart","onInputCompositionend","_inputProps$value2","_inputProps$value2$on","onCompositionend","onClick","ctx","_tagInputRef$value","_props2$onClick","focus","onClearClick","_props2$onClear","onClear","onMouseEnter","onMouseLeave","onInnerFocus","_props2$onFocus","onFocus","onInnerBlur","_props2$onBlur","onBlur","onInnerChange","val","watch","v","scrollElementClass","scrollElement","$el","querySelector","classList","add","remove","_inputProps$value3","_tagValue$value3","suffixIconNode","_createVNode","prefixIconNode","suffixClass","includes","push","displayNode","params","index","label","silent","inputEvents","useEventForward","onChange","onEnter","onKeyup","onKeydown","TInput","_mergeProps","suffixIcon","prefixIcon"],"mappings":"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"}