{"version":3,"file":"autocomplete2.mjs","sources":["../../../../../../../packages/components/autocomplete/src/autocomplete.ts"],"sourcesContent":["import {\n  NOOP,\n  buildProps,\n  definePropType,\n  isNumber,\n  isObject,\n  isString,\n} from '@hd-front-end/utils'\nimport { useTooltipContentProps } from '@hd-front-end/components/tooltip'\nimport {\n  CHANGE_EVENT,\n  INPUT_EVENT,\n  UPDATE_MODEL_EVENT,\n} from '@hd-front-end/constants'\nimport { inputProps } from '@hd-front-end/components/input'\n\nimport type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'\nimport type Autocomplete from './autocomplete.vue'\nimport type { Placement } from '@hd-front-end/components/popper'\nimport type { Awaitable } from '@hd-front-end/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  ...inputProps,\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: 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  /**\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: definePropType<AutocompleteFetchSuggestions>([Function, Array]),\n    default: NOOP,\n  },\n  /**\n   * @description custom class name for autocomplete's dropdown\n   */\n  popperClass: useTooltipContentProps.popperClass,\n  /**\n   * @description custom style for autocomplete's dropdown\n   */\n  popperStyle: useTooltipContentProps.popperStyle,\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: Boolean,\n  /**\n   * @description whether to hide the loading icon in remote search\n   */\n  hideLoading: Boolean,\n  /**\n   * @description whether select dropdown is teleported to the body\n   */\n  teleported: useTooltipContentProps.teleported,\n  /**\n   * @description which select dropdown appends to\n   */\n  appendTo: useTooltipContentProps.appendTo,\n  /**\n   * @description whether to highlight first item in remote search suggestions by default\n   */\n  highlightFirstItem: Boolean,\n  /**\n   * @description whether the width of the dropdown is the same as the input\n   */\n  fitInputWidth: Boolean,\n  /**\n   * @description whether keyboard navigation loops from end to start\n   */\n  loopNavigation: {\n    type: Boolean,\n    default: true,\n  },\n} as const)\nexport type AutocompleteProps = ExtractPropTypes<typeof autocompleteProps>\nexport type AutocompletePropsPublic = __ExtractPublicPropTypes<\n  typeof autocompleteProps\n>\n\nexport const autocompleteEmits = {\n  [UPDATE_MODEL_EVENT]: (value: string | number) =>\n    isString(value) || isNumber(value),\n  [INPUT_EVENT]: (value: string | number) => isString(value) || isNumber(value),\n  [CHANGE_EVENT]: (value: string | number) =>\n    isString(value) || isNumber(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}\nexport type AutocompleteEmits = typeof autocompleteEmits\n\nexport type AutocompleteInstance = InstanceType<typeof Autocomplete> & unknown\n"],"names":[],"mappings":";;;;;;;AAgCO,MAAM,oBAAoB,UAAW,CAAA;AAAA,EAC1C,GAAG,UAAA;AAAA,EAIH,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EAIA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACX;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA0B,MAAM,CAAA;AAAA,IACtC,MAAQ,EAAA;AAAA,MACN,KAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,KACF;AAAA,IACA,OAAS,EAAA,cAAA;AAAA,GACX;AAAA,EAIA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,cAAA,CAA6C,CAAC,QAAA,EAAU,KAAK,CAAC,CAAA;AAAA,IACpE,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,aAAa,sBAAuB,CAAA,WAAA;AAAA,EAIpC,aAAa,sBAAuB,CAAA,WAAA;AAAA,EAIpC,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,mBAAqB,EAAA,OAAA;AAAA,EAIrB,WAAa,EAAA,OAAA;AAAA,EAIb,YAAY,sBAAuB,CAAA,UAAA;AAAA,EAInC,UAAU,sBAAuB,CAAA,QAAA;AAAA,EAIjC,kBAAoB,EAAA,OAAA;AAAA,EAIpB,aAAe,EAAA,OAAA;AAAA,EAIf,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AACF,CAAU,EAAA;AAMH,MAAM,iBAAoB,GAAA;AAAA,EAC/B,CAAC,qBAAqB,CAAC,KAAA,KACrB,SAAS,KAAK,CAAA,IAAK,SAAS,KAAK,CAAA;AAAA,EACnC,CAAC,cAAc,CAAC,KAAA,KAA2B,SAAS,KAAK,CAAA,IAAK,SAAS,KAAK,CAAA;AAAA,EAC5E,CAAC,eAAe,CAAC,KAAA,KACf,SAAS,KAAK,CAAA,IAAK,SAAS,KAAK,CAAA;AAAA,EACnC,KAAA,EAAO,CAAC,GAAA,KAAoB,GAAe,YAAA,UAAA;AAAA,EAC3C,IAAA,EAAM,CAAC,GAAA,KAAoB,GAAe,YAAA,UAAA;AAAA,EAC1C,OAAO,MAAM,IAAA;AAAA,EACb,MAAQ,EAAA,CAAC,IAA8B,KAAA,QAAA,CAAS,IAAI,CAAA;AACtD;;;;"}