123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /**
- * Enumerates the supported keys.
- * NOTE: The maps represents physical keys on the keyboard, not chars.
- * @readonly
- * @enum {string}
- */
- export const KEYS = {
- BACKSPACE: "backspace" ,
- DELETE : "delete",
- RETURN : "enter",
- TAB : "tab",
- ESCAPE : "escape",
- UP : "up",
- DOWN : "down",
- RIGHT : "right",
- LEFT : "left",
- HOME : "home",
- END : "end",
- PAGEUP : "pageup",
- PAGEDOWN : "pagedown",
-
- F1 : "f1",
- F2 : "f2",
- F3 : "f3",
- F4 : "f4",
- F5 : "f5",
- F6 : "f6",
- F7 : "f7",
- F8 : "f8",
- F9 : "f9",
- F10 : "f10",
- F11 : "f11",
- F12 : "f12",
- META : "command",
- CMD_L: "command",
- CMD_R: "command",
- ALT : "alt",
- CONTROL : "control",
- SHIFT : "shift",
- CAPS_LOCK: "caps_lock", //not supported by robotjs
- SPACE : "space",
- PRINTSCREEN : "printscreen",
- INSERT : "insert",
-
- NUMPAD_0 : "numpad_0",
- NUMPAD_1 : "numpad_1",
- NUMPAD_2 : "numpad_2",
- NUMPAD_3 : "numpad_3",
- NUMPAD_4 : "numpad_4",
- NUMPAD_5 : "numpad_5",
- NUMPAD_6 : "numpad_6",
- NUMPAD_7 : "numpad_7",
- NUMPAD_8 : "numpad_8",
- NUMPAD_9 : "numpad_9",
-
- COMMA: ",",
-
- PERIOD: ".",
- SEMICOLON: ";",
- QUOTE: "'",
- BRACKET_LEFT: "[",
- BRACKET_RIGHT: "]",
- BACKQUOTE: "`",
- BACKSLASH: "\\",
- MINUS: "-",
- EQUAL: "=",
- SLASH: "/"
- };
-
- /**
- * Mapping between the key codes and keys deined in KEYS.
- * The mappings are based on
- * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Specifications
- */
- let keyCodeToKey = {
- 8: KEYS.BACKSPACE,
- 9: KEYS.TAB,
- 13: KEYS.RETURN,
- 16: KEYS.SHIFT,
- 17: KEYS.CONTROL,
- 18: KEYS.ALT,
- 20: KEYS.CAPS_LOCK,
- 27: KEYS.ESCAPE,
- 32: KEYS.SPACE,
- 33: KEYS.PAGEUP,
- 34: KEYS.PAGEDOWN,
- 35: KEYS.END,
- 36: KEYS.HOME,
- 37: KEYS.LEFT,
- 38: KEYS.UP,
- 39: KEYS.RIGHT,
- 40: KEYS.DOWN,
- 42: KEYS.PRINTSCREEN,
- 44: KEYS.PRINTSCREEN,
- 45: KEYS.INSERT,
- 46: KEYS.DELETE,
- 59: KEYS.SEMICOLON,
- 61: KEYS.EQUAL,
- 91: KEYS.CMD_L,
- 92: KEYS.CMD_R,
- 93: KEYS.CMD_R,
- 96: KEYS.NUMPAD_0,
- 97: KEYS.NUMPAD_1,
- 98: KEYS.NUMPAD_2,
- 99: KEYS.NUMPAD_3,
- 100: KEYS.NUMPAD_4,
- 101: KEYS.NUMPAD_5,
- 102: KEYS.NUMPAD_6,
- 103: KEYS.NUMPAD_7,
- 104: KEYS.NUMPAD_8,
- 105: KEYS.NUMPAD_9,
- 112: KEYS.F1,
- 113: KEYS.F2,
- 114: KEYS.F3,
- 115: KEYS.F4,
- 116: KEYS.F5,
- 117: KEYS.F6,
- 118: KEYS.F7,
- 119: KEYS.F8,
- 120: KEYS.F9,
- 121: KEYS.F10,
- 122: KEYS.F11,
- 123: KEYS.F12,
- 124: KEYS.PRINTSCREEN,
- 173: KEYS.MINUS,
- 186: KEYS.SEMICOLON,
- 187: KEYS.EQUAL,
- 188: KEYS.COMMA,
- 189: KEYS.MINUS,
- 190: KEYS.PERIOD,
- 191: KEYS.SLASH,
- 192: KEYS.BACKQUOTE,
- 219: KEYS.BRACKET_LEFT,
- 220: KEYS.BACKSLASH,
- 221: KEYS.BRACKET_RIGHT,
- 222: KEYS.QUOTE,
- 224: KEYS.META,
- 229: KEYS.SEMICOLON
- };
-
- /**
- * Generate codes for digit keys (0-9)
- */
- for(let i = 0; i < 10; i++) {
- keyCodeToKey[i + 48] = `${i}`;
- }
-
- /**
- * Generate codes for letter keys (a-z)
- */
- for(let i = 0; i < 26; i++) {
- let keyCode = i + 65;
- keyCodeToKey[keyCode] = String.fromCharCode(keyCode).toLowerCase();
- }
-
- /**
- * Returns key associated with the keyCode from the passed event.
- * @param {KeyboardEvent} event the event
- * @returns {KEYS} the key on the keyboard.
- */
- export function keyboardEventToKey(event) {
- return keyCodeToKey[event.which];
- }
|