{"version":3,"file":"autocomplete.mjs","sources":["../../../../../../packages/components/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { NOOP } from '@vue/shared'\r\nimport { buildProps, definePropType } from '@sgui-plus/utils/props'\r\nimport { useSizeProp } from '@sgui-plus/hooks'\r\n\r\nimport { useTooltipContentProps } from '@sgui-plus/components/tooltip'\r\nimport { UPDATE_MODEL_EVENT } from '@sgui-plus/utils/constants'\r\n\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type Autocomplete from './index.vue'\r\nimport type { Placement } from '@sgui-plus/components/popper'\r\n\r\nexport type Awaitable<T> = Promise<T> | T\r\nexport type AutocompleteData = Record<string, any>[]\r\nexport type AutocompleteFetchSuggestionsCallback = (\r\n  data: AutocompleteData\r\n) => void\r\nexport type AutocompleteFetchSuggestions =\r\n  | ((\r\n      queryString: string,\r\n      cb: AutocompleteFetchSuggestionsCallback\r\n    ) => Awaitable<AutocompleteData> | void)\r\n  | AutocompleteData\r\n\r\nexport const autocompleteProps = {\r\n  transfer: useTooltipContentProps.transfer,\r\n  ...buildProps({\r\n    valueKey: {\r\n      type: String,\r\n      default: 'value',\r\n    },\r\n    modelValue: {\r\n      type: [String, Number],\r\n      default: '',\r\n    },\r\n    debounce: {\r\n      type: Number,\r\n      default: 300,\r\n    },\r\n    placement: {\r\n      type: definePropType<Placement>(String),\r\n      values: [\r\n        'top',\r\n        'top-start',\r\n        'top-end',\r\n        'bottom',\r\n        'bottom-start',\r\n        'bottom-end',\r\n      ],\r\n      default: 'bottom-start',\r\n    },\r\n    fetchSuggestions: {\r\n      type: definePropType<AutocompleteFetchSuggestions>([Function, Array]),\r\n      // type: Function as definePropType<(queryString: string, cb: (data: any[]) => void) => void>,\r\n      default: NOOP,\r\n    },\r\n    triggerOnFocus: {\r\n      type: Boolean,\r\n      default: true,\r\n    },\r\n    selectWhenUnmatched: {\r\n      type: Boolean,\r\n      default: false,\r\n    },\r\n    hideLoading: {\r\n      type: Boolean,\r\n      default: false,\r\n    },\r\n    highlightFirstItem: {\r\n      type: Boolean,\r\n      default: false,\r\n    },\r\n    scrollwidth: String,\r\n    scrollheight: {\r\n      type: String,\r\n      default: '280px'\r\n    },\r\n    size: useSizeProp,\r\n  } as const),\r\n}as const\r\nexport type AutocompleteProps = ExtractPropTypes<typeof autocompleteProps>\r\n\r\nexport const autocompleteEmits = [\r\n    UPDATE_MODEL_EVENT,\r\n    'onInput',\r\n    'onChange',\r\n    'onFocus',\r\n    'onBlur',\r\n    'onClear',\r\n    'onSelect',\r\n  ]\r\n\r\n\r\nexport type AutocompleteEmits = typeof autocompleteEmits\r\n\r\nexport type AutocompleteInstance = InstanceType<typeof Autocomplete>\r\n"],"names":[],"mappings":";;;;;;;;AAKY,MAAC,iBAAiB,GAAG;AACjC,EAAE,QAAQ,EAAE,sBAAsB,CAAC,QAAQ;AAC3C,EAAE,GAAG,UAAU,CAAC;AAChB,IAAI,QAAQ,EAAE;AACd,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,OAAO,EAAE,OAAO;AACtB,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5B,MAAM,OAAO,EAAE,EAAE;AACjB,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,OAAO,EAAE,GAAG;AAClB,KAAK;AACL,IAAI,SAAS,EAAE;AACf,MAAM,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAClC,MAAM,MAAM,EAAE;AACd,QAAQ,KAAK;AACb,QAAQ,WAAW;AACnB,QAAQ,SAAS;AACjB,QAAQ,QAAQ;AAChB,QAAQ,cAAc;AACtB,QAAQ,YAAY;AACpB,OAAO;AACP,MAAM,OAAO,EAAE,cAAc;AAC7B,KAAK;AACL,IAAI,gBAAgB,EAAE;AACtB,MAAM,IAAI,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7C,MAAM,OAAO,EAAE,IAAI;AACnB,KAAK;AACL,IAAI,cAAc,EAAE;AACpB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,OAAO,EAAE,IAAI;AACnB,KAAK;AACL,IAAI,mBAAmB,EAAE;AACzB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,OAAO,EAAE,KAAK;AACpB,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,OAAO,EAAE,KAAK;AACpB,KAAK;AACL,IAAI,kBAAkB,EAAE;AACxB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,OAAO,EAAE,KAAK;AACpB,KAAK;AACL,IAAI,WAAW,EAAE,MAAM;AACvB,IAAI,YAAY,EAAE;AAClB,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,OAAO,EAAE,OAAO;AACtB,KAAK;AACL,IAAI,IAAI,EAAE,WAAW;AACrB,GAAG,CAAC;AACJ,EAAE;AACU,MAAC,iBAAiB,GAAG;AACjC,EAAE,kBAAkB;AACpB,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,SAAS;AACX,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,UAAU;AACZ;;;;"}