constants.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { BASE_CLASS_PREFIX } from "../base/constants";
  2. const cssClasses = {
  3. PREFIX: `${BASE_CLASS_PREFIX}-hotKeys`,
  4. } as const;
  5. const strings = {
  6. };
  7. export { cssClasses, strings };
  8. const keyCodeMap = {
  9. // alpha
  10. 'a': 'KeyA', 'b': 'KeyB', 'c': 'KeyC', 'd': 'KeyD', 'e': 'KeyE',
  11. 'f': 'KeyF', 'g': 'KeyG', 'h': 'KeyH', 'i': 'KeyI', 'j': 'KeyJ',
  12. 'k': 'KeyK', 'l': 'KeyL', 'm': 'KeyM', 'n': 'KeyN', 'o': 'KeyO',
  13. 'p': 'KeyP', 'q': 'KeyQ', 'r': 'KeyR', 's': 'KeyS', 't': 'KeyT',
  14. 'u': 'KeyU', 'v': 'KeyV', 'w': 'KeyW', 'x': 'KeyX', 'y': 'KeyY',
  15. 'z': 'KeyZ',
  16. // digit
  17. '0': 'Digit0', '1': 'Digit1', '2': 'Digit2', '3': 'Digit3',
  18. '4': 'Digit4', '5': 'Digit5', '6': 'Digit6', '7': 'Digit7',
  19. '8': 'Digit8', '9': 'Digit9',
  20. // punctuation
  21. ' ': 'Space', 'enter': 'Enter', 'escape': 'Escape', 'backspace': 'Backspace',
  22. 'tab': 'Tab', '-': 'Minus', '=': 'Equal', '[': 'BracketLeft',
  23. ']': 'BracketRight', '\\': 'Backslash', ';': 'Semicolon',
  24. "'": 'Quote', '`': 'Backquote', ',': 'Comma', '.': 'Period',
  25. '/': 'Slash', '?': 'Slash', '!': 'Digit1', '@': 'Digit2',
  26. '#': 'Digit3', '$': 'Digit4', '%': 'Digit5', '^': 'Digit6',
  27. '&': 'Digit7', '*': 'Digit8', '(': 'Digit9', ')': 'Digit0',
  28. // arrow
  29. 'arrowup': 'ArrowUp', 'arrowdown': 'ArrowDown',
  30. 'arrowleft': 'ArrowLeft', 'arrowright': 'ArrowRight',
  31. // function
  32. 'shift': 'ShiftLeft', 'control': 'ControlLeft', 'alt': 'AltLeft',
  33. 'meta': 'MetaLeft', 'capslock': 'CapsLock', 'f1': 'F1',
  34. 'f2': 'F2', 'f3': 'F3', 'f4': 'F4', 'f5': 'F5', 'f6': 'F6',
  35. 'f7': 'F7', 'f8': 'F8', 'f9': 'F9', 'f10': 'F10', 'f11': 'F11',
  36. 'f12': 'F12', 'insert': 'Insert', 'delete': 'Delete', 'home': 'Home',
  37. 'end': 'End', 'pageup': 'PageUp', 'pagedown': 'PageDown',
  38. 'numlock': 'NumLock', 'scrolllock': 'ScrollLock', 'pause': 'Pause',
  39. // numpad
  40. 'numpad0': 'Numpad0', 'numpad1': 'Numpad1', 'numpad2': 'Numpad2',
  41. 'numpad3': 'Numpad3', 'numpad4': 'Numpad4', 'numpad5': 'Numpad5',
  42. 'numpad6': 'Numpad6', 'numpad7': 'Numpad7', 'numpad8': 'Numpad8',
  43. 'numpad9': 'Numpad9', 'numpaddecimal': 'NumpadDecimal',
  44. 'numpaddivide': 'NumpadDivide', 'numpadmultiply': 'NumpadMultiply',
  45. 'numpadsubtract': 'NumpadSubtract', 'numpadadd': 'NumpadAdd',
  46. 'numpadenter': 'NumpadEnter',
  47. };
  48. export function keyToCode(key: KeyboardEvent["key"]) {
  49. return keyCodeMap[key.toLowerCase()] || undefined;
  50. }
  51. enum Keys {
  52. A = 'a', B = 'b', C = 'c', D = 'd', E = 'e',
  53. F = 'f', G = 'g', H = 'h', I = 'i', J = 'j',
  54. K = 'k', L = 'l', M = 'm', N = 'n', O = 'o',
  55. P = 'p', Q = 'q', R = 'r', S = 's', T = 't',
  56. U = 'u', V = 'v', W = 'w', X = 'x', Y = 'y',
  57. Z = 'z',
  58. Digit0 = '0', Digit1 = '1', Digit2 = '2', Digit3 = '3',
  59. Digit4 = '4', Digit5 = '5', Digit6 = '6', Digit7 = '7',
  60. Digit8 = '8', Digit9 = '9',
  61. Space = ' ', Enter = 'enter', Escape = 'escape', Backspace = 'backspace',
  62. Tab = 'tab', Minus = '-', Equal = '=', BracketLeft = '[',
  63. BracketRight = ']', Backslash = '\\', Semicolon = ';',
  64. Quote = "'", Backquote = '`', Comma = ',', Period = '.',
  65. Slash = '/', Exclamation = '!', At = '@', Hash = '#',
  66. Dollar = '$', Percent = '%', Caret = '^', Ampersand = '&',
  67. Asterisk = '*', LeftParenthesis = '(', RightParenthesis = ')',
  68. ArrowUp = 'arrowup', ArrowDown = 'arrowdown',
  69. ArrowLeft = 'arrowleft', ArrowRight = 'arrowright',
  70. Shift = 'shift', Control = 'control', Alt = 'alt',
  71. Meta = 'meta', CapsLock = 'capslock', F1 = 'f1',
  72. F2 = 'f2', F3 = 'f3', F4 = 'f4', F5 = 'f5', F6 = 'f6',
  73. F7 = 'f7', F8 = 'f8', F9 = 'f9', F10 = 'f10', F11 = 'f11',
  74. F12 = 'f12', Insert = 'insert', Delete = 'delete', Home = 'home',
  75. End = 'end', PageUp = 'pageup', PageDown = 'pagedown',
  76. NumLock = 'numlock', ScrollLock = 'scrolllock', Pause = 'pause',
  77. Numpad0 = 'numpad0', Numpad1 = 'numpad1', Numpad2 = 'numpad2',
  78. Numpad3 = 'numpad3', Numpad4 = 'numpad4', Numpad5 = 'numpad5',
  79. Numpad6 = 'numpad6', Numpad7 = 'numpad7', Numpad8 = 'numpad8',
  80. Numpad9 = 'numpad9', NumpadDecimal = 'numpaddecimal',
  81. NumpadDivide = 'numpaddivide', NumpadMultiply = 'numpadmultiply',
  82. NumpadSubtract = 'numpadsubtract', NumpadAdd = 'numpadadd',
  83. NumpadEnter = 'numpadenter',
  84. }
  85. export { Keys };