|
|
@@ -8,62 +8,94 @@ const strings = {
|
|
|
};
|
|
|
|
|
|
export { cssClasses, strings };
|
|
|
+const keyCodeMap = {
|
|
|
+ // alpha
|
|
|
+ 'a': 'KeyA', 'b': 'KeyB', 'c': 'KeyC', 'd': 'KeyD', 'e': 'KeyE',
|
|
|
+ 'f': 'KeyF', 'g': 'KeyG', 'h': 'KeyH', 'i': 'KeyI', 'j': 'KeyJ',
|
|
|
+ 'k': 'KeyK', 'l': 'KeyL', 'm': 'KeyM', 'n': 'KeyN', 'o': 'KeyO',
|
|
|
+ 'p': 'KeyP', 'q': 'KeyQ', 'r': 'KeyR', 's': 'KeyS', 't': 'KeyT',
|
|
|
+ 'u': 'KeyU', 'v': 'KeyV', 'w': 'KeyW', 'x': 'KeyX', 'y': 'KeyY',
|
|
|
+ 'z': 'KeyZ',
|
|
|
|
|
|
-export function keyToCode(key: KeyboardEvent["key"]) {
|
|
|
- const keyCodeMap = {
|
|
|
- // alpha
|
|
|
- 'a': 'KeyA', 'b': 'KeyB', 'c': 'KeyC', 'd': 'KeyD', 'e': 'KeyE',
|
|
|
- 'f': 'KeyF', 'g': 'KeyG', 'h': 'KeyH', 'i': 'KeyI', 'j': 'KeyJ',
|
|
|
- 'k': 'KeyK', 'l': 'KeyL', 'm': 'KeyM', 'n': 'KeyN', 'o': 'KeyO',
|
|
|
- 'p': 'KeyP', 'q': 'KeyQ', 'r': 'KeyR', 's': 'KeyS', 't': 'KeyT',
|
|
|
- 'u': 'KeyU', 'v': 'KeyV', 'w': 'KeyW', 'x': 'KeyX', 'y': 'KeyY',
|
|
|
- 'z': 'KeyZ',
|
|
|
-
|
|
|
- // digit
|
|
|
- '0': 'Digit0', '1': 'Digit1', '2': 'Digit2', '3': 'Digit3',
|
|
|
- '4': 'Digit4', '5': 'Digit5', '6': 'Digit6', '7': 'Digit7',
|
|
|
- '8': 'Digit8', '9': 'Digit9',
|
|
|
-
|
|
|
- // punctuation
|
|
|
- ' ': 'Space', 'enter': 'Enter', 'escape': 'Escape', 'backspace': 'Backspace',
|
|
|
- 'tab': 'Tab', '-': 'Minus', '=': 'Equal', '[': 'BracketLeft',
|
|
|
- ']': 'BracketRight', '\\': 'Backslash', ';': 'Semicolon',
|
|
|
- "'": 'Quote', '`': 'Backquote', ',': 'Comma', '.': 'Period',
|
|
|
- '/': 'Slash', '?': 'Slash', '!': 'Digit1', '@': 'Digit2',
|
|
|
- '#': 'Digit3', '$': 'Digit4', '%': 'Digit5', '^': 'Digit6',
|
|
|
- '&': 'Digit7', '*': 'Digit8', '(': 'Digit9', ')': 'Digit0',
|
|
|
-
|
|
|
- // arrow
|
|
|
- 'arrowup': 'ArrowUp', 'arrowdown': 'ArrowDown',
|
|
|
- 'arrowleft': 'ArrowLeft', 'arrowright': 'ArrowRight',
|
|
|
-
|
|
|
- // function
|
|
|
- 'shift': 'ShiftLeft', 'control': 'ControlLeft', 'alt': 'AltLeft',
|
|
|
- 'meta': 'MetaLeft', 'capslock': 'CapsLock', 'f1': 'F1',
|
|
|
- 'f2': 'F2', 'f3': 'F3', 'f4': 'F4', 'f5': 'F5', 'f6': 'F6',
|
|
|
- 'f7': 'F7', 'f8': 'F8', 'f9': 'F9', 'f10': 'F10', 'f11': 'F11',
|
|
|
- 'f12': 'F12', 'insert': 'Insert', 'delete': 'Delete', 'home': 'Home',
|
|
|
- 'end': 'End', 'pageup': 'PageUp', 'pagedown': 'PageDown',
|
|
|
- 'numlock': 'NumLock', 'scrolllock': 'ScrollLock', 'pause': 'Pause',
|
|
|
-
|
|
|
- // numpad
|
|
|
- 'numpad0': 'Numpad0', 'numpad1': 'Numpad1', 'numpad2': 'Numpad2',
|
|
|
- 'numpad3': 'Numpad3', 'numpad4': 'Numpad4', 'numpad5': 'Numpad5',
|
|
|
- 'numpad6': 'Numpad6', 'numpad7': 'Numpad7', 'numpad8': 'Numpad8',
|
|
|
- 'numpad9': 'Numpad9', 'numpaddecimal': 'NumpadDecimal',
|
|
|
- 'numpaddivide': 'NumpadDivide', 'numpadmultiply': 'NumpadMultiply',
|
|
|
- 'numpadsubtract': 'NumpadSubtract', 'numpadadd': 'NumpadAdd',
|
|
|
- 'numpadenter': 'NumpadEnter',
|
|
|
-
|
|
|
- // Others
|
|
|
- 'printscreen': 'PrintScreen', 'contextmenu': 'ContextMenu',
|
|
|
- 'help': 'Help', 'select': 'Select', 'execute': 'Execute',
|
|
|
- 'clear': 'Clear', 'kana': 'KanaMode', 'kanji': 'KanjiMode',
|
|
|
- 'nonconvert': 'NonConvert', 'convert': 'Convert',
|
|
|
- 'process': 'Process', 'accept': 'Accept', 'modechange': 'ModeChange',
|
|
|
- 'launchapp1': 'LaunchApp1', 'launchapp2': 'LaunchApp2',
|
|
|
- 'launchmail': 'LaunchMail', 'mediaselect': 'MediaSelect'
|
|
|
- };
|
|
|
+ // digit
|
|
|
+ '0': 'Digit0', '1': 'Digit1', '2': 'Digit2', '3': 'Digit3',
|
|
|
+ '4': 'Digit4', '5': 'Digit5', '6': 'Digit6', '7': 'Digit7',
|
|
|
+ '8': 'Digit8', '9': 'Digit9',
|
|
|
+
|
|
|
+ // punctuation
|
|
|
+ ' ': 'Space', 'enter': 'Enter', 'escape': 'Escape', 'backspace': 'Backspace',
|
|
|
+ 'tab': 'Tab', '-': 'Minus', '=': 'Equal', '[': 'BracketLeft',
|
|
|
+ ']': 'BracketRight', '\\': 'Backslash', ';': 'Semicolon',
|
|
|
+ "'": 'Quote', '`': 'Backquote', ',': 'Comma', '.': 'Period',
|
|
|
+ '/': 'Slash', '?': 'Slash', '!': 'Digit1', '@': 'Digit2',
|
|
|
+ '#': 'Digit3', '$': 'Digit4', '%': 'Digit5', '^': 'Digit6',
|
|
|
+ '&': 'Digit7', '*': 'Digit8', '(': 'Digit9', ')': 'Digit0',
|
|
|
+
|
|
|
+ // arrow
|
|
|
+ 'arrowup': 'ArrowUp', 'arrowdown': 'ArrowDown',
|
|
|
+ 'arrowleft': 'ArrowLeft', 'arrowright': 'ArrowRight',
|
|
|
+
|
|
|
+ // function
|
|
|
+ 'shift': 'ShiftLeft', 'control': 'ControlLeft', 'alt': 'AltLeft',
|
|
|
+ 'meta': 'MetaLeft', 'capslock': 'CapsLock', 'f1': 'F1',
|
|
|
+ 'f2': 'F2', 'f3': 'F3', 'f4': 'F4', 'f5': 'F5', 'f6': 'F6',
|
|
|
+ 'f7': 'F7', 'f8': 'F8', 'f9': 'F9', 'f10': 'F10', 'f11': 'F11',
|
|
|
+ 'f12': 'F12', 'insert': 'Insert', 'delete': 'Delete', 'home': 'Home',
|
|
|
+ 'end': 'End', 'pageup': 'PageUp', 'pagedown': 'PageDown',
|
|
|
+ 'numlock': 'NumLock', 'scrolllock': 'ScrollLock', 'pause': 'Pause',
|
|
|
|
|
|
+ // numpad
|
|
|
+ 'numpad0': 'Numpad0', 'numpad1': 'Numpad1', 'numpad2': 'Numpad2',
|
|
|
+ 'numpad3': 'Numpad3', 'numpad4': 'Numpad4', 'numpad5': 'Numpad5',
|
|
|
+ 'numpad6': 'Numpad6', 'numpad7': 'Numpad7', 'numpad8': 'Numpad8',
|
|
|
+ 'numpad9': 'Numpad9', 'numpaddecimal': 'NumpadDecimal',
|
|
|
+ 'numpaddivide': 'NumpadDivide', 'numpadmultiply': 'NumpadMultiply',
|
|
|
+ 'numpadsubtract': 'NumpadSubtract', 'numpadadd': 'NumpadAdd',
|
|
|
+ 'numpadenter': 'NumpadEnter',
|
|
|
+};
|
|
|
+export function keyToCode(key: KeyboardEvent["key"]) {
|
|
|
return keyCodeMap[key.toLowerCase()] || undefined;
|
|
|
}
|
|
|
+
|
|
|
+enum Keys {
|
|
|
+ A = 'a', B = 'b', C = 'c', D = 'd', E = 'e',
|
|
|
+ F = 'f', G = 'g', H = 'h', I = 'i', J = 'j',
|
|
|
+ K = 'k', L = 'l', M = 'm', N = 'n', O = 'o',
|
|
|
+ P = 'p', Q = 'q', R = 'r', S = 's', T = 't',
|
|
|
+ U = 'u', V = 'v', W = 'w', X = 'x', Y = 'y',
|
|
|
+ Z = 'z',
|
|
|
+
|
|
|
+ Digit0 = '0', Digit1 = '1', Digit2 = '2', Digit3 = '3',
|
|
|
+ Digit4 = '4', Digit5 = '5', Digit6 = '6', Digit7 = '7',
|
|
|
+ Digit8 = '8', Digit9 = '9',
|
|
|
+
|
|
|
+ Space = ' ', Enter = 'enter', Escape = 'escape', Backspace = 'backspace',
|
|
|
+ Tab = 'tab', Minus = '-', Equal = '=', BracketLeft = '[',
|
|
|
+ BracketRight = ']', Backslash = '\\', Semicolon = ';',
|
|
|
+ Quote = "'", Backquote = '`', Comma = ',', Period = '.',
|
|
|
+ Slash = '/', Exclamation = '!', At = '@', Hash = '#',
|
|
|
+ Dollar = '$', Percent = '%', Caret = '^', Ampersand = '&',
|
|
|
+ Asterisk = '*', LeftParenthesis = '(', RightParenthesis = ')',
|
|
|
+
|
|
|
+ ArrowUp = 'arrowup', ArrowDown = 'arrowdown',
|
|
|
+ ArrowLeft = 'arrowleft', ArrowRight = 'arrowright',
|
|
|
+
|
|
|
+ Shift = 'shift', Control = 'control', Alt = 'alt',
|
|
|
+ Meta = 'meta', CapsLock = 'capslock', F1 = 'f1',
|
|
|
+ F2 = 'f2', F3 = 'f3', F4 = 'f4', F5 = 'f5', F6 = 'f6',
|
|
|
+ F7 = 'f7', F8 = 'f8', F9 = 'f9', F10 = 'f10', F11 = 'f11',
|
|
|
+ F12 = 'f12', Insert = 'insert', Delete = 'delete', Home = 'home',
|
|
|
+ End = 'end', PageUp = 'pageup', PageDown = 'pagedown',
|
|
|
+ NumLock = 'numlock', ScrollLock = 'scrolllock', Pause = 'pause',
|
|
|
+
|
|
|
+ Numpad0 = 'numpad0', Numpad1 = 'numpad1', Numpad2 = 'numpad2',
|
|
|
+ Numpad3 = 'numpad3', Numpad4 = 'numpad4', Numpad5 = 'numpad5',
|
|
|
+ Numpad6 = 'numpad6', Numpad7 = 'numpad7', Numpad8 = 'numpad8',
|
|
|
+ Numpad9 = 'numpad9', NumpadDecimal = 'numpaddecimal',
|
|
|
+ NumpadDivide = 'numpaddivide', NumpadMultiply = 'numpadmultiply',
|
|
|
+ NumpadSubtract = 'numpadsubtract', NumpadAdd = 'numpadadd',
|
|
|
+ NumpadEnter = 'numpadenter',
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+export { Keys };
|