您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

keycode.js 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /**
  2. * Enumerates the supported keys.
  3. */
  4. export const KEYS = {
  5. BACKSPACE: "backspace" ,
  6. DELETE : "delete",
  7. RETURN : "enter",
  8. TAB : "tab",
  9. ESCAPE : "escape",
  10. UP : "up",
  11. DOWN : "down",
  12. RIGHT : "right",
  13. LEFT : "left",
  14. HOME : "home",
  15. END : "end",
  16. PAGEUP : "pageup",
  17. PAGEDOWN : "pagedown",
  18. F1 : "f1",
  19. F2 : "f2",
  20. F3 : "f3",
  21. F4 : "f4",
  22. F5 : "f5",
  23. F6 : "f6",
  24. F7 : "f7",
  25. F8 : "f8",
  26. F9 : "f9",
  27. F10 : "f10",
  28. F11 : "f11",
  29. F12 : "f12",
  30. META : "command",
  31. CMD_L: "command",
  32. CMD_R: "command",
  33. ALT : "alt",
  34. CONTROL : "control",
  35. SHIFT : "shift",
  36. CAPS_LOCK: "caps_lock", //not supported by robotjs
  37. SPACE : "space",
  38. PRINTSCREEN : "printscreen",
  39. INSERT : "insert",
  40. NUMPAD_0 : "numpad_0",
  41. NUMPAD_1 : "numpad_1",
  42. NUMPAD_2 : "numpad_2",
  43. NUMPAD_3 : "numpad_3",
  44. NUMPAD_4 : "numpad_4",
  45. NUMPAD_5 : "numpad_5",
  46. NUMPAD_6 : "numpad_6",
  47. NUMPAD_7 : "numpad_7",
  48. NUMPAD_8 : "numpad_8",
  49. NUMPAD_9 : "numpad_9",
  50. COMMA: ",",
  51. PERIOD: ".",
  52. SEMICOLON: ";",
  53. QUOTE: "'",
  54. BRACKET_LEFT: "[",
  55. BRACKET_RIGHT: "]",
  56. BACKQUOTE: "`",
  57. BACKSLASH: "\\",
  58. MINUS: "-",
  59. EQUAL: "=",
  60. SLASH: "/"
  61. };
  62. /**
  63. * Mapping between the key codes and keys deined in KEYS.
  64. * The mappings are based on
  65. * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Specifications
  66. */
  67. let keyCodeToKey = {
  68. 8: KEYS.BACKSPACE,
  69. 9: KEYS.TAB,
  70. 13: KEYS.RETURN,
  71. 16: KEYS.SHIFT,
  72. 17: KEYS.CONTROL,
  73. 18: KEYS.ALT,
  74. 20: KEYS.CAPS_LOCK,
  75. 27: KEYS.ESCAPE,
  76. 32: KEYS.SPACE,
  77. 33: KEYS.PAGEUP,
  78. 34: KEYS.PAGEDOWN,
  79. 35: KEYS.END,
  80. 36: KEYS.HOME,
  81. 37: KEYS.LEFT,
  82. 38: KEYS.UP,
  83. 39: KEYS.RIGHT,
  84. 40: KEYS.DOWN,
  85. 42: KEYS.PRINTSCREEN,
  86. 44: KEYS.PRINTSCREEN,
  87. 45: KEYS.INSERT,
  88. 46: KEYS.DELETE,
  89. 59: KEYS.SEMICOLON,
  90. 61: KEYS.EQUAL,
  91. 91: KEYS.CMD_L,
  92. 92: KEYS.CMD_R,
  93. 93: KEYS.CMD_R,
  94. 96: KEYS.NUMPAD_0,
  95. 97: KEYS.NUMPAD_1,
  96. 98: KEYS.NUMPAD_2,
  97. 99: KEYS.NUMPAD_3,
  98. 100: KEYS.NUMPAD_4,
  99. 101: KEYS.NUMPAD_5,
  100. 102: KEYS.NUMPAD_6,
  101. 103: KEYS.NUMPAD_7,
  102. 104: KEYS.NUMPAD_8,
  103. 105: KEYS.NUMPAD_9,
  104. 112: KEYS.F1,
  105. 113: KEYS.F2,
  106. 114: KEYS.F3,
  107. 115: KEYS.F4,
  108. 116: KEYS.F5,
  109. 117: KEYS.F6,
  110. 118: KEYS.F7,
  111. 119: KEYS.F8,
  112. 120: KEYS.F9,
  113. 121: KEYS.F10,
  114. 122: KEYS.F11,
  115. 123: KEYS.F12,
  116. 124: KEYS.PRINTSCREEN,
  117. 173: KEYS.MINUS,
  118. 186: KEYS.SEMICOLON,
  119. 187: KEYS.EQUAL,
  120. 188: KEYS.COMMA,
  121. 189: KEYS.MINUS,
  122. 190: KEYS.PERIOD,
  123. 191: KEYS.SLASH,
  124. 192: KEYS.BACKQUOTE,
  125. 219: KEYS.BRACKET_LEFT,
  126. 220: KEYS.BACKSLASH,
  127. 221: KEYS.BRACKET_RIGHT,
  128. 222: KEYS.QUOTE,
  129. 224: KEYS.META,
  130. 229: KEYS.SEMICOLON
  131. };
  132. /**
  133. * Generate codes for digit keys (0-9)
  134. */
  135. for(let i = 0; i < 10; i++) {
  136. keyCodeToKey[i + 48] = `${i}`;
  137. }
  138. /**
  139. * Generate codes for letter keys (a-z)
  140. */
  141. for(let i = 0; i < 26; i++) {
  142. let keyCode = i + 65;
  143. keyCodeToKey[keyCode] = String.fromCharCode(keyCode).toLowerCase();
  144. }
  145. /**
  146. * Returns key associated with the keyCode from the passed event.
  147. * @param {KeyboardEvent} event the event
  148. * @returns {KEYS} the key on the keyboard.
  149. */
  150. export function keyboardEventToKey(event) {
  151. return keyCodeToKey[event.which];
  152. }