Implementation
static final Map<String, Key> allKeys =
CanonicalizedMap<String, String, Key>.from({
'Power': power,
'Eject': eject,
'Abort': abort,
'Help': help,
'Backspace': backspace,
'Tab': tab,
'NumpadEnter': numpadEnter,
'Enter': enter,
'ShiftLeft': shiftLeft,
'ShiftRight': shiftRight,
'ControlLeft': controlLeft,
'ControlRight': controlRight,
'AltLeft': altLeft,
'AltRight': altRight,
'Pause': pause,
'CapsLock': capsLock,
'Escape': escape,
'Convert': convert,
'NonConvert': nonConvert,
'Space': space,
'PageUp': pageUp,
'PageDown': pageDown,
'End': end,
'Home': home,
'ArrowLeft': arrowLeft,
'ArrowUp': arrowUp,
'ArrowRight': arrowRight,
'ArrowDown': arrowDown,
'Select': select,
'Open': open,
'PrintScreen': printScreen,
'Insert': insert,
'Numpad0': numpad0,
'Delete': delete,
'NumpadDecimal': numpadDecimal,
'MetaLeft': metaLeft,
'MetaRight': metaRight,
'ContextMenu': contextMenu,
'NumpadMultiply': numpadMultiply,
'NumpadAdd': numpadAdd,
'NumpadSubtract': numpadSubtract,
'NumpadDivide': numpadDivide,
'F1': f1,
'F2': f2,
'F3': f3,
'F4': f4,
'F5': f5,
'F6': f6,
'F7': f7,
'F8': f8,
'F9': f9,
'F10': f10,
'F11': f11,
'F12': f12,
'F13': f13,
'F14': f14,
'F15': f15,
'F16': f16,
'F17': f17,
'F18': f18,
'F19': f19,
'F20': f20,
'F21': f21,
'F22': f22,
'F23': f23,
'F24': f24,
'NumLock': numLock,
'ScrollLock': scrollLock,
'AudioVolumeMute': audioVolumeMute,
'AudioVolumeDown': audioVolumeDown,
'AudioVolumeUp': audioVolumeUp,
'MediaTrackNext': mediaTrackNext,
'MediaTrackPrevious': mediaTrackPrevious,
'MediaStop': mediaStop,
'MediaPlayPause': mediaPlayPause,
'Semicolon': semicolon,
'Equal': equal,
'NumpadEqual': numpadEqual,
'Comma': comma,
'Minus': minus,
'Period': period,
'Slash': slash,
'Backquote': backquote,
'BracketLeft': bracketLeft,
'Backslash': backslash,
'BracketRight': bracketRight,
'Quote': quote,
'AltGraph': altGraph,
'Props': props,
'Cancel': cancel,
'Clear': clear,
'Shift': shift,
'Control': control,
'Alt': alt,
'Accept': accept,
'ModeChange': modeChange,
'Print': print,
'Execute': execute,
'Meta': meta,
'Attn': attn,
'CrSel': crSel,
'ExSel': exSel,
'EraseEof': eraseEof,
'Play': play,
'ZoomOut': zoomOut,
'Numpad1': numpad1,
'Numpad4': numpad4,
'Numpad8': numpad8,
'Numpad7': numpad7,
'Numpad3': numpad3,
'Numpad9': numpad9,
'Numpad6': numpad6,
'Numpad2': numpad2,
'Numpad5': numpad5,
'Digit0': digit0,
'Digit1': digit1,
'Digit2': digit2,
'Digit3': digit3,
'Digit4': digit4,
'Digit5': digit5,
'Digit6': digit6,
'Digit7': digit7,
'Digit8': digit8,
'Digit9': digit9,
'KeyA': keyA,
'KeyB': keyB,
'KeyC': keyC,
'KeyD': keyD,
'KeyE': keyE,
'KeyF': keyF,
'KeyG': keyG,
'KeyH': keyH,
'KeyI': keyI,
'KeyJ': keyJ,
'KeyK': keyK,
'KeyL': keyL,
'KeyM': keyM,
'KeyN': keyN,
'KeyO': keyO,
'KeyP': keyP,
'KeyQ': keyQ,
'KeyR': keyR,
'KeyS': keyS,
'KeyT': keyT,
'KeyU': keyU,
'KeyV': keyV,
'KeyW': keyW,
'KeyX': keyX,
'KeyY': keyY,
'KeyZ': keyZ,
}, (key) => key.toLowerCase().replaceAll(' ', ''));