UNPKG

element-plus

Version:

A Component Library for Vue 3

85 lines (84 loc) 3.58 kB
import { useNamespace } from 'element-plus/es/hooks'; import type { Option, OptionType, SelectStates } from './select.types'; import type { ISelectV2Props } from './token'; import type { SelectEmitFn } from './defaults'; import type { TooltipInstance } from 'element-plus/es/components/tooltip'; import type { SelectDropdownInstance } from './select-dropdown'; import type { Component, ComputedRef, Ref, WritableComputedRef } from 'vue'; type useSelectReturnType = (props: ISelectV2Props, emit: SelectEmitFn) => { inputId: Ref<string | undefined>; collapseTagSize: ComputedRef<'default' | 'small'>; currentPlaceholder: ComputedRef<string>; expanded: Ref<boolean>; emptyText: ComputedRef<string | false | null>; popupHeight: ComputedRef<number>; debounce: ComputedRef<0 | 300>; allOptions: ComputedRef<OptionType[]>; filteredOptions: Ref<OptionType[]>; iconComponent: ComputedRef<any>; iconReverse: ComputedRef<any>; tagStyle: ComputedRef<{ maxWidth: string; }>; collapseTagStyle: ComputedRef<{ maxWidth: string; }>; popperSize: Ref<number>; dropdownMenuVisible: WritableComputedRef<boolean>; hasModelValue: ComputedRef<boolean>; shouldShowPlaceholder: ComputedRef<boolean>; selectDisabled: ComputedRef<boolean | undefined>; selectSize: ComputedRef<string>; needStatusIcon: ComputedRef<boolean>; showClearBtn: ComputedRef<boolean>; states: SelectStates; isFocused: Ref<boolean>; nsSelect: ReturnType<typeof useNamespace>; nsInput: ReturnType<typeof useNamespace>; inputRef: Ref<HTMLElement | undefined>; menuRef: Ref<SelectDropdownInstance | undefined>; tagMenuRef: Ref<HTMLElement | undefined>; tooltipRef: Ref<TooltipInstance | undefined>; tagTooltipRef: Ref<TooltipInstance | undefined>; selectRef: Ref<HTMLElement | undefined>; wrapperRef: Ref<HTMLElement | undefined>; selectionRef: Ref<HTMLElement | undefined>; prefixRef: Ref<HTMLElement | undefined>; suffixRef: Ref<HTMLElement | undefined>; collapseItemRef: Ref<HTMLElement | undefined>; popperRef: ComputedRef<HTMLElement | undefined>; validateState: ComputedRef<string>; validateIcon: ComputedRef<Component | undefined>; showTagList: ComputedRef<Option[]>; collapseTagList: ComputedRef<Option[]>; debouncedOnInputChange: () => void; deleteTag: (event: MouseEvent, option: Option) => void; getLabel: (option: Option) => string; getValue: (option: Option) => unknown; getDisabled: (option: Option) => boolean; getValueKey: (item: unknown) => any; handleClear: () => void; handleClickOutside: (event: Event) => void; handleDel: (e: KeyboardEvent) => void; handleEsc: () => void; focus: () => void; blur: () => void; handleMenuEnter: () => void; handleResize: () => void; resetSelectionWidth: () => void; updateTooltip: () => void; updateTagTooltip: () => void; updateOptions: () => void; toggleMenu: () => void; scrollTo: (index: number) => void; onInput: (event: Event) => void; onKeyboardNavigate: (direction: 'forward' | 'backward', hoveringIndex?: number) => void; onKeyboardSelect: () => void; onSelect: (option: Option) => void; onHover: (idx?: number) => void; handleCompositionStart: (event: CompositionEvent) => void; handleCompositionEnd: (event: CompositionEvent) => void; handleCompositionUpdate: (event: CompositionEvent) => void; }; declare const useSelect: useSelectReturnType; export default useSelect;