28 lines
		
	
	
		
			983 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			983 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import type { ShallowRef } from 'vue';
 | |
| import type { MaybeRef } from '@vueuse/core';
 | |
| interface UseFocusControllerOptions {
 | |
|     disabled?: MaybeRef<boolean>;
 | |
|     /**
 | |
|      * return true to cancel focus
 | |
|      * @param event FocusEvent
 | |
|      */
 | |
|     beforeFocus?: (event: FocusEvent) => boolean | undefined;
 | |
|     afterFocus?: () => void;
 | |
|     /**
 | |
|      * return true to cancel blur
 | |
|      * @param event FocusEvent
 | |
|      */
 | |
|     beforeBlur?: (event: FocusEvent) => boolean | undefined;
 | |
|     afterBlur?: () => void;
 | |
| }
 | |
| export declare function useFocusController<T extends {
 | |
|     focus: () => void;
 | |
| }>(target: ShallowRef<T | undefined>, { disabled, beforeFocus, afterFocus, beforeBlur, afterBlur, }?: UseFocusControllerOptions): {
 | |
|     isFocused: import("vue").Ref<boolean>;
 | |
|     /** Avoid using wrapperRef and handleFocus/handleBlur together */
 | |
|     wrapperRef: ShallowRef<HTMLElement | undefined>;
 | |
|     handleFocus: (event: FocusEvent) => void;
 | |
|     handleBlur: (event: FocusEvent) => void;
 | |
| };
 | |
| export {};
 |