You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.0 KiB
88 lines
2.0 KiB
2 months ago
|
import '../../../utils/index.mjs';
|
||
|
import '../../tooltip/index.mjs';
|
||
|
import '../../../hooks/index.mjs';
|
||
|
import '../../../constants/index.mjs';
|
||
|
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
||
|
import { NOOP, isString, isObject } from '@vue/shared';
|
||
|
import { useTooltipContentProps } from '../../tooltip/src/content.mjs';
|
||
|
import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
|
||
|
import { UPDATE_MODEL_EVENT, INPUT_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
|
||
|
|
||
|
const autocompleteProps = buildProps({
|
||
|
valueKey: {
|
||
|
type: String,
|
||
|
default: "value"
|
||
|
},
|
||
|
modelValue: {
|
||
|
type: [String, Number],
|
||
|
default: ""
|
||
|
},
|
||
|
debounce: {
|
||
|
type: Number,
|
||
|
default: 300
|
||
|
},
|
||
|
placement: {
|
||
|
type: definePropType(String),
|
||
|
values: [
|
||
|
"top",
|
||
|
"top-start",
|
||
|
"top-end",
|
||
|
"bottom",
|
||
|
"bottom-start",
|
||
|
"bottom-end"
|
||
|
],
|
||
|
default: "bottom-start"
|
||
|
},
|
||
|
fetchSuggestions: {
|
||
|
type: definePropType([Function, Array]),
|
||
|
default: NOOP
|
||
|
},
|
||
|
popperClass: {
|
||
|
type: String,
|
||
|
default: ""
|
||
|
},
|
||
|
triggerOnFocus: {
|
||
|
type: Boolean,
|
||
|
default: true
|
||
|
},
|
||
|
selectWhenUnmatched: {
|
||
|
type: Boolean,
|
||
|
default: false
|
||
|
},
|
||
|
hideLoading: {
|
||
|
type: Boolean,
|
||
|
default: false
|
||
|
},
|
||
|
teleported: useTooltipContentProps.teleported,
|
||
|
highlightFirstItem: {
|
||
|
type: Boolean,
|
||
|
default: false
|
||
|
},
|
||
|
fitInputWidth: {
|
||
|
type: Boolean,
|
||
|
default: false
|
||
|
},
|
||
|
clearable: {
|
||
|
type: Boolean,
|
||
|
default: false
|
||
|
},
|
||
|
disabled: {
|
||
|
type: Boolean,
|
||
|
default: false
|
||
|
},
|
||
|
name: String,
|
||
|
...useAriaProps(["ariaLabel"])
|
||
|
});
|
||
|
const autocompleteEmits = {
|
||
|
[UPDATE_MODEL_EVENT]: (value) => isString(value),
|
||
|
[INPUT_EVENT]: (value) => isString(value),
|
||
|
[CHANGE_EVENT]: (value) => isString(value),
|
||
|
focus: (evt) => evt instanceof FocusEvent,
|
||
|
blur: (evt) => evt instanceof FocusEvent,
|
||
|
clear: () => true,
|
||
|
select: (item) => isObject(item)
|
||
|
};
|
||
|
|
||
|
export { autocompleteEmits, autocompleteProps };
|
||
|
//# sourceMappingURL=autocomplete2.mjs.map
|