keycode.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. export {keyCode, toKey, toKeyCode, keys};
  2. const ignorables = {
  3. "Alt": 18,
  4. "AltGraph": 18,
  5. "ArrowDown": 40,
  6. "ArrowLeft": 37,
  7. "ArrowRight": 39,
  8. "ArrowUp": 38,
  9. "Backspace": 8,
  10. "CapsLock": 20,
  11. "Control": 17,
  12. "ContextMenu": 93,
  13. "Dead": 221,
  14. "Delete": 46,
  15. "End": 35,
  16. "Escape": 27,
  17. "F1": 112,
  18. "F2": 113,
  19. "F3": 114,
  20. "F4": 115,
  21. "F5": 116,
  22. "F6": 117,
  23. "F7": 118,
  24. "F8": 119,
  25. "F9": 120,
  26. "F10": 121,
  27. "F11": 122,
  28. "F12": 123,
  29. "Home": 36,
  30. "Insert": 45,
  31. "NumLock": 144,
  32. "PageDown": 34,
  33. "PageUp": 33,
  34. "Pause": 19,
  35. "PrintScreen": 44,
  36. "Process": 229,
  37. "Shift": 16,
  38. "ScrollLock": 145,
  39. "Tab": 9,
  40. "Unidentified": 229,
  41. };
  42. var keyCode = {
  43. "c": 67,
  44. "x": 88,
  45. "z": 90,
  46. "BACKSPACE_SAFARI": 127,
  47. "Enter": 13,
  48. "Meta_LEFT": 91,
  49. "Meta_RIGHT": 92,
  50. "Space": 32,
  51. ...ignorables
  52. }
  53. const keyCodeRev = Object.entries(keyCode).reduce((acc, [key, value]) => (acc[value] = acc[value] === undefined ? key : acc[value] , acc), {});
  54. const keys = Object.entries(keyCode).reduce((acc, [key, value]) => (acc[key] = key === "Space" ? " " : key, acc), {});
  55. function toKey(keyCode, shiftKey) {
  56. return keyCodeRev[keyCode] || (shiftKey ? String.fromCharCode(keyCode) : String.fromCharCode(keyCode).toLowerCase());
  57. }
  58. function toKeyCode(key) {
  59. return keyCode[key];
  60. }