@print-one/grapesjs
Version:
Free and Open Source Web Builder Framework
72 lines (66 loc) • 1.5 kB
text/typescript
import { CommandFunction } from '../commands/view/CommandAbstract';
export interface Keymap {
id: string;
keys: string;
handler: string | CommandFunction;
}
export interface KeymapOptions {
/**
* Force the handler to be executed.
*/
force?: boolean;
/**
* Prevent default of the original triggered event.
*/
prevent?: boolean;
}
export interface KeymapsConfig {
/**
* Default keymaps.
*/
defaults?: Record<string, Omit<Keymap, 'id'> & { opts?: KeymapOptions }>;
}
const config: KeymapsConfig = {
defaults: {
'core:undo': {
keys: '⌘+z, ctrl+z',
handler: 'core:undo',
opts: { prevent: true },
},
'core:redo': {
keys: '⌘+shift+z, ctrl+shift+z',
handler: 'core:redo',
opts: { prevent: true },
},
'core:copy': {
keys: '⌘+c, ctrl+c',
handler: 'core:copy',
},
'core:paste': {
keys: '⌘+v, ctrl+v',
handler: 'core:paste',
},
'core:component-next': {
keys: 's',
handler: 'core:component-next',
},
'core:component-prev': {
keys: 'w',
handler: 'core:component-prev',
},
'core:component-enter': {
keys: 'd',
handler: 'core:component-enter',
},
'core:component-exit': {
keys: 'a',
handler: 'core:component-exit',
},
'core:component-delete': {
keys: 'backspace, delete',
handler: 'core:component-delete',
opts: { prevent: true },
},
},
};
export default config;