export const keyCodes = new Map(
  Object.entries({
    8: "Backspace",
    9: "Tab",
    13: "Enter",
    16: "Shift",
    17: "Ctrl",
    18: "Alt",
    20: "CapsLock",
    27: "Escape",
    32: "Space",
    33: "PageUp",
    34: "PageDown",
    35: "End",
    36: "Home",
    37: "ArrowLeft",
    38: "ArrowUp",
    39: "ArrowRight",
    40: "ArrowDown",
    45: "Insert",
    46: "Delete",
    48: "0",
    49: "1",
    50: "2",
    51: "3",
    52: "4",
    53: "5",
    54: "6",
    55: "7",
    56: "8",
    57: "9",
    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: "MetaLeft",
    92: "MetaRight",
    93: "ContextMenu",
    96: "Numpad0",
    97: "Numpad1",
    98: "Numpad2",
    99: "Numpad3",
    100: "Numpad4",
    101: "Numpad5",
    102: "Numpad6",
    103: "Numpad7",
    104: "Numpad8",
    105: "Numpad9",
    106: "NumpadMultiply",
    107: "NumpadAdd",
    109: "NumpadSubtract",
    110: "NumpadDecimal",
    111: "NumpadDivide",
    112: "F1",
    113: "F2",
    114: "F3",
    115: "F4",
    116: "F5",
    117: "F6",
    118: "F7",
    119: "F8",
    120: "F9",
    121: "F10",
    122: "F11",
    123: "F12",
    144: "NumLock",
    145: "ScrollLock",
    186: "Semicolon",
    187: "Equal",
    188: "Comma",
    189: "Minus",
    190: "Period",
    191: "Slash",
    192: "Backquote",
    219: "BracketLeft",
    220: "Backslash",
    221: "BracketRight",
    222: "Quote",
  })
);

export enum KeyCodeHelper {
    "Backspace" = 8,
    "Tab" = 9,
    "Enter" = 13,
     "Shift" = 16,
     "Ctrl" = 17,
     "Alt" = 18,
     "CapsLock" = 20,
     "Escape" = 27,
     "Space" = 32,
    "PageUp"= 33,
     "PageDown" = 34,
     "End" = 35,
     "Home" = 36,
     "ArrowLeft" = 37,
    "ArrowUp" = 38,
     "ArrowRight" = 39,
     "ArrowDown" = 40,
    "Insert" = 45,
     "Delete" = 46,
     "Zero" = 48,
    "One" = 49,
   "Two" = 50,
     "Three" = 51,
     "Four" = 52,
     "Five" = 53,
     "Six" = 54,
     "Seven" = 55,
     "Eight" = 56,
     "Nine" = 57,
     "A" = 65,
     "B" = 66,
     "C" = 67,
     "D" = 68,
     "E" = 69,
     "F" = 70,
     "G" = 71,
     "H" = 72,
     "I" = 73,
     "J" = 74,
     "K" = 75,
     "L" = 76,
     "M" = 77,
     "N" = 78,
     "O" = 79,
     "P" = 80,
     "Q" = 81,
     "R" = 82,
     "S" = 83,
     "T" = 84,
     "U" = 85,
     "V" = 86,
     "W" = 87,
     "X" = 88,
     "Y" = 89,
     "Z" = 90,
     "MetaLeft" = 91,
     "MetaRight" = 92,
     "ContextMenu" = 93,
     "Numpad0" = 96,
     "Numpad1" = 97,
     "Numpad2" = 98,
     "Numpad3" = 99,
     "Numpad4" = 100,
     "Numpad5" = 101,
     "Numpad6" = 102,
     "Numpad7" = 103,
     "Numpad8" = 104,
     "Numpad9" = 105,
     "NumpadMultiply" = 106,
     "NumpadAdd" = 107,
     "NumpadSubtract" = 109,
     "NumpadDecimal" = 110,
     "NumpadDivide" = 111,
     "F1" = 112,
     "F2" = 113,
     "F3" = 114,
     "F4" = 115,
     "F5" = 116,
     "F6" = 117,
     "F7" = 118,
     "F8" = 119,
     "F9" = 120,
     "F10" = 121,
     "F11" = 122,
     "F12" = 123,
     "NumLock" = 144,
     "ScrollLock" = 145,
     "Semicolon" = 186,
     "Equal" = 187,
    "Comma" = 188,
     "Minus" = 189,
     "Period" = 190,
     "Slash" = 191,
     "Backquote" = 192,
     "BracketLeft" = 219,
     "Backslash" = 220,
    "BracketRight" = 221,
    "Quote" = 222,
  }