@benson.liao/react-design-editor
Version:
Design Editor Tools with React.js + ant.design + fabric.js
151 lines (150 loc) • 3.83 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Shortcut Handler Class
*
* @author salgum1114
* @class ShortcutHandler
*/
class ShortcutHandler {
constructor(handler) {
/**
* Whether keydown Escape
*
* @param {KeyboardEvent} e
* @returns
*/
this.isEscape = (e) => {
return e.keyCode === 27 && this.keyEvent.esc;
};
/**
* Whether keydown Q
*
* @param {KeyboardEvent} e
* @returns
*/
this.isQ = (e) => {
return e.keyCode === 81;
};
/**
* Whether keydown W
*
* @param {KeyboardEvent} e
* @returns
*/
this.isW = (e) => {
return e.keyCode === 87;
};
/**
* Whether keydown Delete or Backpsace
*
* @param {KeyboardEvent} e
* @returns
*/
this.isDelete = (e) => {
return (e.keyCode === 8 || e.keyCode === 46 || e.keyCode === 127) && this.keyEvent.del;
};
/**
* Whether keydown Arrow
*
* @param {KeyboardEvent} e
* @returns
*/
this.isArrow = (e) => {
return e.code.includes('Arrow') && this.keyEvent.move;
};
/**
* Whether keydown Ctrl + A
*
* @param {KeyboardEvent} e
* @returns
*/
this.isCtrlA = (e) => {
return e.ctrlKey && e.keyCode === 65 && this.keyEvent.all;
};
/**
* Whether keydown Ctrl + C
*
* @param {KeyboardEvent} e
* @returns
*/
this.isCtrlC = (e) => {
return e.ctrlKey && e.keyCode === 67 && this.keyEvent.copy;
};
/**
* Whether keydown Ctrl + V
*
* @param {KeyboardEvent} e
* @returns
*/
this.isCtrlV = (e) => {
return e.ctrlKey && e.keyCode === 86 && this.keyEvent.paste;
};
/**
* Whether keydown Ctrl + Z
*
* @param {KeyboardEvent} e
* @returns
*/
this.isCtrlZ = (e) => {
return e.ctrlKey && e.keyCode === 90 && this.keyEvent.transaction;
};
/**
* Whether keydown Ctrl + Y
*
* @param {KeyboardEvent} e
* @returns
*/
this.isCtrlY = (e) => {
return e.ctrlKey && e.keyCode === 89 && this.keyEvent.transaction;
};
/**
* Whether keydown Plus Or Equal
*
* @param {KeyboardEvent} e
* @returns
*/
this.isPlus = (e) => {
return e.keyCode === 187 && this.keyEvent.zoom;
};
/**
* Whether keydown Minus
*
* @param {KeyboardEvent} e
* @returns
*/
this.isMinus = (e) => {
return e.keyCode === 189 && this.keyEvent.zoom;
};
/**
* Whether keydown O
*
* @param {KeyboardEvent} e
* @returns
*/
this.isO = (e) => {
return e.keyCode === 79 && this.keyEvent.zoom;
};
/**
* Whether keydown P
*
* @param {KeyboardEvent} e
* @returns
*/
this.isP = (e) => {
return e.keyCode === 80 && this.keyEvent.zoom;
};
/**
* Whether keydown Ctrl + X
*
* @param {KeyboardEvent} e
* @returns
*/
this.isCtrlX = (e) => {
return e.ctrlKey && e.keyCode === 88 && this.keyEvent.cut;
};
this.handler = handler;
this.keyEvent = handler.keyEvent;
}
}
exports.default = ShortcutHandler;