autocomplete.mjs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { CHANGE_EVENT, INPUT_EVENT, UPDATE_MODEL_EVENT } from "../../../constants/event.mjs";
  2. import { isNumber, isObject, isString } from "../../../utils/types.mjs";
  3. import { buildProps, definePropType } from "../../../utils/vue/props/runtime.mjs";
  4. import { NOOP } from "../../../utils/functions.mjs";
  5. import { useTooltipContentProps } from "../../tooltip/src/content.mjs";
  6. import { inputProps } from "../../input/src/input.mjs";
  7. //#region ../../packages/components/autocomplete/src/autocomplete.ts
  8. /**
  9. * @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead.
  10. */
  11. const autocompleteProps = buildProps({
  12. ...inputProps,
  13. valueKey: {
  14. type: String,
  15. default: "value"
  16. },
  17. modelValue: {
  18. type: [String, Number],
  19. default: ""
  20. },
  21. debounce: {
  22. type: Number,
  23. default: 300
  24. },
  25. placement: {
  26. type: definePropType(String),
  27. values: [
  28. "top",
  29. "top-start",
  30. "top-end",
  31. "bottom",
  32. "bottom-start",
  33. "bottom-end"
  34. ],
  35. default: "bottom-start"
  36. },
  37. fetchSuggestions: {
  38. type: definePropType([Function, Array]),
  39. default: NOOP
  40. },
  41. popperClass: useTooltipContentProps.popperClass,
  42. popperStyle: useTooltipContentProps.popperStyle,
  43. triggerOnFocus: {
  44. type: Boolean,
  45. default: true
  46. },
  47. selectWhenUnmatched: Boolean,
  48. hideLoading: Boolean,
  49. teleported: useTooltipContentProps.teleported,
  50. appendTo: useTooltipContentProps.appendTo,
  51. highlightFirstItem: Boolean,
  52. fitInputWidth: Boolean,
  53. loopNavigation: {
  54. type: Boolean,
  55. default: true
  56. }
  57. });
  58. const autocompleteEmits = {
  59. [UPDATE_MODEL_EVENT]: (value) => isString(value) || isNumber(value),
  60. [INPUT_EVENT]: (value) => isString(value) || isNumber(value),
  61. [CHANGE_EVENT]: (value) => isString(value) || isNumber(value),
  62. focus: (evt) => evt instanceof FocusEvent,
  63. blur: (evt) => evt instanceof FocusEvent,
  64. clear: () => true,
  65. select: (item) => isObject(item)
  66. };
  67. //#endregion
  68. export { autocompleteEmits, autocompleteProps };
  69. //# sourceMappingURL=autocomplete.mjs.map