UNPKG

react-keyboard-hook

Version:
55 lines (54 loc) 3.9 kB
import { useEffect as B } from "react"; var P = /* @__PURE__ */ ((t) => (t[t.Unknown = 0] = "Unknown", t[t.Backspace = 8] = "Backspace", t[t.Tab = 9] = "Tab", t[t.Enter = 13] = "Enter", t[t.Shift = 16] = "Shift", t[t.Ctrl = 17] = "Ctrl", t[t.Alt = 18] = "Alt", t[t.PauseBreak = 19] = "PauseBreak", t[t.CapsLock = 20] = "CapsLock", t[t.Escape = 27] = "Escape", t[t.Space = 32] = "Space", t[t.PageUp = 33] = "PageUp", t[t.PageDown = 34] = "PageDown", t[t.End = 35] = "End", t[t.Home = 36] = "Home", t[t.LeftArrow = 37] = "LeftArrow", t[t.UpArrow = 38] = "UpArrow", t[t.RightArrow = 39] = "RightArrow", t[t.DownArrow = 40] = "DownArrow", t[t.Insert = 45] = "Insert", t[t.Delete = 46] = "Delete", t[t.KEY_0 = 48] = "KEY_0", t[t.KEY_1 = 49] = "KEY_1", t[t.KEY_2 = 50] = "KEY_2", t[t.KEY_3 = 51] = "KEY_3", t[t.KEY_4 = 52] = "KEY_4", t[t.KEY_5 = 53] = "KEY_5", t[t.KEY_6 = 54] = "KEY_6", t[t.KEY_7 = 55] = "KEY_7", t[t.KEY_8 = 56] = "KEY_8", t[t.KEY_9 = 57] = "KEY_9", t[t.KEY_A = 65] = "KEY_A", t[t.KEY_B = 66] = "KEY_B", t[t.KEY_C = 67] = "KEY_C", t[t.KEY_D = 68] = "KEY_D", t[t.KEY_E = 69] = "KEY_E", t[t.KEY_F = 70] = "KEY_F", t[t.KEY_G = 71] = "KEY_G", t[t.KEY_H = 72] = "KEY_H", t[t.KEY_I = 73] = "KEY_I", t[t.KEY_J = 74] = "KEY_J", t[t.KEY_K = 75] = "KEY_K", t[t.KEY_L = 76] = "KEY_L", t[t.KEY_M = 77] = "KEY_M", t[t.KEY_N = 78] = "KEY_N", t[t.KEY_O = 79] = "KEY_O", t[t.KEY_P = 80] = "KEY_P", t[t.KEY_Q = 81] = "KEY_Q", t[t.KEY_R = 82] = "KEY_R", t[t.KEY_S = 83] = "KEY_S", t[t.KEY_T = 84] = "KEY_T", t[t.KEY_U = 85] = "KEY_U", t[t.KEY_V = 86] = "KEY_V", t[t.KEY_W = 87] = "KEY_W", t[t.KEY_X = 88] = "KEY_X", t[t.KEY_Y = 89] = "KEY_Y", t[t.KEY_Z = 90] = "KEY_Z", t[t.Meta = 91] = "Meta", t[t.F1 = 112] = "F1", t[t.F2 = 113] = "F2", t[t.F3 = 114] = "F3", t[t.F4 = 115] = "F4", t[t.F5 = 116] = "F5", t[t.F6 = 117] = "F6", t[t.F7 = 118] = "F7", t[t.F8 = 119] = "F8", t[t.F9 = 120] = "F9", t[t.F10 = 121] = "F10", t[t.F11 = 122] = "F11", t[t.F12 = 123] = "F12", t[t.NumLock = 144] = "NumLock", t[t.ScrollLock = 145] = "ScrollLock", t[t.Equal = 187] = "Equal", t[t.Minus = 189] = "Minus", t[t.Backquote = 192] = "Backquote", t[t.Backslash = 220] = "Backslash", t))(P || {}), l = /* @__PURE__ */ ((t) => (t[t.CtrlCmd = 2048] = "CtrlCmd", t[t.Shift = 1024] = "Shift", t[t.Alt = 512] = "Alt", t[t.WinCtrl = 256] = "WinCtrl", t))(l || {}); const h = () => Boolean( typeof window < "u" && window.document && window.document.createElement ), w = () => h() ? navigator.platform.toUpperCase().indexOf("MAC") >= 0 : !1, D = () => ({ CtrlCmd: w() ? "metaKey" : "ctrlKey", WinCtrl: w() ? "ctrlKey" : "metaKey" }), L = (t) => { const a = t.filter((n) => !!l[n]), Y = { CtrlCmd: !1, Shift: !1, Alt: !1, WinCtrl: !1 }; return a.forEach((n) => { const _ = l[n]; Y[_] = !0; }), Y; }, U = (t, a, Y = {}) => { const n = Array.isArray(a) ? a : [a], { disableGlobalEvent: _ = !1, capture: F = !1, stopPropagation: m = !1, preventDefault: k = !0, event: i = "keydown" } = Y, s = L(n), p = n.filter((r) => !l[r]), { CtrlCmd: A, WinCtrl: g } = D(), c = (r) => { if (s.Shift && !r.shiftKey || s.Alt && !r.altKey || s.CtrlCmd && !r[A] || s.WinCtrl && !r[g]) return; const u = p.find((f) => f === r.keyCode); p && !u || (m && r.stopPropagation(), k && r.preventDefault(), t && t(r)); }; B(() => (_ || document.addEventListener(i, c), () => { document.removeEventListener(i, c); }), [_]); const E = (r, u = !1) => r !== i ? () => { } : u !== F ? () => { } : (f) => c(f); return { bindings: { onKeyDown: E("keydown"), onKeyDownCapture: E("keydown", !0), onKeyPress: E("keypress"), onKeyPressCapture: E("keypress", !0), onKeyUp: E("keyup"), onKeyUpCapture: E("keyup", !0) } }; }; export { P as KeyCode, l as KeyMod, U as default }; //# sourceMappingURL=react-keyboard-hook.es.js.map