{"version":3,"file":"Search.mjs","sources":["../../../../../../packages/components/input/src/Search.tsx"],"sourcesContent":["import type { ChangeEvent, CompositionEventHandler, MouseEventHandler } from '@antdv/types';\nimport type { PropType } from 'vue';\nimport { SearchOutlined } from '@ant-design/icons-vue';\nimport { classNames, cloneElement, omit, PropTypes } from '@antdv/utils';\nimport { isPlainObject } from 'lodash-es';\nimport { computed, defineComponent, shallowRef } from 'vue';\nimport Button from '../../button';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport Input from './Input';\nimport { inputProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AInputSearch',\n  inheritAttrs: false,\n  props: {\n    ...inputProps(),\n    inputPrefixCls: String,\n    // 不能设置默认值 https://github.com/vueComponent/ant-design-vue/issues/1916\n    enterButton: PropTypes.any,\n    onSearch: {\n      type: Function as PropType<\n        (value: string, event?: ChangeEvent | MouseEvent | KeyboardEvent) => void\n      >,\n    },\n  },\n  setup(props, { slots, attrs, expose, emit }) {\n    const inputRef = shallowRef();\n    const composedRef = shallowRef(false);\n    const focus = () => {\n      inputRef.value?.focus();\n    };\n    const blur = () => {\n      inputRef.value?.blur();\n    };\n    expose({\n      focus,\n      blur,\n    });\n\n    const onChange = (e: ChangeEvent) => {\n      emit('update:value', (e.target as HTMLInputElement).value);\n      if (e && e.target && e.type === 'click')\n        emit('search', e.target.value, e);\n\n      emit('change', e);\n    };\n\n    const onMousedown: MouseEventHandler = (e) => {\n      if (document.activeElement === inputRef.value?.input)\n        e.preventDefault();\n    };\n\n    const onSearch = (e: MouseEvent | KeyboardEvent) => {\n      emit('search', inputRef.value?.input?.stateValue, e);\n    };\n\n    const onPressEnter = (e: KeyboardEvent) => {\n      if (composedRef.value || props.loading)\n        return;\n\n      onSearch(e);\n    };\n\n    const handleOnCompositionStart: CompositionEventHandler = (e) => {\n      composedRef.value = true;\n      emit('compositionstart', e);\n    };\n\n    const handleOnCompositionEnd: CompositionEventHandler = (e) => {\n      composedRef.value = false;\n      emit('compositionend', e);\n    };\n    const { prefixCls, getPrefixCls, direction, size } = useConfigInject('input-search', props);\n    const inputPrefixCls = computed(() => getPrefixCls('input', props.inputPrefixCls));\n    return () => {\n      const {\n        disabled,\n        loading,\n        addonAfter = slots.addonAfter?.(),\n        suffix = slots.suffix?.(),\n        ...restProps\n      } = props;\n      let { enterButton = slots.enterButton?.() ?? false } = props;\n      enterButton = enterButton || enterButton === '';\n      const searchIcon = typeof enterButton === 'boolean' ? <SearchOutlined /> : null;\n      const btnClassName = `${prefixCls.value}-button`;\n\n      const enterButtonAsElement = Array.isArray(enterButton) ? enterButton[0] : enterButton;\n      let button: any;\n      const isAntdButton\n        = enterButtonAsElement.type\n        && isPlainObject(enterButtonAsElement.type)\n        && enterButtonAsElement.type.__ANT_BUTTON;\n      if (isAntdButton || enterButtonAsElement.tagName === 'button') {\n        button = cloneElement(\n          enterButtonAsElement,\n          {\n            onMousedown,\n            onClick: onSearch,\n            key: 'enterButton',\n            ...(isAntdButton\n              ? {\n                  class: btnClassName,\n                  size: size.value,\n                }\n              : {}),\n          },\n          false,\n        );\n      } else {\n        const iconOnly = searchIcon && !enterButton;\n        button = (\n          <Button\n            class={btnClassName}\n            type={enterButton ? 'primary' : undefined}\n            size={size.value}\n            disabled={disabled}\n            key=\"enterButton\"\n            onMousedown={onMousedown}\n            onClick={onSearch}\n            loading={loading}\n            icon={iconOnly ? searchIcon : null}\n          >\n            {iconOnly ? null : searchIcon || enterButton}\n          </Button>\n        );\n      }\n      if (addonAfter)\n        button = [button, addonAfter];\n\n      const cls = classNames(\n        prefixCls.value,\n        {\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n          [`${prefixCls.value}-${size.value}`]: !!size.value,\n          [`${prefixCls.value}-with-button`]: !!enterButton,\n        },\n        attrs.class,\n      );\n      return (\n        <Input\n          ref={inputRef}\n          {...omit(restProps, ['onUpdate:value', 'onSearch', 'enterButton'])}\n          {...attrs}\n          onPressEnter={onPressEnter}\n          onCompositionstart={handleOnCompositionStart}\n          onCompositionend={handleOnCompositionEnd}\n          size={size.value}\n          prefixCls={inputPrefixCls.value}\n          addonAfter={button}\n          suffix={suffix}\n          onChange={onChange}\n          class={cls}\n          disabled={disabled}\n          v-slots={slots}\n        />\n      );\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","inputProps","inputPrefixCls","String","enterButton","PropTypes","any","onSearch","type","Function","setup","slots","attrs","expose","emit","inputRef","shallowRef","composedRef","focus","value","blur","onChange","e","target","onMousedown","document","activeElement","input","preventDefault","stateValue","onPressEnter","loading","handleOnCompositionStart","handleOnCompositionEnd","prefixCls","getPrefixCls","direction","size","useConfigInject","computed","disabled","addonAfter","suffix","restProps","searchIcon","_createVNode","SearchOutlined","btnClassName","enterButtonAsElement","Array","isArray","button","isAntdButton","isPlainObject","__ANT_BUTTON","tagName","cloneElement","onClick","key","class","iconOnly","Button","undefined","default","cls","classNames","Input","omit"],"mappings":"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"}