25 lines
		
	
	
		
			576 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			576 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { Directive } from 'vue';
 | |
| import { makeHotkey } from '../scripts/hotkey';
 | |
| 
 | |
| export default {
 | |
| 	mounted(el, binding) {
 | |
| 		el._hotkey_global = binding.modifiers.global === true;
 | |
| 
 | |
| 		el._keyHandler = makeHotkey(binding.value);
 | |
| 
 | |
| 		if (el._hotkey_global) {
 | |
| 			document.addEventListener('keydown', el._keyHandler);
 | |
| 		} else {
 | |
| 			el.addEventListener('keydown', el._keyHandler);
 | |
| 		}
 | |
| 	},
 | |
| 
 | |
| 	unmounted(el) {
 | |
| 		if (el._hotkey_global) {
 | |
| 			document.removeEventListener('keydown', el._keyHandler);
 | |
| 		} else {
 | |
| 			el.removeEventListener('keydown', el._keyHandler);
 | |
| 		}
 | |
| 	},
 | |
| } as Directive;
 | 
