keycode.js 1.3 KB

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