{"version":3,"sources":["webpack:///webpack/bootstrap f68a1210443f99d0c85c","webpack:///./src/example.js","webpack:///./src/pressed.js","webpack:///./~/keycode/index.js"],"names":["start","pressedKeyList","document","getElementById","pressedKeyCodeList","every","some","leftCommand","anyCommand","mouse0","mouse2","anyMouse","onFrame","waitingString","detectedString","downKeys","listAllKeys","downKeyCodes","listAllKeyCodes","innerHTML","length","join","window","requestAnimationFrame","oncontextmenu","list","isListening","LEFT_COMMAND_STRING","LEFT_COMMAND","RIGHT_COMMAND","HIGHEST_MOUSE_CODE","mousecode","code","toLowerCase","search","charAt","mouseAndKeyCode","key","pressed","checkForListener","checkList","undefined","isNaN","Error","mouseButton","keys","reduce","defined","Object","map","parseInt","eventEmitter","addEventListener","removeEventListener","onKeyDown","onKeyUp","onBlur","onMouseDown","onMouseUp","reset","add","remove","keyCode","button","event","stop","module","exports"],"mappings":"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,SAAnBA,gBAAmB,GAAM;AAC7B,OAAI,CAACb,WAAL,EAAkB;AAChB,WAAM,IAAIiB,KAAJ,CAAU,sFAAV,CAAN;AACD;AACF,EAJD;;AAMAuB,QAAOC,OAAP,GAAiB7B,OAAjB,C;;;;;;ACjLA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM,UAAU,OAAO,aAAa;AAC/C,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,aAAY,SAAS;;AAErB;AACA,iBAAgB,QAAQ;;AAExB;AACA,YAAW,QAAQ;;AAEnB;AACA,YAAW,QAAQ;;AAEnB;AACA;AACA;AACA;AACA;;AAEA,+CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA","file":"./example/example.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f68a1210443f99d0c85c","import pressed from '../src/pressed.js'\npressed.start()\n\nlet pressedKeyList = document.getElementById('pressedKeyList')\nlet pressedKeyCodeList = document.getElementById('pressedKeyCodeList')\nlet every = document.getElementById('every')\nlet some = document.getElementById('some')\nlet leftCommand = document.getElementById('leftCommand')\nlet anyCommand = document.getElementById('anyCommand')\nlet mouse0 = document.getElementById('mouse0')\nlet mouse2 = document.getElementById('mouse2')\nlet anyMouse = document.getElementById('anyMouse')\n\nfunction onFrame () {\n // console.log(pressed.list);\n const waitingString = '❌'\n const detectedString = '✅ '\n\n const downKeys = pressed.listAllKeys()\n const downKeyCodes = pressed.listAllKeyCodes()\n\n pressedKeyList.innerHTML = downKeys.length ? detectedString + downKeys.join(', ') : waitingString\n pressedKeyCodeList.innerHTML = downKeyCodes.length ? detectedString + downKeyCodes.join(', ') : waitingString\n\n every.innerHTML = pressed.every('L', 'shift') ? detectedString + 'Combo!' : waitingString\n\n some.innerHTML = pressed.some('a', 'e', 'i', 'o', 'u') ? detectedString + 'Vowel detected.' : waitingString\n\n leftCommand.innerHTML = pressed('left command') ? detectedString + 'Left Meta Key pressed!' : waitingString\n anyCommand.innerHTML = pressed.some('command') ? detectedString + 'Meta Key pressed!' : waitingString\n\n mouse0.innerHTML = pressed('mouse 0') ? detectedString + 'Left mouse button pressed!' : waitingString\n mouse2.innerHTML = pressed.some('mouse 2') ? detectedString + 'Right mouse button pressed' : waitingString\n anyMouse.innerHTML = pressed.some('mouse 0', 'mouse 1', 'mouse 2', 'mouse 3', 'mouse 4') ? detectedString + 'Some mouse button pressed!' : waitingString\n\n window.requestAnimationFrame(onFrame)\n}\nwindow.requestAnimationFrame(onFrame)\n\nwindow.oncontextmenu = () => false\n\n\n\n// WEBPACK FOOTER //\n// ./src/example.js","import keycode from 'keycode'\n\nlet list = {}\nlet isListening = false\n\nconst LEFT_COMMAND_STRING = 'left command'\nconst LEFT_COMMAND = 91\nconst RIGHT_COMMAND = 93\nconst HIGHEST_MOUSE_CODE = 4\n\nconst mousecode = (code) => {\n if (typeof (code) === 'string') {\n if (code.toLowerCase().search(/mouse /) === 0) {\n // return the mouse button code\n code = code.charAt(6)\n if ((code >= 0) && (code <= HIGHEST_MOUSE_CODE)) {\n return code\n }\n }\n }\n if (typeof (code) === 'number') {\n if ((code >= 0) && (code <= HIGHEST_MOUSE_CODE\n)) {\n return 'mouse ' + code\n }\n }\n return null\n}\n\nconst mouseAndKeyCode = (key) => {\n const code = mousecode(key)\n if (code !== null) {\n return code\n }\n return keycode(key)\n}\n\nconst pressed = (key) => {\n checkForListener()\n const checkList = (key) => list[key] !== undefined\n\n if (typeof (key) === 'string') {\n let code = mouseAndKeyCode(key)\n if (isNaN(code)) {\n throw new Error(key + ' is not a supported key name.')\n }\n\n // Special case for modifier key strings:\n // String representations of command should return true when either the\n // Left or Right Command key is pressed (unless the side is specified).\n if (code === 91) {\n if (key !== LEFT_COMMAND_STRING) {\n return checkList(LEFT_COMMAND) || checkList(RIGHT_COMMAND)\n }\n }\n key = code\n }\n\n if (isNaN(key)) {\n throw new Error('`key` must be either an integer key code or a string.')\n }\n\n return checkList(key)\n}\n\npressed.key = (key) => {\n if (mousecode(key)) {\n throw new Error('pressed.key() only accepts key strings or ints. For mouse clicks, use pressed.mosueButton()')\n }\n return pressed(key)\n}\n\npressed.mouseButton = (code) => {\n if (typeof (code) !== 'number') {\n throw new Error('pressed.mouseButton() only accepts integer arguments.')\n }\n code = mousecode(code)\n if (code === null) {\n throw new Error('pressed.mouseButton() only works with mouseCodes 0-4')\n }\n return pressed(code)\n}\n\npressed.every = (...keys) => {\n checkForListener()\n\n return keys.reduce((defined, key) => defined && pressed(key), true)\n}\n\npressed.some = (...keys) => {\n checkForListener()\n\n return keys.reduce((defined, key) => defined || pressed(key), false)\n}\n\npressed.listAllKeyCodes = () => Object.keys(list).map(key => { return parseInt(key) })\npressed.listAllKeys = () => pressed.listAllKeyCodes().map(keycode)\n\npressed.start = (eventEmitter) => {\n if (!isListening) {\n if (!eventEmitter && undefined !== window) {\n eventEmitter = window\n }\n if (!eventEmitter.addEventListener || !eventEmitter.removeEventListener) {\n throw new Error('Could not find a valid `eventEmitter` object (usually window). This code will not work outside of a browser environment (i.e. in node) unless you provide a valid object with addEventListener and removeEventListener that dispatches `keydown` and `keyup` events.')\n }\n eventEmitter.addEventListener('keydown', onKeyDown)\n eventEmitter.addEventListener('keyup', onKeyUp)\n eventEmitter.addEventListener('blur', onBlur)\n eventEmitter.addEventListener('mousedown', onMouseDown)\n eventEmitter.addEventListener('mouseup', onMouseUp)\n pressed.reset()\n isListening = true\n }\n}\n\npressed.reset = () => {\n list = {}\n pressed.list = list\n}\npressed.add = (...keys) => {\n keys.map((key) => {\n if (typeof (key) === 'string') {\n key = keycode(key)\n }\n list[key] = true\n })\n}\npressed.remove = (...keys) => {\n keys.map((key) => {\n if (typeof (key) === 'string') {\n key = keycode(key)\n }\n delete list[key]\n })\n}\n\nconst onKeyDown = ({keyCode}) => {\n list[keyCode] = true\n}\nconst onKeyUp = ({keyCode}) => {\n delete list[keyCode]\n}\nconst onMouseDown = ({button}) => {\n onKeyDown({keyCode:button})\n}\nconst onMouseUp = ({button}) => {\n onKeyUp({keyCode:button})\n}\n\nconst onBlur = (event) => {\n pressed.reset()\n}\n\npressed.stop = (eventEmitter) => {\n if (isListening) {\n if (!eventEmitter && undefined !== window) {\n eventEmitter = window\n }\n if (eventEmitter.removeEventListener) {\n eventEmitter.removeEventListener('keydown', onKeyDown)\n eventEmitter.removeEventListener('keyup', onKeyUp)\n eventEmitter.removeEventListener('blur', onBlur)\n pressed.reset()\n isListening = false\n }\n }\n}\n\npressed.isListening = () => isListening\n\nconst checkForListener = () => {\n if (!isListening) {\n throw new Error('Key listener is not running. You must run pressed.start() to initialize the tracker.')\n }\n}\n\nmodule.exports = pressed\n\n\n\n// WEBPACK FOOTER //\n// ./src/pressed.js","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\n\nexports = module.exports = function(searchInput) {\n // Keyboard Events\n if (searchInput && 'object' === typeof searchInput) {\n var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode\n if (hasKeyCode) searchInput = hasKeyCode\n }\n\n // Numbers\n if ('number' === typeof searchInput) return names[searchInput]\n\n // Everything else (cast to string)\n var search = String(searchInput)\n\n // check codes\n var foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // check aliases\n var foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // weird character?\n if (search.length === 1) return search.charCodeAt(0)\n\n return undefined\n}\n\n/**\n * Get by name\n *\n * exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'ctrl': 17,\n 'alt': 18,\n 'pause/break': 19,\n 'caps lock': 20,\n 'esc': 27,\n 'space': 32,\n 'page up': 33,\n 'page down': 34,\n 'end': 35,\n 'home': 36,\n 'left': 37,\n 'up': 38,\n 'right': 39,\n 'down': 40,\n 'insert': 45,\n 'delete': 46,\n 'command': 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222\n}\n\n// Helper aliases\n\nvar aliases = exports.aliases = {\n 'windows': 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n 'ctl': 17,\n 'control': 17,\n 'option': 18,\n 'pause': 19,\n 'break': 19,\n 'caps': 20,\n 'return': 13,\n 'escape': 27,\n 'spc': 32,\n 'pgup': 33,\n 'pgdn': 34,\n 'ins': 45,\n 'del': 46,\n 'cmd': 91\n}\n\n\n/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n codes[alias] = aliases[alias]\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/keycode/index.js\n// module id = 2\n// module chunks = 0"],"sourceRoot":""}