UNPKG

react-key-handler

Version:

React component to handle keyboard events

1 lines 45.5 kB
{"id":"../lib/utils.js","dependencies":[{"name":"/Users/adc/Developer/ayrton/react-key-handler/package.json","includedInParent":true,"mtime":1535648238901},{"name":"/Users/adc/Developer/ayrton/react-key-handler/.babelrc","includedInParent":true,"mtime":1535642334213},{"name":"./constants","loc":{"line":8,"column":7},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/utils.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/lib/constants.js"},{"name":"./types","loc":{"line":9,"column":38},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/utils.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/lib/types.js"}],"generated":{"js":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isInput = isInput;\nexports.matchesKeyboardEvent = matchesKeyboardEvent;\nexports.eventKey = eventKey;\n\nvar _constants = require('./constants');\n\nrequire('./types');\n\n/**\n * Check if `given` element is an input / textarea form element or acts as one.\n */\n\nfunction isInput(element) {\n if (!element) {\n return false;\n }\n\n var tagName = element.tagName;\n\n var editable = isContentEditable(element);\n\n return tagName === 'INPUT' || tagName === 'TEXTAREA' || editable;\n}\n\nfunction isContentEditable(element) {\n if (typeof element.getAttribute !== 'function') {\n return false;\n }\n\n return !!element.getAttribute('contenteditable');\n}\n\n/**\n * Matches an event against a given keyboard key.\n */\n\nfunction matchesElementOrArray(a, b) {\n if (Array.isArray(a)) {\n return a.includes(b);\n }\n return a === b;\n}\n\nfunction matchesKeyboardEvent(event, _ref) {\n var keyCode = _ref.keyCode,\n keyValue = _ref.keyValue,\n code = _ref.code;\n\n if (!isNullOrUndefined(keyValue)) {\n var value = eventKey(event);\n if (matchesElementOrArray(keyValue, value)) {\n return true;\n }\n }\n\n if (!isNullOrUndefined(code)) {\n if (matchesElementOrArray(code, event.code)) {\n return true;\n }\n }\n\n if (!isNullOrUndefined(keyCode)) {\n // Firefox handles keyCode through which\n var keyCodeTarget = event.keyCode || event.which;\n if (matchesElementOrArray(keyCode, keyCodeTarget)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isNullOrUndefined(value) {\n return value === undefined || value === null;\n}\n\nfunction eventKey(event) {\n var key = event.key,\n keyCode = event.keyCode,\n type = event.type;\n\n\n if (key) {\n var normalizedKey = _constants.NORMALIZED_KEYS[key] || key;\n\n if (normalizedKey !== 'Unidentified') {\n return normalizedKey;\n }\n }\n\n if (type === _constants.KEYPRESS) {\n var charCode = eventCharCode(event);\n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n\n if (type === _constants.KEYDOWN || type === _constants.KEYUP) {\n return _constants.KEY_CODE_KEYS[String(keyCode)] || 'Unidentified';\n }\n\n return '';\n}\n\nfunction eventCharCode(event) {\n var charCode = event.charCode,\n keyCode = event.keyCode;\n\n\n if ('charCode' in event) {\n if (charCode === 0 && keyCode === 13) {\n return 13;\n }\n } else {\n charCode = keyCode;\n }\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}","map":{"mappings":[{"name":"isInput","generated":{"line":6,"column":8},"source":"../lib/utils.js","original":{"line":21,"column":16}},{"name":"isInput","generated":{"line":6,"column":18},"source":"../lib/utils.js","original":{"line":21,"column":16}},{"name":"matchesKeyboardEvent","generated":{"line":7,"column":8},"source":"../lib/utils.js","original":{"line":51,"column":16}},{"name":"matchesKeyboardEvent","generated":{"line":7,"column":31},"source":"../lib/utils.js","original":{"line":51,"column":16}},{"name":"eventKey","generated":{"line":8,"column":8},"source":"../lib/utils.js","original":{"line":83,"column":16}},{"name":"eventKey","generated":{"line":8,"column":19},"source":"../lib/utils.js","original":{"line":83,"column":16}},{"generated":{"line":10,"column":0},"source":"../lib/utils.js","original":{"line":2,"column":0}},{"generated":{"line":12,"column":0},"source":"../lib/utils.js","original":{"line":9,"column":0}},{"generated":{"line":14,"column":0},"source":"../lib/utils.js","original":{"line":17,"column":0}},{"generated":{"line":18,"column":0},"source":"../lib/utils.js","original":{"line":21,"column":7}},{"name":"isInput","generated":{"line":18,"column":9},"source":"../lib/utils.js","original":{"line":21,"column":16}},{"generated":{"line":18,"column":16},"source":"../lib/utils.js","original":{"line":21,"column":7}},{"name":"element","generated":{"line":18,"column":17},"source":"../lib/utils.js","original":{"line":21,"column":24}},{"generated":{"line":18,"column":24},"source":"../lib/utils.js","original":{"line":21,"column":7}},{"generated":{"line":18,"column":26},"source":"../lib/utils.js","original":{"line":21,"column":55}},{"generated":{"line":19,"column":0},"source":"../lib/utils.js","original":{"line":22,"column":2}},{"generated":{"line":19,"column":6},"source":"../lib/utils.js","original":{"line":22,"column":6}},{"name":"element","generated":{"line":19,"column":7},"source":"../lib/utils.js","original":{"line":22,"column":7}},{"generated":{"line":19,"column":14},"source":"../lib/utils.js","original":{"line":22,"column":2}},{"generated":{"line":19,"column":16},"source":"../lib/utils.js","original":{"line":22,"column":16}},{"generated":{"line":20,"column":0},"source":"../lib/utils.js","original":{"line":23,"column":4}},{"generated":{"line":20,"column":11},"source":"../lib/utils.js","original":{"line":23,"column":11}},{"generated":{"line":20,"column":16},"source":"../lib/utils.js","original":{"line":23,"column":4}},{"generated":{"line":21,"column":0},"source":"../lib/utils.js","original":{"line":24,"column":3}},{"generated":{"line":23,"column":0},"source":"../lib/utils.js","original":{"line":21,"column":55}},{"name":"tagName","generated":{"line":23,"column":6},"source":"../lib/utils.js","original":{"line":26,"column":10}},{"generated":{"line":23,"column":13},"source":"../lib/utils.js","original":{"line":21,"column":55}},{"name":"element","generated":{"line":23,"column":16},"source":"../lib/utils.js","original":{"line":26,"column":22}},{"generated":{"line":23,"column":23},"source":"../lib/utils.js","original":{"line":21,"column":55}},{"name":"tagName","generated":{"line":23,"column":24},"source":"../lib/utils.js","original":{"line":26,"column":10}},{"generated":{"line":23,"column":31},"source":"../lib/utils.js","original":{"line":21,"column":55}},{"generated":{"line":25,"column":0},"source":"../lib/utils.js","original":{"line":27,"column":2}},{"name":"editable","generated":{"line":25,"column":6},"source":"../lib/utils.js","original":{"line":27,"column":8}},{"name":"isContentEditable","generated":{"line":25,"column":17},"source":"../lib/utils.js","original":{"line":27,"column":19}},{"name":"element","generated":{"line":25,"column":35},"source":"../lib/utils.js","original":{"line":27,"column":37}},{"generated":{"line":25,"column":42},"source":"../lib/utils.js","original":{"line":27,"column":19}},{"generated":{"line":25,"column":43},"source":"../lib/utils.js","original":{"line":27,"column":2}},{"generated":{"line":27,"column":0},"source":"../lib/utils.js","original":{"line":29,"column":2}},{"name":"tagName","generated":{"line":27,"column":9},"source":"../lib/utils.js","original":{"line":29,"column":9}},{"generated":{"line":27,"column":21},"source":"../lib/utils.js","original":{"line":29,"column":21}},{"generated":{"line":27,"column":28},"source":"../lib/utils.js","original":{"line":29,"column":9}},{"name":"tagName","generated":{"line":27,"column":32},"source":"../lib/utils.js","original":{"line":29,"column":32}},{"generated":{"line":27,"column":44},"source":"../lib/utils.js","original":{"line":29,"column":44}},{"generated":{"line":27,"column":54},"source":"../lib/utils.js","original":{"line":29,"column":9}},{"name":"editable","generated":{"line":27,"column":58},"source":"../lib/utils.js","original":{"line":29,"column":58}},{"generated":{"line":27,"column":66},"source":"../lib/utils.js","original":{"line":29,"column":2}},{"generated":{"line":28,"column":0},"source":"../lib/utils.js","original":{"line":30,"column":1}},{"generated":{"line":30,"column":0},"source":"../lib/utils.js","original":{"line":32,"column":0}},{"name":"isContentEditable","generated":{"line":30,"column":9},"source":"../lib/utils.js","original":{"line":32,"column":9}},{"generated":{"line":30,"column":26},"source":"../lib/utils.js","original":{"line":32,"column":0}},{"name":"element","generated":{"line":30,"column":27},"source":"../lib/utils.js","original":{"line":32,"column":27}},{"generated":{"line":30,"column":34},"source":"../lib/utils.js","original":{"line":32,"column":0}},{"generated":{"line":30,"column":36},"source":"../lib/utils.js","original":{"line":32,"column":58}},{"generated":{"line":31,"column":0},"source":"../lib/utils.js","original":{"line":33,"column":2}},{"generated":{"line":31,"column":6},"source":"../lib/utils.js","original":{"line":33,"column":6}},{"name":"element","generated":{"line":31,"column":13},"source":"../lib/utils.js","original":{"line":33,"column":13}},{"name":"getAttribute","generated":{"line":31,"column":21},"source":"../lib/utils.js","original":{"line":33,"column":21}},{"generated":{"line":31,"column":33},"source":"../lib/utils.js","original":{"line":33,"column":6}},{"generated":{"line":31,"column":38},"source":"../lib/utils.js","original":{"line":33,"column":38}},{"generated":{"line":31,"column":48},"source":"../lib/utils.js","original":{"line":33,"column":2}},{"generated":{"line":31,"column":50},"source":"../lib/utils.js","original":{"line":33,"column":50}},{"generated":{"line":32,"column":0},"source":"../lib/utils.js","original":{"line":34,"column":4}},{"generated":{"line":32,"column":11},"source":"../lib/utils.js","original":{"line":34,"column":11}},{"generated":{"line":32,"column":16},"source":"../lib/utils.js","original":{"line":34,"column":4}},{"generated":{"line":33,"column":0},"source":"../lib/utils.js","original":{"line":35,"column":3}},{"generated":{"line":35,"column":0},"source":"../lib/utils.js","original":{"line":37,"column":2}},{"generated":{"line":35,"column":9},"source":"../lib/utils.js","original":{"line":37,"column":9}},{"generated":{"line":35,"column":10},"source":"../lib/utils.js","original":{"line":37,"column":10}},{"name":"element","generated":{"line":35,"column":11},"source":"../lib/utils.js","original":{"line":37,"column":11}},{"name":"getAttribute","generated":{"line":35,"column":19},"source":"../lib/utils.js","original":{"line":37,"column":19}},{"generated":{"line":35,"column":31},"source":"../lib/utils.js","original":{"line":37,"column":11}},{"generated":{"line":35,"column":32},"source":"../lib/utils.js","original":{"line":37,"column":32}},{"generated":{"line":35,"column":49},"source":"../lib/utils.js","original":{"line":37,"column":11}},{"generated":{"line":35,"column":50},"source":"../lib/utils.js","original":{"line":37,"column":2}},{"generated":{"line":36,"column":0},"source":"../lib/utils.js","original":{"line":38,"column":1}},{"generated":{"line":38,"column":0},"source":"../lib/utils.js","original":{"line":40,"column":0}},{"generated":{"line":42,"column":0},"source":"../lib/utils.js","original":{"line":44,"column":0}},{"name":"matchesElementOrArray","generated":{"line":42,"column":9},"source":"../lib/utils.js","original":{"line":44,"column":9}},{"generated":{"line":42,"column":30},"source":"../lib/utils.js","original":{"line":44,"column":0}},{"name":"a","generated":{"line":42,"column":31},"source":"../lib/utils.js","original":{"line":44,"column":34}},{"generated":{"line":42,"column":32},"source":"../lib/utils.js","original":{"line":44,"column":0}},{"name":"b","generated":{"line":42,"column":34},"source":"../lib/utils.js","original":{"line":44,"column":46}},{"generated":{"line":42,"column":35},"source":"../lib/utils.js","original":{"line":44,"column":0}},{"generated":{"line":42,"column":37},"source":"../lib/utils.js","original":{"line":44,"column":52}},{"generated":{"line":43,"column":0},"source":"../lib/utils.js","original":{"line":45,"column":2}},{"name":"Array","generated":{"line":43,"column":6},"source":"../lib/utils.js","original":{"line":45,"column":6}},{"name":"isArray","generated":{"line":43,"column":12},"source":"../lib/utils.js","original":{"line":45,"column":12}},{"generated":{"line":43,"column":19},"source":"../lib/utils.js","original":{"line":45,"column":6}},{"name":"a","generated":{"line":43,"column":20},"source":"../lib/utils.js","original":{"line":45,"column":20}},{"generated":{"line":43,"column":21},"source":"../lib/utils.js","original":{"line":45,"column":6}},{"generated":{"line":43,"column":22},"source":"../lib/utils.js","original":{"line":45,"column":2}},{"generated":{"line":43,"column":24},"source":"../lib/utils.js","original":{"line":45,"column":24}},{"generated":{"line":44,"column":0},"source":"../lib/utils.js","original":{"line":46,"column":4}},{"name":"a","generated":{"line":44,"column":11},"source":"../lib/utils.js","original":{"line":46,"column":11}},{"name":"includes","generated":{"line":44,"column":13},"source":"../lib/utils.js","original":{"line":46,"column":13}},{"generated":{"line":44,"column":21},"source":"../lib/utils.js","original":{"line":46,"column":11}},{"name":"b","generated":{"line":44,"column":22},"source":"../lib/utils.js","original":{"line":46,"column":22}},{"generated":{"line":44,"column":23},"source":"../lib/utils.js","original":{"line":46,"column":11}},{"generated":{"line":44,"column":24},"source":"../lib/utils.js","original":{"line":46,"column":4}},{"generated":{"line":45,"column":0},"source":"../lib/utils.js","original":{"line":47,"column":3}},{"generated":{"line":46,"column":0},"source":"../lib/utils.js","original":{"line":48,"column":2}},{"name":"a","generated":{"line":46,"column":9},"source":"../lib/utils.js","original":{"line":48,"column":9}},{"name":"b","generated":{"line":46,"column":15},"source":"../lib/utils.js","original":{"line":48,"column":15}},{"generated":{"line":46,"column":16},"source":"../lib/utils.js","original":{"line":48,"column":2}},{"generated":{"line":47,"column":0},"source":"../lib/utils.js","original":{"line":49,"column":1}},{"generated":{"line":49,"column":0},"source":"../lib/utils.js","original":{"line":51,"column":7}},{"name":"matchesKeyboardEvent","generated":{"line":49,"column":9},"source":"../lib/utils.js","original":{"line":51,"column":16}},{"generated":{"line":49,"column":29},"source":"../lib/utils.js","original":{"line":51,"column":7}},{"name":"event","generated":{"line":49,"column":30},"source":"../lib/utils.js","original":{"line":52,"column":2}},{"generated":{"line":49,"column":35},"source":"../lib/utils.js","original":{"line":51,"column":7}},{"generated":{"line":49,"column":43},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"generated":{"line":50,"column":0},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"name":"keyCode","generated":{"line":50,"column":6},"source":"../lib/utils.js","original":{"line":53,"column":4}},{"generated":{"line":50,"column":13},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"name":"keyCode","generated":{"line":50,"column":21},"source":"../lib/utils.js","original":{"line":53,"column":4}},{"generated":{"line":50,"column":28},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"generated":{"line":51,"column":0},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"name":"keyValue","generated":{"line":51,"column":6},"source":"../lib/utils.js","original":{"line":53,"column":13}},{"generated":{"line":51,"column":14},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"name":"keyValue","generated":{"line":51,"column":22},"source":"../lib/utils.js","original":{"line":53,"column":13}},{"generated":{"line":51,"column":30},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"generated":{"line":52,"column":0},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"name":"code","generated":{"line":52,"column":6},"source":"../lib/utils.js","original":{"line":53,"column":23}},{"generated":{"line":52,"column":10},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"name":"code","generated":{"line":52,"column":18},"source":"../lib/utils.js","original":{"line":53,"column":23}},{"generated":{"line":52,"column":22},"source":"../lib/utils.js","original":{"line":54,"column":11}},{"generated":{"line":54,"column":0},"source":"../lib/utils.js","original":{"line":55,"column":2}},{"generated":{"line":54,"column":6},"source":"../lib/utils.js","original":{"line":55,"column":6}},{"name":"isNullOrUndefined","generated":{"line":54,"column":7},"source":"../lib/utils.js","original":{"line":55,"column":7}},{"name":"keyValue","generated":{"line":54,"column":25},"source":"../lib/utils.js","original":{"line":55,"column":25}},{"generated":{"line":54,"column":33},"source":"../lib/utils.js","original":{"line":55,"column":7}},{"generated":{"line":54,"column":34},"source":"../lib/utils.js","original":{"line":55,"column":2}},{"generated":{"line":54,"column":36},"source":"../lib/utils.js","original":{"line":55,"column":36}},{"generated":{"line":55,"column":0},"source":"../lib/utils.js","original":{"line":56,"column":4}},{"name":"value","generated":{"line":55,"column":8},"source":"../lib/utils.js","original":{"line":56,"column":10}},{"name":"eventKey","generated":{"line":55,"column":16},"source":"../lib/utils.js","original":{"line":56,"column":18}},{"name":"event","generated":{"line":55,"column":25},"source":"../lib/utils.js","original":{"line":56,"column":27}},{"generated":{"line":55,"column":30},"source":"../lib/utils.js","original":{"line":56,"column":18}},{"generated":{"line":55,"column":31},"source":"../lib/utils.js","original":{"line":56,"column":4}},{"generated":{"line":56,"column":0},"source":"../lib/utils.js","original":{"line":57,"column":4}},{"name":"matchesElementOrArray","generated":{"line":56,"column":8},"source":"../lib/utils.js","original":{"line":57,"column":8}},{"name":"keyValue","generated":{"line":56,"column":30},"source":"../lib/utils.js","original":{"line":57,"column":30}},{"generated":{"line":56,"column":38},"source":"../lib/utils.js","original":{"line":57,"column":8}},{"name":"value","generated":{"line":56,"column":40},"source":"../lib/utils.js","original":{"line":57,"column":40}},{"generated":{"line":56,"column":45},"source":"../lib/utils.js","original":{"line":57,"column":8}},{"generated":{"line":56,"column":46},"source":"../lib/utils.js","original":{"line":57,"column":4}},{"generated":{"line":56,"column":48},"source":"../lib/utils.js","original":{"line":57,"column":48}},{"generated":{"line":57,"column":0},"source":"../lib/utils.js","original":{"line":58,"column":6}},{"generated":{"line":57,"column":13},"source":"../lib/utils.js","original":{"line":58,"column":13}},{"generated":{"line":57,"column":17},"source":"../lib/utils.js","original":{"line":58,"column":6}},{"generated":{"line":58,"column":0},"source":"../lib/utils.js","original":{"line":59,"column":5}},{"generated":{"line":59,"column":0},"source":"../lib/utils.js","original":{"line":60,"column":3}},{"generated":{"line":61,"column":0},"source":"../lib/utils.js","original":{"line":62,"column":2}},{"generated":{"line":61,"column":6},"source":"../lib/utils.js","original":{"line":62,"column":6}},{"name":"isNullOrUndefined","generated":{"line":61,"column":7},"source":"../lib/utils.js","original":{"line":62,"column":7}},{"name":"code","generated":{"line":61,"column":25},"source":"../lib/utils.js","original":{"line":62,"column":25}},{"generated":{"line":61,"column":29},"source":"../lib/utils.js","original":{"line":62,"column":7}},{"generated":{"line":61,"column":30},"source":"../lib/utils.js","original":{"line":62,"column":2}},{"generated":{"line":61,"column":32},"source":"../lib/utils.js","original":{"line":62,"column":32}},{"generated":{"line":62,"column":0},"source":"../lib/utils.js","original":{"line":63,"column":4}},{"name":"matchesElementOrArray","generated":{"line":62,"column":8},"source":"../lib/utils.js","original":{"line":63,"column":8}},{"name":"code","generated":{"line":62,"column":30},"source":"../lib/utils.js","original":{"line":63,"column":30}},{"generated":{"line":62,"column":34},"source":"../lib/utils.js","original":{"line":63,"column":8}},{"name":"event","generated":{"line":62,"column":36},"source":"../lib/utils.js","original":{"line":63,"column":36}},{"name":"code","generated":{"line":62,"column":42},"source":"../lib/utils.js","original":{"line":63,"column":42}},{"generated":{"line":62,"column":46},"source":"../lib/utils.js","original":{"line":63,"column":8}},{"generated":{"line":62,"column":47},"source":"../lib/utils.js","original":{"line":63,"column":4}},{"generated":{"line":62,"column":49},"source":"../lib/utils.js","original":{"line":63,"column":49}},{"generated":{"line":63,"column":0},"source":"../lib/utils.js","original":{"line":64,"column":6}},{"generated":{"line":63,"column":13},"source":"../lib/utils.js","original":{"line":64,"column":13}},{"generated":{"line":63,"column":17},"source":"../lib/utils.js","original":{"line":64,"column":6}},{"generated":{"line":64,"column":0},"source":"../lib/utils.js","original":{"line":65,"column":5}},{"generated":{"line":65,"column":0},"source":"../lib/utils.js","original":{"line":66,"column":3}},{"generated":{"line":67,"column":0},"source":"../lib/utils.js","original":{"line":68,"column":2}},{"generated":{"line":67,"column":6},"source":"../lib/utils.js","original":{"line":68,"column":6}},{"name":"isNullOrUndefined","generated":{"line":67,"column":7},"source":"../lib/utils.js","original":{"line":68,"column":7}},{"name":"keyCode","generated":{"line":67,"column":25},"source":"../lib/utils.js","original":{"line":68,"column":25}},{"generated":{"line":67,"column":32},"source":"../lib/utils.js","original":{"line":68,"column":7}},{"generated":{"line":67,"column":33},"source":"../lib/utils.js","original":{"line":68,"column":2}},{"generated":{"line":67,"column":35},"source":"../lib/utils.js","original":{"line":68,"column":35}},{"generated":{"line":68,"column":0},"source":"../lib/utils.js","original":{"line":69,"column":4}},{"generated":{"line":69,"column":0},"source":"../lib/utils.js","original":{"line":70,"column":4}},{"name":"keyCodeTarget","generated":{"line":69,"column":8},"source":"../lib/utils.js","original":{"line":70,"column":10}},{"name":"event","generated":{"line":69,"column":24},"source":"../lib/utils.js","original":{"line":70,"column":26}},{"name":"keyCode","generated":{"line":69,"column":30},"source":"../lib/utils.js","original":{"line":70,"column":32}},{"generated":{"line":69,"column":37},"source":"../lib/utils.js","original":{"line":70,"column":26}},{"name":"event","generated":{"line":69,"column":41},"source":"../lib/utils.js","original":{"line":70,"column":43}},{"name":"which","generated":{"line":69,"column":47},"source":"../lib/utils.js","original":{"line":70,"column":49}},{"generated":{"line":69,"column":52},"source":"../lib/utils.js","original":{"line":70,"column":4}},{"generated":{"line":70,"column":0},"source":"../lib/utils.js","original":{"line":71,"column":4}},{"name":"matchesElementOrArray","generated":{"line":70,"column":8},"source":"../lib/utils.js","original":{"line":71,"column":8}},{"name":"keyCode","generated":{"line":70,"column":30},"source":"../lib/utils.js","original":{"line":71,"column":30}},{"generated":{"line":70,"column":37},"source":"../lib/utils.js","original":{"line":71,"column":8}},{"name":"keyCodeTarget","generated":{"line":70,"column":39},"source":"../lib/utils.js","original":{"line":71,"column":39}},{"generated":{"line":70,"column":52},"source":"../lib/utils.js","original":{"line":71,"column":8}},{"generated":{"line":70,"column":53},"source":"../lib/utils.js","original":{"line":71,"column":4}},{"generated":{"line":70,"column":55},"source":"../lib/utils.js","original":{"line":71,"column":55}},{"generated":{"line":71,"column":0},"source":"../lib/utils.js","original":{"line":72,"column":6}},{"generated":{"line":71,"column":13},"source":"../lib/utils.js","original":{"line":72,"column":13}},{"generated":{"line":71,"column":17},"source":"../lib/utils.js","original":{"line":72,"column":6}},{"generated":{"line":72,"column":0},"source":"../lib/utils.js","original":{"line":73,"column":5}},{"generated":{"line":73,"column":0},"source":"../lib/utils.js","original":{"line":74,"column":3}},{"generated":{"line":75,"column":0},"source":"../lib/utils.js","original":{"line":76,"column":2}},{"generated":{"line":75,"column":9},"source":"../lib/utils.js","original":{"line":76,"column":9}},{"generated":{"line":75,"column":14},"source":"../lib/utils.js","original":{"line":76,"column":2}},{"generated":{"line":76,"column":0},"source":"../lib/utils.js","original":{"line":77,"column":1}},{"generated":{"line":78,"column":0},"source":"../lib/utils.js","original":{"line":79,"column":0}},{"name":"isNullOrUndefined","generated":{"line":78,"column":9},"source":"../lib/utils.js","original":{"line":79,"column":9}},{"generated":{"line":78,"column":26},"source":"../lib/utils.js","original":{"line":79,"column":0}},{"name":"value","generated":{"line":78,"column":27},"source":"../lib/utils.js","original":{"line":79,"column":27}},{"generated":{"line":78,"column":32},"source":"../lib/utils.js","original":{"line":79,"column":0}},{"generated":{"line":78,"column":34},"source":"../lib/utils.js","original":{"line":79,"column":43}},{"generated":{"line":79,"column":0},"source":"../lib/utils.js","original":{"line":80,"column":2}},{"name":"value","generated":{"line":79,"column":9},"source":"../lib/utils.js","original":{"line":80,"column":9}},{"name":"undefined","generated":{"line":79,"column":19},"source":"../lib/utils.js","original":{"line":80,"column":19}},{"generated":{"line":79,"column":28},"source":"../lib/utils.js","original":{"line":80,"column":9}},{"name":"value","generated":{"line":79,"column":32},"source":"../lib/utils.js","original":{"line":80,"column":32}},{"generated":{"line":79,"column":42},"source":"../lib/utils.js","original":{"line":80,"column":42}},{"generated":{"line":79,"column":46},"source":"../lib/utils.js","original":{"line":80,"column":2}},{"generated":{"line":80,"column":0},"source":"../lib/utils.js","original":{"line":81,"column":1}},{"generated":{"line":82,"column":0},"source":"../lib/utils.js","original":{"line":83,"column":7}},{"name":"eventKey","generated":{"line":82,"column":9},"source":"../lib/utils.js","original":{"line":83,"column":16}},{"generated":{"line":82,"column":17},"source":"../lib/utils.js","original":{"line":83,"column":7}},{"name":"event","generated":{"line":82,"column":18},"source":"../lib/utils.js","original":{"line":83,"column":25}},{"generated":{"line":82,"column":23},"source":"../lib/utils.js","original":{"line":83,"column":7}},{"generated":{"line":82,"column":25},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"generated":{"line":83,"column":0},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"key","generated":{"line":83,"column":6},"source":"../lib/utils.js","original":{"line":84,"column":10}},{"generated":{"line":83,"column":9},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"event","generated":{"line":83,"column":12},"source":"../lib/utils.js","original":{"line":84,"column":33}},{"generated":{"line":83,"column":17},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"key","generated":{"line":83,"column":18},"source":"../lib/utils.js","original":{"line":84,"column":10}},{"generated":{"line":83,"column":21},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"generated":{"line":84,"column":0},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"keyCode","generated":{"line":84,"column":6},"source":"../lib/utils.js","original":{"line":84,"column":15}},{"generated":{"line":84,"column":13},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"event","generated":{"line":84,"column":16},"source":"../lib/utils.js","original":{"line":84,"column":33}},{"generated":{"line":84,"column":21},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"keyCode","generated":{"line":84,"column":22},"source":"../lib/utils.js","original":{"line":84,"column":15}},{"generated":{"line":84,"column":29},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"generated":{"line":85,"column":0},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"type","generated":{"line":85,"column":6},"source":"../lib/utils.js","original":{"line":84,"column":24}},{"generated":{"line":85,"column":10},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"event","generated":{"line":85,"column":13},"source":"../lib/utils.js","original":{"line":84,"column":33}},{"generated":{"line":85,"column":18},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"name":"type","generated":{"line":85,"column":19},"source":"../lib/utils.js","original":{"line":84,"column":24}},{"generated":{"line":85,"column":23},"source":"../lib/utils.js","original":{"line":83,"column":55}},{"generated":{"line":88,"column":0},"source":"../lib/utils.js","original":{"line":86,"column":2}},{"name":"key","generated":{"line":88,"column":6},"source":"../lib/utils.js","original":{"line":86,"column":6}},{"generated":{"line":88,"column":9},"source":"../lib/utils.js","original":{"line":86,"column":2}},{"generated":{"line":88,"column":11},"source":"../lib/utils.js","original":{"line":86,"column":11}},{"generated":{"line":89,"column":0},"source":"../lib/utils.js","original":{"line":87,"column":4}},{"name":"normalizedKey","generated":{"line":89,"column":8},"source":"../lib/utils.js","original":{"line":87,"column":10}},{"name":"NORMALIZED_KEYS","generated":{"line":89,"column":24},"source":"../lib/utils.js","original":{"line":87,"column":26}},{"name":"key","generated":{"line":89,"column":51},"source":"../lib/utils.js","original":{"line":87,"column":42}},{"generated":{"line":89,"column":54},"source":"../lib/utils.js","original":{"line":87,"column":26}},{"name":"key","generated":{"line":89,"column":59},"source":"../lib/utils.js","original":{"line":87,"column":50}},{"generated":{"line":89,"column":62},"source":"../lib/utils.js","original":{"line":87,"column":4}},{"generated":{"line":91,"column":0},"source":"../lib/utils.js","original":{"line":89,"column":4}},{"name":"normalizedKey","generated":{"line":91,"column":8},"source":"../lib/utils.js","original":{"line":89,"column":8}},{"generated":{"line":91,"column":26},"source":"../lib/utils.js","original":{"line":89,"column":26}},{"generated":{"line":91,"column":40},"source":"../lib/utils.js","original":{"line":89,"column":4}},{"generated":{"line":91,"column":42},"source":"../lib/utils.js","original":{"line":89,"column":42}},{"generated":{"line":92,"column":0},"source":"../lib/utils.js","original":{"line":90,"column":6}},{"name":"normalizedKey","generated":{"line":92,"column":13},"source":"../lib/utils.js","original":{"line":90,"column":13}},{"generated":{"line":92,"column":26},"source":"../lib/utils.js","original":{"line":90,"column":6}},{"generated":{"line":93,"column":0},"source":"../lib/utils.js","original":{"line":91,"column":5}},{"generated":{"line":94,"column":0},"source":"../lib/utils.js","original":{"line":92,"column":3}},{"generated":{"line":96,"column":0},"source":"../lib/utils.js","original":{"line":94,"column":2}},{"name":"type","generated":{"line":96,"column":6},"source":"../lib/utils.js","original":{"line":94,"column":6}},{"name":"KEYPRESS","generated":{"line":96,"column":15},"source":"../lib/utils.js","original":{"line":94,"column":15}},{"generated":{"line":96,"column":34},"source":"../lib/utils.js","original":{"line":94,"column":2}},{"generated":{"line":96,"column":36},"source":"../lib/utils.js","original":{"line":94,"column":25}},{"generated":{"line":97,"column":0},"source":"../lib/utils.js","original":{"line":95,"column":4}},{"name":"charCode","generated":{"line":97,"column":8},"source":"../lib/utils.js","original":{"line":95,"column":10}},{"name":"eventCharCode","generated":{"line":97,"column":19},"source":"../lib/utils.js","original":{"line":95,"column":21}},{"name":"event","generated":{"line":97,"column":33},"source":"../lib/utils.js","original":{"line":95,"column":35}},{"generated":{"line":97,"column":38},"source":"../lib/utils.js","original":{"line":95,"column":21}},{"generated":{"line":97,"column":39},"source":"../lib/utils.js","original":{"line":95,"column":4}},{"generated":{"line":99,"column":0},"source":"../lib/utils.js","original":{"line":97,"column":4}},{"name":"charCode","generated":{"line":99,"column":11},"source":"../lib/utils.js","original":{"line":97,"column":11}},{"generated":{"line":99,"column":24},"source":"../lib/utils.js","original":{"line":97,"column":24}},{"generated":{"line":99,"column":26},"source":"../lib/utils.js","original":{"line":97,"column":11}},{"generated":{"line":99,"column":29},"source":"../lib/utils.js","original":{"line":97,"column":29}},{"generated":{"line":99,"column":36},"source":"../lib/utils.js","original":{"line":97,"column":11}},{"name":"String","generated":{"line":99,"column":39},"source":"../lib/utils.js","original":{"line":97,"column":39}},{"name":"fromCharCode","generated":{"line":99,"column":46},"source":"../lib/utils.js","original":{"line":97,"column":46}},{"generated":{"line":99,"column":58},"source":"../lib/utils.js","original":{"line":97,"column":39}},{"name":"charCode","generated":{"line":99,"column":59},"source":"../lib/utils.js","original":{"line":97,"column":59}},{"generated":{"line":99,"column":67},"source":"../lib/utils.js","original":{"line":97,"column":39}},{"generated":{"line":99,"column":68},"source":"../lib/utils.js","original":{"line":97,"column":4}},{"generated":{"line":100,"column":0},"source":"../lib/utils.js","original":{"line":98,"column":3}},{"generated":{"line":102,"column":0},"source":"../lib/utils.js","original":{"line":100,"column":2}},{"name":"type","generated":{"line":102,"column":6},"source":"../lib/utils.js","original":{"line":100,"column":6}},{"name":"KEYDOWN","generated":{"line":102,"column":15},"source":"../lib/utils.js","original":{"line":100,"column":15}},{"generated":{"line":102,"column":33},"source":"../lib/utils.js","original":{"line":100,"column":6}},{"name":"type","generated":{"line":102,"column":37},"source":"../lib/utils.js","original":{"line":100,"column":26}},{"name":"KEYUP","generated":{"line":102,"column":46},"source":"../lib/utils.js","original":{"line":100,"column":35}},{"generated":{"line":102,"column":62},"source":"../lib/utils.js","original":{"line":100,"column":2}},{"generated":{"line":102,"column":64},"source":"../lib/utils.js","original":{"line":100,"column":42}},{"generated":{"line":103,"column":0},"source":"../lib/utils.js","original":{"line":101,"column":4}},{"name":"KEY_CODE_KEYS","generated":{"line":103,"column":11},"source":"../lib/utils.js","original":{"line":101,"column":11}},{"name":"String","generated":{"line":103,"column":36},"source":"../lib/utils.js","original":{"line":101,"column":25}},{"name":"keyCode","generated":{"line":103,"column":43},"source":"../lib/utils.js","original":{"line":101,"column":32}},{"generated":{"line":103,"column":50},"source":"../lib/utils.js","original":{"line":101,"column":25}},{"generated":{"line":103,"column":51},"source":"../lib/utils.js","original":{"line":101,"column":11}},{"generated":{"line":103,"column":56},"source":"../lib/utils.js","original":{"line":101,"column":45}},{"generated":{"line":103,"column":70},"source":"../lib/utils.js","original":{"line":101,"column":4}},{"generated":{"line":104,"column":0},"source":"../lib/utils.js","original":{"line":102,"column":3}},{"generated":{"line":106,"column":0},"source":"../lib/utils.js","original":{"line":104,"column":2}},{"generated":{"line":106,"column":9},"source":"../lib/utils.js","original":{"line":104,"column":9}},{"generated":{"line":106,"column":11},"source":"../lib/utils.js","original":{"line":104,"column":2}},{"generated":{"line":107,"column":0},"source":"../lib/utils.js","original":{"line":105,"column":1}},{"generated":{"line":109,"column":0},"source":"../lib/utils.js","original":{"line":107,"column":0}},{"name":"eventCharCode","generated":{"line":109,"column":9},"source":"../lib/utils.js","original":{"line":107,"column":9}},{"generated":{"line":109,"column":22},"source":"../lib/utils.js","original":{"line":107,"column":0}},{"name":"event","generated":{"line":109,"column":23},"source":"../lib/utils.js","original":{"line":107,"column":23}},{"generated":{"line":109,"column":28},"source":"../lib/utils.js","original":{"line":107,"column":0}},{"generated":{"line":109,"column":30},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"generated":{"line":110,"column":0},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"name":"charCode","generated":{"line":110,"column":6},"source":"../lib/utils.js","original":{"line":108,"column":8}},{"generated":{"line":110,"column":14},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"name":"event","generated":{"line":110,"column":17},"source":"../lib/utils.js","original":{"line":108,"column":30}},{"generated":{"line":110,"column":22},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"name":"charCode","generated":{"line":110,"column":23},"source":"../lib/utils.js","original":{"line":108,"column":8}},{"generated":{"line":110,"column":31},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"generated":{"line":111,"column":0},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"name":"keyCode","generated":{"line":111,"column":6},"source":"../lib/utils.js","original":{"line":108,"column":18}},{"generated":{"line":111,"column":13},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"name":"event","generated":{"line":111,"column":16},"source":"../lib/utils.js","original":{"line":108,"column":30}},{"generated":{"line":111,"column":21},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"name":"keyCode","generated":{"line":111,"column":22},"source":"../lib/utils.js","original":{"line":108,"column":18}},{"generated":{"line":111,"column":29},"source":"../lib/utils.js","original":{"line":107,"column":53}},{"generated":{"line":114,"column":0},"source":"../lib/utils.js","original":{"line":110,"column":2}},{"generated":{"line":114,"column":6},"source":"../lib/utils.js","original":{"line":110,"column":6}},{"name":"event","generated":{"line":114,"column":20},"source":"../lib/utils.js","original":{"line":110,"column":20}},{"generated":{"line":114,"column":25},"source":"../lib/utils.js","original":{"line":110,"column":2}},{"generated":{"line":114,"column":27},"source":"../lib/utils.js","original":{"line":110,"column":27}},{"generated":{"line":115,"column":0},"source":"../lib/utils.js","original":{"line":111,"column":4}},{"name":"charCode","generated":{"line":115,"column":8},"source":"../lib/utils.js","original":{"line":111,"column":8}},{"generated":{"line":115,"column":21},"source":"../lib/utils.js","original":{"line":111,"column":21}},{"generated":{"line":115,"column":22},"source":"../lib/utils.js","original":{"line":111,"column":8}},{"name":"keyCode","generated":{"line":115,"column":26},"source":"../lib/utils.js","original":{"line":111,"column":26}},{"generated":{"line":115,"column":38},"source":"../lib/utils.js","original":{"line":111,"column":38}},{"generated":{"line":115,"column":40},"source":"../lib/utils.js","original":{"line":111,"column":4}},{"generated":{"line":115,"column":42},"source":"../lib/utils.js","original":{"line":111,"column":42}},{"generated":{"line":116,"column":0},"source":"../lib/utils.js","original":{"line":112,"column":6}},{"generated":{"line":116,"column":13},"source":"../lib/utils.js","original":{"line":112,"column":13}},{"generated":{"line":116,"column":15},"source":"../lib/utils.js","original":{"line":112,"column":6}},{"generated":{"line":117,"column":0},"source":"../lib/utils.js","original":{"line":113,"column":5}},{"generated":{"line":118,"column":0},"source":"../lib/utils.js","original":{"line":114,"column":3}},{"generated":{"line":118,"column":3},"source":"../lib/utils.js","original":{"line":110,"column":2}},{"generated":{"line":118,"column":9},"source":"../lib/utils.js","original":{"line":114,"column":9}},{"name":"charCode","generated":{"line":119,"column":0},"source":"../lib/utils.js","original":{"line":115,"column":4}},{"name":"keyCode","generated":{"line":119,"column":15},"source":"../lib/utils.js","original":{"line":115,"column":15}},{"generated":{"line":119,"column":22},"source":"../lib/utils.js","original":{"line":115,"column":4}},{"generated":{"line":120,"column":0},"source":"../lib/utils.js","original":{"line":116,"column":3}},{"generated":{"line":122,"column":0},"source":"../lib/utils.js","original":{"line":118,"column":2}},{"name":"charCode","generated":{"line":122,"column":6},"source":"../lib/utils.js","original":{"line":118,"column":6}},{"generated":{"line":122,"column":18},"source":"../lib/utils.js","original":{"line":118,"column":18}},{"generated":{"line":122,"column":20},"source":"../lib/utils.js","original":{"line":118,"column":6}},{"name":"charCode","generated":{"line":122,"column":24},"source":"../lib/utils.js","original":{"line":118,"column":24}},{"generated":{"line":122,"column":37},"source":"../lib/utils.js","original":{"line":118,"column":37}},{"generated":{"line":122,"column":39},"source":"../lib/utils.js","original":{"line":118,"column":2}},{"generated":{"line":122,"column":41},"source":"../lib/utils.js","original":{"line":118,"column":41}},{"generated":{"line":123,"column":0},"source":"../lib/utils.js","original":{"line":119,"column":4}},{"name":"charCode","generated":{"line":123,"column":11},"source":"../lib/utils.js","original":{"line":119,"column":11}},{"generated":{"line":123,"column":19},"source":"../lib/utils.js","original":{"line":119,"column":4}},{"generated":{"line":124,"column":0},"source":"../lib/utils.js","original":{"line":120,"column":3}},{"generated":{"line":126,"column":0},"source":"../lib/utils.js","original":{"line":122,"column":2}},{"generated":{"line":126,"column":9},"source":"../lib/utils.js","original":{"line":122,"column":9}},{"generated":{"line":126,"column":10},"source":"../lib/utils.js","original":{"line":122,"column":2}},{"generated":{"line":127,"column":0},"source":"../lib/utils.js","original":{"line":123,"column":1}}],"sources":{"../lib/utils.js":"/* @flow */\nimport {\n KEYDOWN,\n KEYPRESS,\n KEYUP,\n KEY_CODE_KEYS,\n NORMALIZED_KEYS,\n} from './constants';\nimport { type primitiveOrArray } from './types';\n\ntype KeyboardKey = {|\n +keyValue: ?primitiveOrArray<string>,\n +keyCode: ?primitiveOrArray<number>,\n +code: ?primitiveOrArray<string>,\n|};\n\n/**\n * Check if `given` element is an input / textarea form element or acts as one.\n */\n\nexport function isInput(element: HTMLElement): boolean {\n if (!element) {\n return false;\n }\n\n const { tagName } = element;\n const editable = isContentEditable(element);\n\n return tagName === 'INPUT' || tagName === 'TEXTAREA' || editable;\n}\n\nfunction isContentEditable(element: HTMLElement): boolean {\n if (typeof element.getAttribute !== 'function') {\n return false;\n }\n\n return !!element.getAttribute('contenteditable');\n}\n\n/**\n * Matches an event against a given keyboard key.\n */\n\nfunction matchesElementOrArray<T>(a: T | T[], b: T) {\n if (Array.isArray(a)) {\n return a.includes(b);\n }\n return a === b;\n}\n\nexport function matchesKeyboardEvent(\n event: KeyboardEvent,\n { keyCode, keyValue, code }: KeyboardKey,\n): boolean {\n if (!isNullOrUndefined(keyValue)) {\n const value = eventKey(event);\n if (matchesElementOrArray(keyValue, value)) {\n return true;\n }\n }\n\n if (!isNullOrUndefined(code)) {\n if (matchesElementOrArray(code, event.code)) {\n return true;\n }\n }\n\n if (!isNullOrUndefined(keyCode)) {\n // Firefox handles keyCode through which\n const keyCodeTarget = event.keyCode || event.which;\n if (matchesElementOrArray(keyCode, keyCodeTarget)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isNullOrUndefined(value): boolean {\n return value === undefined || value === null;\n}\n\nexport function eventKey(event: KeyboardEvent): string {\n const { key, keyCode, type } = event;\n\n if (key) {\n const normalizedKey = NORMALIZED_KEYS[key] || key;\n\n if (normalizedKey !== 'Unidentified') {\n return normalizedKey;\n }\n }\n\n if (type === KEYPRESS) {\n const charCode = eventCharCode(event);\n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n\n if (type === KEYDOWN || type === KEYUP) {\n return KEY_CODE_KEYS[String(keyCode)] || 'Unidentified';\n }\n\n return '';\n}\n\nfunction eventCharCode(event: KeyboardEvent): number {\n let { charCode, keyCode } = event;\n\n if ('charCode' in event) {\n if (charCode === 0 && keyCode === 13) {\n return 13;\n }\n } else {\n charCode = keyCode;\n }\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n"},"lineCount":null}},"hash":"727f7d3ba786681575ade83a4cd1df9a","cacheData":{"env":{}}}