UNPKG

2.86 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import hotkeys from \"hotkeys-js\";\n/**\n * @param {HTMLElement} [element=window] - The element to attach the hotkey listener to\n * @param {String[]} keyAry - A string of keys IE: 'enter', 'space', etc\n * @param {Object} [hotkeyOptions={}] - only supports scope and splitKey\n * documentation found here: https://github.com/jaywcjlove/hotkeys#option\n *\n * @param {string} hotkeyOptions.scope - The scope of the listener\n * @param {string} hotkeyOptions.splitKey - What to use as a split key, used for modifiers\n * @param {Object} [eventOptions={}] -\n * Possible options found here https://developer.mozilla.org/en-US/docs/Web/API/Event/Event\n * eventOptions also supports the detail: key\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent\n */\n\nfunction register({\n element = window,\n keys,\n hotkeyOptions = {},\n eventOptions = {}\n}) {\n keys.forEach(key => {\n Object.assign(eventOptions, {\n detail: {\n key: key\n }\n });\n const keyupEvent = new CustomEvent(`keyup:${key}`, eventOptions);\n const keydownEvent = new CustomEvent(`keydown:${key}`, eventOptions);\n const keyup = {\n keyup: true,\n keydown: false,\n element: element,\n scope: hotkeyOptions.scope,\n splitKey: hotkeyOptions.splitKey\n };\n const keydown = Object.assign(keyup, {\n keyup: false,\n keydown: true\n });\n hotkeys(key, keyup, () => element.dispatchEvent(keyupEvent));\n hotkeys(key, keydown, () => element.dispatchEvent(keydownEvent));\n });\n}\n\nconst hotkeyListener = {\n register\n};\nexport default hotkeyListener;"],"names":[],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC;AAClB,EAAE,OAAO,GAAG,MAAM;AAClB,EAAE,IAAI;AACN,EAAE,aAAa,GAAG,EAAE;AACpB,EAAE,YAAY,GAAG,EAAE;AACnB,CAAC,EAAE;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;AACtB,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;AAChC,MAAM,MAAM,EAAE;AACd,QAAQ,GAAG,EAAE,GAAG;AAChB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACrE,IAAI,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACzE,IAAI,MAAM,KAAK,GAAG;AAClB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,OAAO,EAAE,KAAK;AACpB,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,KAAK,EAAE,aAAa,CAAC,KAAK;AAChC,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ;AACtC,KAAK,CAAC;AACN,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACzC,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,OAAO,EAAE,IAAI;AACnB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;AACjE,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AACrE,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA,MAAM,cAAc,GAAG;AACvB,EAAE,QAAQ;AACV,CAAC;;;;"}
\No newline at end of file