{"version":3,"file":"autocomplete.mjs","sources":["../../../../../../packages/components/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { NOOP } from '@vue/shared'\nimport {\n  buildProps,\n  definePropType,\n  iconPropType,\n  isObject,\n  isString,\n} from '@bigin/utils'\nimport { useTooltipContentProps } from '@bigin/components/tooltip'\nimport { CHANGE_EVENT, INPUT_EVENT, UPDATE_MODEL_EVENT } from '@bigin/constants'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type Autocomplete from './autocomplete.vue'\nimport type { Placement } from '@bigin/components/popper'\nimport type { Awaitable } from '@bigin/utils'\n\nexport type AutocompleteData = Record<string, any>[]\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 = buildProps({\n  valueKey: {\n    type: String,\n    default: 'value',\n  },\n  modelValue: {\n    type: [String, Number],\n    default: '',\n  },\n  debounce: {\n    type: Number,\n    default: 300,\n  },\n  placement: {\n    type: definePropType<Placement>(String),\n    values: [\n      'top',\n      'top-start',\n      'top-end',\n      'bottom',\n      'bottom-start',\n      'bottom-end',\n    ],\n    default: 'bottom-start',\n  },\n  fetchSuggestions: {\n    type: definePropType<AutocompleteFetchSuggestions>([Function, Array]),\n    default: NOOP,\n  },\n  popperClass: {\n    type: String,\n    default: '',\n  },\n  triggerOnFocus: {\n    type: Boolean,\n    default: true,\n  },\n  selectWhenUnmatched: {\n    type: Boolean,\n    default: false,\n  },\n  hideLoading: {\n    type: Boolean,\n    default: false,\n  },\n  label: {\n    type: String,\n  },\n  teleported: useTooltipContentProps.teleported,\n  highlightFirstItem: {\n    type: Boolean,\n    default: false,\n  },\n  fitInputWidth: {\n    type: Boolean,\n    default: false,\n  },\n  suffixIcon: {\n    type: iconPropType,\n    default: '',\n  },\n  prefixIcon: {\n    type: iconPropType,\n    default: '',\n  },\n  suffixClass: {\n    type: String,\n    default: '',\n  },\n  prefixClass: {\n    type: String,\n    default: '',\n  },\n  prependClass: {\n    type: String,\n    default: '',\n  },\n  appendClass: {\n    type: String,\n    default: '',\n  },\n  inputClass: {\n    type: String,\n    default: '',\n  },\n  rounded: {\n    type: Boolean,\n    default: false,\n  },\n  large: {\n    type: Boolean,\n    default: false,\n  },\n  small: {\n    type: Boolean,\n    default: false,\n  },\n} as const)\nexport type AutocompleteProps = ExtractPropTypes<typeof autocompleteProps>\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: { value: any }) => isObject(item),\n}\nexport type AutocompleteEmits = typeof autocompleteEmits\n\nexport type AutocompleteInstance = InstanceType<typeof Autocomplete>\n"],"names":[],"mappings":"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"}