28 lines
		
	
	
		
			597 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			597 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { provide } from 'vue';
 | |
| 
 | |
| const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef");
 | |
| const useForwardRef = (forwardRef) => {
 | |
|   const setForwardRef = (el) => {
 | |
|     forwardRef.value = el;
 | |
|   };
 | |
|   provide(FORWARD_REF_INJECTION_KEY, {
 | |
|     setForwardRef
 | |
|   });
 | |
| };
 | |
| const useForwardRefDirective = (setForwardRef) => {
 | |
|   return {
 | |
|     mounted(el) {
 | |
|       setForwardRef(el);
 | |
|     },
 | |
|     updated(el) {
 | |
|       setForwardRef(el);
 | |
|     },
 | |
|     unmounted() {
 | |
|       setForwardRef(null);
 | |
|     }
 | |
|   };
 | |
| };
 | |
| 
 | |
| export { FORWARD_REF_INJECTION_KEY, useForwardRef, useForwardRefDirective };
 | |
| //# sourceMappingURL=index.mjs.map
 |