{"version":3,"file":"AutoComplete.mjs","sources":["../../../../../../packages/components/auto-complete/src/AutoComplete.tsx"],"sourcesContent":["import type { SlotsType, VNode } from 'vue';\nimport { devWarning, flattenChildren, isValidElement } from '@antdv/utils';\nimport { omit } from 'lodash-es';\nimport { defineComponent, ref } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\n\nimport Select from '../../select';\n\nimport Option from './Option';\nimport { autoCompleteProps } from './props';\n\nfunction isSelectOptionOrSelectOptGroup(child: any): boolean {\n  return child?.type?.isSelectOption || child?.type?.isSelectOptGroup;\n}\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AAutoComplete',\n  inheritAttrs: false,\n  props: autoCompleteProps(),\n  // emits: ['change', 'select', 'focus', 'blur'],\n  slots: Object as SlotsType<{\n    option: any;\n    // deprecated, should use props `options` instead, not slot\n    options: any\n    default: any\n    notFoundContent: any\n    dataSource: any\n    clearIcon: any\n  }>,\n  setup(props, { slots, attrs, expose }) {\n    devWarning(\n      !('dataSource' in slots),\n      'AutoComplete',\n      '`dataSource` slot is deprecated, please use props `options` instead.',\n    );\n    devWarning(\n      !('options' in slots),\n      'AutoComplete',\n      '`options` slot is deprecated, please use props `options` instead.',\n    );\n    devWarning(\n      !props.dropdownClassName,\n      'AutoComplete',\n      '`dropdownClassName` is deprecated, please use `popupClassName` instead.',\n    );\n    const selectRef = ref();\n    const getInputElement = () => {\n      const children = flattenChildren(slots.default?.());\n      const element = children.length ? children[0] : undefined;\n      return element;\n    };\n\n    const focus = () => {\n      selectRef.value?.focus();\n    };\n\n    const blur = () => {\n      selectRef.value?.blur();\n    };\n\n    expose({\n      focus,\n      blur,\n    });\n    const { prefixCls } = useConfigInject('select', props);\n    return () => {\n      const { size, dataSource, notFoundContent = slots.notFoundContent?.() } = props;\n      let optionChildren: VNode[];\n      const { class: className } = attrs;\n      const cls = {\n        [className as string]: !!className,\n        [`${prefixCls.value}-lg`]: size === 'large',\n        [`${prefixCls.value}-sm`]: size === 'small',\n        [`${prefixCls.value}-show-search`]: true,\n        [`${prefixCls.value}-auto-complete`]: true,\n      };\n      if (props.options === undefined) {\n        const childArray = slots.dataSource?.() || slots.options?.() || [];\n        if (childArray.length && isSelectOptionOrSelectOptGroup(childArray[0])) {\n          optionChildren = childArray;\n        } else {\n          optionChildren = dataSource\n            ? dataSource.map((item: any) => {\n                if (isValidElement(item))\n                  return item;\n\n                switch (typeof item) {\n                  case 'string':\n                    return (\n                      <Option key={item} value={item}>\n                        {item}\n                      </Option>\n                    );\n                  case 'object':\n                    return (\n                      <Option key={item.value} value={item.value}>\n                        {item.text}\n                      </Option>\n                    );\n                  default:\n                    throw new Error(\n                      'AutoComplete[dataSource] only supports type `string[] | Object[]`.',\n                    );\n                }\n              })\n            : [];\n        }\n      }\n\n      const selectProps = omit(\n        {\n          ...props,\n          ...(attrs as any),\n          mode: Select.SECRET_COMBOBOX_MODE_DO_NOT_USE,\n          // optionLabelProp,\n          getInputElement,\n          notFoundContent,\n          // placeholder: '',\n          class: cls,\n          popupClassName: props.popupClassName || props.dropdownClassName,\n          ref: selectRef,\n        },\n        ['dataSource', 'loading'],\n      );\n      return (\n        <Select {...selectProps} v-slots={omit(slots, ['default', 'dataSource', 'options'])}>\n          {optionChildren}\n        </Select>\n      );\n    };\n  },\n});\n"],"names":["isSelectOptionOrSelectOptGroup","child","type","isSelectOption","isSelectOptGroup","compatConfig","MODE","name","inheritAttrs","props","autoCompleteProps","slots","Object","setup","attrs","expose","devWarning","dropdownClassName","selectRef","ref","getInputElement","children","flattenChildren","default","element","length","undefined","focus","value","blur","prefixCls","useConfigInject","size","dataSource","notFoundContent","optionChildren","class","className","cls","options","childArray","map","item","isValidElement","_createVNode","Option","text","Error","selectProps","omit","mode","Select","SECRET_COMBOBOX_MODE_DO_NOT_USE","popupClassName"],"mappings":"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"}