{"version":3,"file":"autocomplete2.mjs","sources":["../../../../../../packages/components/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { NOOP } from '@vue/shared'\nimport {\n  isString,\n  isObject,\n  isValidComponentSize,\n} from '@hongluan-ui/utils'\nimport { useTooltipContentProps } from '@hongluan-ui/components/tooltip'\nimport { CHANGE_EVENT, INPUT_EVENT, UPDATE_MODEL_EVENT } from '@hongluan-ui/constants'\nimport { useAriaProps } from '@hongluan-ui/hooks'\n\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { Awaitable } from '@hongluan-ui/utils'\nimport type { Placement } from '@hongluan-ui/components/popper'\nimport type { ComponentSize } from '@hongluan-ui/constants'\nimport type Autocomplete from './autocomplete.vue'\n\nexport type AutocompleteData = Record<string, any>[]\n\nexport type AutocompleteFetchSuggestionsCallback = (\n  data: AutocompleteData\n) => void\nexport type AutocompleteFetchSuggestions =\n  | ((\n    queryString: string,\n    cb: AutocompleteFetchSuggestionsCallback\n  ) => Awaitable<AutocompleteData> | void)\n  | AutocompleteData\n\nexport const autocompleteProps = {\n  /**\n   * @description key name of the input suggestion object for display\n   */\n  valueKey: {\n    type: String,\n    default: 'value',\n  },\n  /**\n   * @description binding value\n   */\n  modelValue: {\n    type: [String, Number],\n    default: '',\n  },\n  /**\n   * @description debounce delay when typing, in milliseconds\n   */\n  debounce: {\n    type: Number,\n    default: 300,\n  },\n  /**\n   * @description placement of the popup menu\n   */\n  placement: {\n    type: String as PropType<Placement>,\n    validator: (val: string): boolean => {\n      return ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end'].includes(val)\n    },\n    default: 'bottom-start',\n  },\n  /**\n   * @description a method to fetch input suggestions. When suggestions are ready, invoke `callback(data:[])` to return them to Autocomplete\n   */\n  fetchSuggestions: {\n    type: [Function, Array] as PropType<AutocompleteFetchSuggestions>,\n    default: NOOP,\n  },\n  /**\n   * @description custom class name for autocomplete's dropdown\n   */\n  popperClass: {\n    type: String,\n    default: '',\n  },\n  /**\n   * @description whether show suggestions when input focus\n   */\n  triggerOnFocus: {\n    type: Boolean,\n    default: true,\n  },\n  /**\n   * @description whether to emit a `select` event on enter when there is no autocomplete match\n   */\n  selectWhenUnmatched: {\n    type: Boolean,\n    default: false,\n  },\n  /**\n   * @description whether to hide the loading icon in remote search\n   */\n  hideLoading: {\n    type: Boolean,\n    default: false,\n  },\n  popperAppendToBody: {\n    type: Boolean,\n    default: undefined,\n  },\n  teleported: useTooltipContentProps.teleported,\n  /**\n   * @description whether to highlight first item in remote search suggestions by default\n   */\n  highlightFirstItem: {\n    type: Boolean,\n    default: false,\n  },\n  block: {\n    type: Boolean,\n    default: false,\n  },\n  size: {\n    type: String as PropType<ComponentSize>,\n    validator: isValidComponentSize,\n  },\n  /**\n   * @description whether to show clear button\n   */\n  clearable: {\n    type: Boolean,\n    default: false,\n  },\n  disabled: Boolean,\n  fill: Boolean,\n  thin: Boolean,\n  popperOffset: {\n    type: Number,\n    default: 4,\n  },\n  fitInputWidth: {\n    type: Boolean,\n    default: false,\n  },\n  transition: {\n    type: String,\n    default: 'dropdown',\n  },\n  /**\n   * @description same as `name` in native input\n   */\n  name: String,\n  ...useAriaProps(['ariaLabel']),\n}\n\nexport const autocompleteEmits = {\n  [UPDATE_MODEL_EVENT]: (value: string) => isString(value),\n  [INPUT_EVENT]: (value: string) => isString(value),\n  [CHANGE_EVENT]: (value: string) => isString(value),\n  focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n  blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n  clear: () => true,\n  select: (item: Record<string, any>) => isObject(item),\n}\n\nexport type AutocompleteProps = ExtractPropTypes<typeof autocompleteProps>\nexport type AutocompleteEmits = typeof autocompleteEmits\nexport type AutocompleteInstance = InstanceType<typeof Autocomplete>\n"],"names":[],"mappings":"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"}