mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			953 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			953 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { AttributeCommand, ButtonView, Plugin } from 'ckeditor5';
 | 
						|
import kbdIcon from '../theme/icons/kbd.svg';
 | 
						|
 | 
						|
const KBD = 'kbd';
 | 
						|
 | 
						|
/**
 | 
						|
 * The keyboard shortcut UI feature. It brings a proper button.
 | 
						|
 */
 | 
						|
export default class KbdUI extends Plugin {
 | 
						|
 | 
						|
	public static get pluginName() {
 | 
						|
		return 'KbdUI' as const;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @inheritDoc
 | 
						|
	 */
 | 
						|
	init() {
 | 
						|
		const editor = this.editor;
 | 
						|
		const t = editor.t;
 | 
						|
 | 
						|
		editor.ui.componentFactory.add( KBD, locale => {
 | 
						|
			const command = editor.commands.get( KBD ) as AttributeCommand;
 | 
						|
			const view = new ButtonView( locale );
 | 
						|
 | 
						|
			view.set( {
 | 
						|
				label: t( 'Keyboard shortcut' ),
 | 
						|
				icon: kbdIcon,
 | 
						|
				keystroke: 'CTRL+ALT+K',
 | 
						|
				tooltip: true,
 | 
						|
				isToggleable: true
 | 
						|
			} );
 | 
						|
 | 
						|
			view.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );
 | 
						|
 | 
						|
			// Execute command.
 | 
						|
			this.listenTo( view, 'execute', () => {
 | 
						|
				editor.execute( KBD );
 | 
						|
				editor.editing.view.focus();
 | 
						|
			} );
 | 
						|
 | 
						|
			return view;
 | 
						|
		} );
 | 
						|
	}
 | 
						|
}
 |