class KeyTextData { constructor(normalText, shiftText) { this.normalText = normalText; this.shiftText = shiftText; } } class KeyMapper { constructor() { this.keyboardKeyMap = {}; this.inputKeyMap = {}; this.registerKeyTextData("Backquote", "`", "~"); this.registerKeyTextData("Digit1", "1", "!"); this.registerKeyTextData("Digit2", "2", "@"); this.registerKeyTextData("Digit3", "3", "#"); this.registerKeyTextData("Digit4", "4", "$"); this.registerKeyTextData("Digit5", "5", "%"); this.registerKeyTextData("Digit6", "6", "^"); this.registerKeyTextData("Digit7", "7", "&"); this.registerKeyTextData("Digit8", "8", "*"); this.registerKeyTextData("Digit9", "9", "("); this.registerKeyTextData("Digit0", "0", ")"); this.registerKeyTextData("Minus", "-", "_"); this.registerKeyTextData("Equal", "=", "+"); this.registerKeyTextData("Backspace", "backspace", "backspace"); this.registerKeyTextData("Tab", "tab", "tab"); this.registerKeyTextData("BracketLeft", "[", "{"); this.registerKeyTextData("BracketRight", "]", "}"); this.registerKeyTextData("Backslash", "\\", "|"); this.registerKeyTextData("CapsLock", "caps lock", "caps lock"); this.registerKeyTextData("Semicolon", ";", ":"); this.registerKeyTextData("Quote", "'", "\""); this.registerKeyTextData("Enter", "enter", "enter"); this.registerKeyTextData("ShiftLeft", "left_shift", "left_shift"); this.registerKeyTextData("ShiftRight", "right_shift", "right_shift"); this.registerKeyTextData("Comma", ",", "<"); this.registerKeyTextData("Period", ".", ">"); this.registerKeyTextData("Slash", "/", "?"); this.registerKeyTextData("ControlLeft", "ctrl", "ctrl"); this.registerKeyTextData("window", "window", "window"); this.registerKeyTextData("AltLeft", "alt", "alt"); this.registerKeyTextData("chinese", "한자", "한자"); this.registerKeyTextData("Space", "space", "space"); this.registerKeyTextData("korean_english", "한/영", "한/영"); this.registerKeyTextData("AltRight", "alt", "alt"); this.registerKeyTextData("ControlRight", "ctrl", "ctrl"); console.log(this.keyboardKeyMap); } registerKeyTextData(keyID, normalText, shiftText, shiftHandSide) { this.keyboardKeyMap[keyID] = new KeyTextData(normalText, shiftText, shiftHandSide); if(this.inputKeyMap[keyID] === undefined) this.inputKeyMap[keyID] = keyID; if(this.inputKeyMap[normalText] === undefined) this.inputKeyMap[normalText] = keyID; if(this.inputKeyMap[shiftText] === undefined) this.inputKeyMap[shiftText] = keyID; } getNormalText(keyID) { if(this.keyboardKeyMap[keyID] === undefined) { console.log(keyID); return "?"; } return this.keyboardKeyMap[keyID].normalText; } getShiftText(keyID) { if(this.keyboardKeyMap[keyID] === undefined) { console.log(keyID); return "?"; } return this.keyboardKeyMap[keyID].shiftText; } getShiftHandSide(keyID) { if(this.keyboardKeyMap[keyID] === undefined) { console.log(keyID); return "?"; } return this.keyboardKeyMap[keyID].shiftHandSide; } getKeyIDOfText(text) { return this.inputKeyMap[text]; } getShiftTypeOfText(text) { let keyID = this.getKeyIDOfText(text); return this.keyboardKeyMap[keyID].shiftHandSide; } }