UNPKG

@squid-dev/cc-web-term

Version:

A ComputerCraft terminal for the internet

330 lines (329 loc) 12.4 kB
export const convertMouseButton = (btn) => { switch (btn) { case 0: return 1; // Left case 1: return 3; // Middle case 2: return 2; // Right default: return undefined; } }; export const convertMouseButtons = (btn) => { if ((btn & 1) !== 0) return 1; // Left if ((btn & 2) !== 0) return 2; // Right if ((btn & 4) !== 0) return 3; // Middle return undefined; }; /** * Mapping of KeyboardEvent.code and KeyboardEvent.key * * @see https://www.w3.org/TR/uievents-key/ * @see https://www.w3.org/TR/uievents-code/ */ const keyboardCodes = { "Digit1": 0 /* EKeyCode.One */, "1": 0 /* EKeyCode.One */, "Digit2": 1 /* EKeyCode.Two */, "2": 1 /* EKeyCode.Two */, "Digit3": 2 /* EKeyCode.Three */, "3": 2 /* EKeyCode.Three */, "Digit4": 3 /* EKeyCode.Four */, "4": 3 /* EKeyCode.Four */, "Digit5": 4 /* EKeyCode.Five */, "5": 4 /* EKeyCode.Five */, "Digit6": 5 /* EKeyCode.Six */, "6": 5 /* EKeyCode.Six */, "Digit7": 6 /* EKeyCode.Seven */, "7": 6 /* EKeyCode.Seven */, "Digit8": 7 /* EKeyCode.Eight */, "8": 7 /* EKeyCode.Eight */, "Digit9": 8 /* EKeyCode.Nine */, "9": 8 /* EKeyCode.Nine */, "Digit0": 9 /* EKeyCode.Zero */, "0": 9 /* EKeyCode.Zero */, "Minus": 10 /* EKeyCode.Minus */, "-": 10 /* EKeyCode.Minus */, "Equal": 11 /* EKeyCode.Equals */, "Backspace": 12 /* EKeyCode.Backspace */, "Tab": 13 /* EKeyCode.Tab */, "KeyQ": 30 /* EKeyCode.Q */, "Q": 30 /* EKeyCode.Q */, "KeyW": 36 /* EKeyCode.W */, "W": 36 /* EKeyCode.W */, "KeyE": 18 /* EKeyCode.E */, "E": 18 /* EKeyCode.E */, "KeyR": 31 /* EKeyCode.R */, "R": 31 /* EKeyCode.R */, "KeyT": 33 /* EKeyCode.T */, "T": 33 /* EKeyCode.T */, "KeyY": 38 /* EKeyCode.Y */, "Y": 38 /* EKeyCode.Y */, "KeyU": 34 /* EKeyCode.U */, "U": 34 /* EKeyCode.U */, "KeyI": 22 /* EKeyCode.I */, "I": 22 /* EKeyCode.I */, "KeyO": 28 /* EKeyCode.O */, "O": 28 /* EKeyCode.O */, "KeyP": 29 /* EKeyCode.P */, "P": 29 /* EKeyCode.P */, "BracketLeft": 40 /* EKeyCode.LeftBracket */, "(": 40 /* EKeyCode.LeftBracket */, "BracketRight": 41 /* EKeyCode.RightBracket */, ")": 41 /* EKeyCode.RightBracket */, "Enter": 42 /* EKeyCode.Enter */, "ControlLeft": 43 /* EKeyCode.LeftCtrl */, "Control": 43 /* EKeyCode.LeftCtrl */, "KeyA": 14 /* EKeyCode.A */, "A": 14 /* EKeyCode.A */, "KeyS": 32 /* EKeyCode.S */, "S": 32 /* EKeyCode.S */, "KeyD": 17 /* EKeyCode.D */, "D": 17 /* EKeyCode.D */, "KeyF": 19 /* EKeyCode.F */, "F": 19 /* EKeyCode.F */, "KeyG": 20 /* EKeyCode.G */, "G": 20 /* EKeyCode.G */, "KeyH": 21 /* EKeyCode.H */, "H": 21 /* EKeyCode.H */, "KeyJ": 23 /* EKeyCode.J */, "J": 23 /* EKeyCode.J */, "KeyK": 24 /* EKeyCode.K */, "K": 24 /* EKeyCode.K */, "KeyL": 25 /* EKeyCode.L */, "L": 25 /* EKeyCode.L */, "Semicolon": 44 /* EKeyCode.SemiColon */, ";": 44 /* EKeyCode.SemiColon */, "Quote": 45 /* EKeyCode.Apostrophe */, "'": 45 /* EKeyCode.Apostrophe */, "Backquote": 46 /* EKeyCode.Grave */, "`": 46 /* EKeyCode.Grave */, "ShiftLeft": 47 /* EKeyCode.LeftShift */, "Shift": 47 /* EKeyCode.LeftShift */, "IntlBackslash": 48 /* EKeyCode.Backslash */, "KeyZ": 39 /* EKeyCode.Z */, "Z": 39 /* EKeyCode.Z */, "KeyX": 37 /* EKeyCode.X */, "X": 37 /* EKeyCode.X */, "KeyC": 16 /* EKeyCode.C */, "C": 16 /* EKeyCode.C */, "KeyV": 35 /* EKeyCode.V */, "V": 35 /* EKeyCode.V */, "KeyB": 15 /* EKeyCode.B */, "B": 15 /* EKeyCode.B */, "KeyN": 27 /* EKeyCode.N */, "N": 27 /* EKeyCode.N */, "KeyM": 26 /* EKeyCode.M */, "M": 26 /* EKeyCode.M */, "Comma": 49 /* EKeyCode.Comma */, ",": 49 /* EKeyCode.Comma */, "Period": 50 /* EKeyCode.Period */, ".": 50 /* EKeyCode.Period */, "Slash": 51 /* EKeyCode.Slash */, "/": 51 /* EKeyCode.Slash */, "ShiftRight": 52 /* EKeyCode.RightShift */, "NumpadMultiply": 53 /* EKeyCode.Multiply */, "AltLeft": 54 /* EKeyCode.LeftAlt */, "Alt": 54 /* EKeyCode.LeftAlt */, "Space": 55 /* EKeyCode.Space */, " ": 55 /* EKeyCode.Space */, "CapsLock": 56 /* EKeyCode.CapsLock */, "F1": 57 /* EKeyCode.F1 */, "F2": 58 /* EKeyCode.F2 */, "F3": 59 /* EKeyCode.F3 */, "F4": 60 /* EKeyCode.F4 */, "F5": 61 /* EKeyCode.F5 */, "F6": 62 /* EKeyCode.F6 */, "F7": 63 /* EKeyCode.F7 */, "F8": 64 /* EKeyCode.F8 */, "F9": 65 /* EKeyCode.F9 */, "F10": 66 /* EKeyCode.F10 */, "NumLock": 72 /* EKeyCode.NumLock */, "ScollLock": 73 /* EKeyCode.ScrollLock */, "Numpad7": 81 /* EKeyCode.NumPad7 */, "Numpad8": 82 /* EKeyCode.NumPad8 */, "Numpad9": 83 /* EKeyCode.NumPad9 */, "NumpadSubtract": 84 /* EKeyCode.NumPadSubtract */, "Numpad4": 78 /* EKeyCode.NumPad4 */, "Numpad5": 79 /* EKeyCode.NumPad5 */, "Numpad6": 80 /* EKeyCode.NumPad6 */, "NumpadAdd": 85 /* EKeyCode.NumPadAdd */, "Numpad1": 75 /* EKeyCode.NumPad1 */, "Numpad2": 76 /* EKeyCode.NumPad2 */, "Numpad3": 77 /* EKeyCode.NumPad3 */, "Numpad0": 74 /* EKeyCode.NumPad0 */, "NumpadDecimal": 86 /* EKeyCode.NumPadDecimal */, "F11": 67 /* EKeyCode.F11 */, "F12": 68 /* EKeyCode.F12 */, "F13": 69 /* EKeyCode.F13 */, "F14": 70 /* EKeyCode.F14 */, "F15": 71 /* EKeyCode.F15 */, // I have absolutely no clue about these. If someone has a keyboard with these // on, please confim that they're right. "KanaMode": 87 /* EKeyCode.Kana */, "Convert": 88 /* EKeyCode.Convert */, "NonConvert": 89 /* EKeyCode.Noconvert */, "IntlYen": 90 /* EKeyCode.Yen */, "NumpadEqual": 91 /* EKeyCode.NumPadEquals */, "Cirmcumflex": 92 /* EKeyCode.Circumflex */, "At": 93 /* EKeyCode.At */, "Colon": 94 /* EKeyCode.Colon */, "Underscore": 95 /* EKeyCode.Underscore */, "Kanji": 96 /* EKeyCode.Kanji */, "Stop": 97 /* EKeyCode.Stop */, "Ax": 98 /* EKeyCode.Ax */, "NumpadEnter": 99 /* EKeyCode.NumPadEnter */, "ControlRight": 100 /* EKeyCode.RightCtrl */, "NumpadComma": 101 /* EKeyCode.NumPadComma */, "NumpadDivide": 102 /* EKeyCode.NumPadDivide */, "AltRight": 103 /* EKeyCode.RightAlt */, "Pause": 104 /* EKeyCode.Pause */, "Home": 105 /* EKeyCode.Home */, "ArrowUp": 106 /* EKeyCode.Up */, "PageUp": 107 /* EKeyCode.PageUp */, "ArrowLeft": 108 /* EKeyCode.Left */, "ArrowRight": 109 /* EKeyCode.Right */, "End": 110 /* EKeyCode.End */, "ArrowDown": 111 /* EKeyCode.Down */, "PageDown": 112 /* EKeyCode.PageDown */, "Insert": 113 /* EKeyCode.Insert */, "Delete": 114 /* EKeyCode.Delete */, }; export const convertKey = (key) => keyboardCodes[key]; const names = [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "zero", "minus", "equals", "backspace", "tab", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "leftBracket", "rightBracket", "enter", "leftCtrl", "semiColon", "apostrophe", "grave", "leftShift", "backslash", "comma", "period", "slash", "rightShift", "multiply", "leftAlt", "space", "capsLock", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", "numLock", "scrollLock", "numPad0", "numPad1", "numPad2", "numPad3", "numPad4", "numPad5", "numPad6", "numPad7", "numPad8", "numPad9", "numPadSubtract", "numPadAdd", "numPadDecimal", "kana", "convert", "noconvert", "yen", "numPadEquals", "circumflex", "at", "colon", "underscore", "kanji", "stop", "ax", "numPadEnter", "rightCtrl", "numPadComma", "numPadDivide", "rightAlt", "pause", "home", "up", "pageUp", "left", "right", "end", "down", "pageDown", "insert", "delete", ]; export const keyName = (key) => names[key]; const lwjgl2Codes = [ 2 /* one */, 3 /* two */, 4 /* three */, 5 /* four */, 6 /* five */, 7 /* six */, 8 /* seven */, 9 /* eight */, 10 /* nine */, 11 /* zero */, 12 /* minus */, 13 /* equals */, 14 /* backspace */, 15 /* tab */, 30 /* a */, 48 /* b */, 46 /* c */, 32 /* d */, 18 /* e */, 33 /* f */, 34 /* g */, 35 /* h */, 23 /* i */, 36 /* j */, 37 /* k */, 38 /* l */, 50 /* m */, 49 /* n */, 24 /* o */, 25 /* p */, 16 /* q */, 19 /* r */, 31 /* s */, 20 /* t */, 22 /* u */, 47 /* v */, 17 /* w */, 45 /* x */, 21 /* y */, 44 /* z */, 26 /* leftBracket */, 27 /* rightBracket */, 28 /* enter */, 29 /* leftCtrl */, 39 /* semiColon */, 40 /* apostrophe */, 41 /* grave */, 42 /* leftShift */, 43 /* backslash */, 51 /* comma */, 52 /* period */, 53 /* slash */, 54 /* rightShift */, 55 /* multiply */, 56 /* leftAlt */, 57 /* space */, 58 /* capsLock */, 59 /* f1 */, 60 /* f2 */, 61 /* f3 */, 62 /* f4 */, 63 /* f5 */, 64 /* f6 */, 65 /* f7 */, 66 /* f8 */, 67 /* f9 */, 68 /* f10 */, 87 /* f11 */, 88 /* f12 */, 100 /* f13 */, 101 /* f14 */, 102 /* f15 */, 69 /* numLock */, 70 /* scrollLock */, 82 /* numPad0 */, 79 /* numPad1 */, 80 /* numPad2 */, 81 /* numPad3 */, 75 /* numPad4 */, 76 /* numPad5 */, 77 /* numPad6 */, 71 /* numPad7 */, 72 /* numPad8 */, 73 /* numPad9 */, 74 /* numPadSubtract */, 78 /* numPadAdd */, 83 /* numPadDecimal */, 112 /* kana */, 121 /* convert */, 123 /* noconvert */, 125 /* yen */, 141 /* numPadEquals */, 144 /* circumflex */, 145 /* at */, 146 /* colon */, 147 /* underscore */, 148 /* kanji */, 149 /* stop */, 150 /* ax */, 156 /* numPadEnter */, 157 /* rightCtrl */, 179 /* numPadComma */, 181 /* numPadDivide */, 184 /* rightAlt */, 197 /* pause */, 199 /* home */, 200 /* up */, 201 /* pageUp */, 203 /* left */, 205 /* right */, 207 /* end */, 208 /* down */, 209 /* pageDown */, 210 /* insert */, 211 /* delete */, ]; export const lwjgl2Code = (key) => lwjgl2Codes[key]; const lwjgl3Codes = [ 49 /* one */, 50 /* two */, 51 /* three */, 52 /* four */, 53 /* five */, 54 /* six */, 55 /* seven */, 56 /* eight */, 57 /* nine */, 48 /* zero */, 45 /* minus */, 61 /* equals */, 259 /* backspace */, 258 /* tab */, 65 /* a */, 66 /* b */, 67 /* c */, 68 /* d */, 69 /* e */, 70 /* f */, 71 /* g */, 72 /* h */, 73 /* i */, 74 /* j */, 75 /* k */, 76 /* l */, 77 /* m */, 78 /* n */, 79 /* o */, 80 /* p */, 81 /* q */, 82 /* r */, 83 /* s */, 84 /* t */, 85 /* u */, 86 /* v */, 87 /* w */, 88 /* x */, 89 /* y */, 90 /* z */, 91 /* leftBracket */, 93 /* rightBracket */, 257 /* enter */, 341 /* leftCtrl */, -1 /* semiColon */, 39 /* apostrophe */, 96 /* grave */, 340 /* leftShift */, 92 /* backslash */, 44 /* comma */, 46 /* period */, 47 /* slash */, 344 /* rightShift */, -1 /* multiply */, 342 /* leftAlt */, 32 /* space */, 280 /* capsLock */, 290 /* f1 */, 291 /* f2 */, 292 /* f3 */, 293 /* f4 */, 294 /* f5 */, 295 /* f6 */, 296 /* f7 */, 297 /* f8 */, 298 /* f9 */, 299 /* f10 */, 300 /* f11 */, 301 /* f12 */, 302 /* f13 */, 303 /* f14 */, 304 /* f15 */, 282 /* numLock */, 281 /* scrollLock */, 320 /* numPad0 */, 321 /* numPad1 */, 322 /* numPad2 */, 323 /* numPad3 */, 324 /* numPad4 */, 325 /* numPad5 */, 326 /* numPad6 */, 327 /* numPad7 */, 328 /* numPad8 */, 329 /* numPad9 */, 333 /* numPadSubtract */, 334 /* numPadAdd */, 330 /* numPadDecimal */, -1 /* kana */, -1 /* convert */, -1 /* noconvert */, -1 /* yen */, -1 /* numPadEquals */, -1 /* circumflex */, -1 /* at */, -1 /* colon */, -1 /* underscore */, -1 /* kanji */, -1 /* stop */, -1 /* ax */, 335 /* numPadEnter */, 345 /* rightCtrl */, -1 /* numPadComma */, 331 /* numPadDivide */, 346 /* rightAlt */, 284 /* pause */, 268 /* home */, 265 /* up */, 266 /* pageUp */, 263 /* left */, 262 /* right */, 269 /* end */, 264 /* down */, 267 /* pageDown */, 260 /* insert */, 261 /* delete */, ]; export const lwjgl3Code = (key) => { const result = lwjgl3Codes[key]; return result < 0 ? undefined : result; };