diff --git a/src/utils/mapper.ts b/src/utils/mapper.ts new file mode 100644 index 00000000..94be7323 --- /dev/null +++ b/src/utils/mapper.ts @@ -0,0 +1,70 @@ +export class Mapper { + + private static scanCodeMap = [ + [], // 0 + [], // 1 + [], // 2 + [], // 3 + ['A'], // 4 + ['B'], // 5 + ['C'], // 6 + ['D'], // 7 + ['E'], // 8 + ['F'], // 9 + ['G'], // 10 + ['H'], // 11 + ['I'], // 12 + ['J'], // 13 + ['K'], // 14 + ['L'], // 15 + ['M'], // 16 + ['N'], // 17 + ['O'], // 18 + ['P'], // 19 + ['Q'], // 20 + ['R'], // 21 + ['S'], // 22 + ['T'], // 23 + ['U'], // 24 + ['V'], // 25 + ['W'], // 26 + ['X'], // 27 + ['Y'], // 28 + ['Z'], // 29 + ['1', '!'], // 30 + ['2', '@'], // 31 + ['3', '#'], // 32 + ['4', '$'], // 33 + ['5', '%'], // 34 + ['6', '^'], // 35 + ['7', '&'], // 36 + ['8', '*'], // 37 + ['9', '('], // 38 + ['0', ')'], // 39 + ['Enter'], // 40 - Enter + ['Esc'], // 41 - Escape + ['←'], // 42 - Backspace + ['Tab'], // 43 - Tab + ['Space'], // 44 - Space + ['-', '_'], // 45 + ['=', '+'], // 46 + ['[', '{'], // 47 + [']', '}'], // 48 + ['\\', '|'], // 49 + [], // 50 NON_US_HASHMARK_AND_TILDE + [';', ':'], // 51 + ['\'', '"'], // 52 + ['`', '~'], // 53 + [',', '<'], // 54 + ['.', '>'], // 55 + ['/', '?'], // 56 + ['Caps Lock'] // 57 + ]; + + public static scanCodeToText(scanCode: number): string[] { + if (Mapper.scanCodeMap.length < scanCode) { + return []; + } + return Mapper.scanCodeMap[scanCode]; + } +}