From 86af678032b4af019b881b5f0c98c9038dd8e8ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B4=96=E5=B4=96=E5=B4=96?= Date: Thu, 12 Dec 2019 19:23:19 +0800 Subject: [PATCH] feat: add default key formator for shortcut --- packages/x6/src/handler/keyboard/handler.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/x6/src/handler/keyboard/handler.ts b/packages/x6/src/handler/keyboard/handler.ts index 7e9126815f5..68098d90a63 100644 --- a/packages/x6/src/handler/keyboard/handler.ts +++ b/packages/x6/src/handler/keyboard/handler.ts @@ -18,6 +18,16 @@ export class KeyboardHandler extends BaseHandler { this.mousetrap = new Mousetrap(this.target as Element, this) } + enable() { + this.graph.options.keyboard.enabled = true + super.enable() + } + + disable() { + this.graph.options.keyboard.enabled = false + super.disable() + } + bind( keys: string | string[], callback: KeyboardHandler.Handler, @@ -31,7 +41,15 @@ export class KeyboardHandler extends BaseHandler { } private getKeys(keys: string | string[]) { - return (Array.isArray(keys) ? keys : [keys]).map(this.formatkey) + return (Array.isArray(keys) ? keys : [keys]) + .map(key => + key + .toLowerCase() + .replace(/\s/g, '') + .replace('delete', 'backspace') + .replace('cmd', 'command'), + ) + .map(this.formatkey) } protected isGraphEvent(e: KeyboardEvent) {