react-key-handler
Version:
React component to handle keyboard events
1 lines • 38.1 kB
JSON
{"id":"../lib/key-handler.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":"react","loc":{"line":3,"column":18},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/key-handler.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/node_modules/react/index.js"},{"name":"prop-types","loc":{"line":4,"column":22},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/key-handler.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/node_modules/prop-types/index.js"},{"name":"exenv","loc":{"line":5,"column":26},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/key-handler.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/node_modules/exenv/index.js"},{"name":"./constants","loc":{"line":7,"column":60},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/key-handler.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/lib/constants.js"},{"name":"./types","loc":{"line":8,"column":38},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/key-handler.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/lib/types.js"},{"name":"./utils","loc":{"line":9,"column":46},"parent":"/Users/adc/Developer/ayrton/react-key-handler/lib/key-handler.js","resolved":"/Users/adc/Developer/ayrton/react-key-handler/lib/utils.js"}],"generated":{"js":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _exenv = require('exenv');\n\nvar _constants = require('./constants');\n\nrequire('./types');\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar KeyHandler = function (_React$Component) {\n _inherits(KeyHandler, _React$Component);\n\n _createClass(KeyHandler, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n return false;\n }\n }]);\n\n function KeyHandler(props) {\n _classCallCheck(this, KeyHandler);\n\n /* eslint-disable no-console */\n var _this = _possibleConstructorReturn(this, (KeyHandler.__proto__ || Object.getPrototypeOf(KeyHandler)).call(this, props));\n\n _this.handleKey = function (event) {\n var _this$props = _this.props,\n keyValue = _this$props.keyValue,\n keyCode = _this$props.keyCode,\n code = _this$props.code,\n onKeyHandle = _this$props.onKeyHandle;\n\n\n if (!onKeyHandle) {\n return;\n }\n\n var target = event.target;\n\n\n if (target instanceof window.HTMLElement && (0, _utils.isInput)(target)) {\n return;\n }\n\n if (!(0, _utils.matchesKeyboardEvent)(event, { keyValue: keyValue, keyCode: keyCode, code: code })) {\n return;\n }\n\n onKeyHandle(event);\n };\n\n if (props.keyCode) {\n console.warn('Warning: Deprecated propType: `keyCode` is deprecated in favour of `code` for `KeyHandler`.');\n }\n\n if (!props.keyValue && !props.keyCode && !props.code) {\n console.error('Warning: Failed propType: Missing prop `code`, `keyValue` or `keyCode` for `KeyHandler`.');\n }\n\n /* eslint-enable */\n return _this;\n }\n\n _createClass(KeyHandler, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (!_exenv.canUseDOM) return;\n\n window.document.addEventListener(this.props.keyEventName, this.handleKey);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (!_exenv.canUseDOM) return;\n\n window.document.removeEventListener(this.props.keyEventName, this.handleKey);\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n\n return KeyHandler;\n}(_react2.default.Component);\n\nKeyHandler.propTypes = {\n keyValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),\n keyCode: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),\n code: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),\n keyEventName: _propTypes2.default.oneOf([_constants.KEYDOWN, _constants.KEYPRESS, _constants.KEYUP]),\n onKeyHandle: _propTypes2.default.func\n};\nKeyHandler.defaultProps = {\n keyEventName: _constants.KEYUP\n};\nexports.default = KeyHandler;","map":{"mappings":[{"generated":{"line":9,"column":0},"source":"../lib/key-handler.js","original":{"line":3,"column":0}},{"generated":{"line":13,"column":0},"source":"../lib/key-handler.js","original":{"line":4,"column":0}},{"generated":{"line":17,"column":0},"source":"../lib/key-handler.js","original":{"line":5,"column":0}},{"generated":{"line":19,"column":0},"source":"../lib/key-handler.js","original":{"line":7,"column":0}},{"generated":{"line":21,"column":0},"source":"../lib/key-handler.js","original":{"line":8,"column":0}},{"generated":{"line":23,"column":0},"source":"../lib/key-handler.js","original":{"line":9,"column":0}},{"name":"KeyHandler","generated":{"line":33,"column":4},"source":"../lib/key-handler.js","original":{"line":19,"column":21}},{"generated":{"line":38,"column":44},"source":"../lib/key-handler.js","original":{"line":41,"column":35}},{"generated":{"line":39,"column":0},"source":"../lib/key-handler.js","original":{"line":42,"column":4}},{"generated":{"line":39,"column":13},"source":"../lib/key-handler.js","original":{"line":42,"column":11}},{"generated":{"line":39,"column":18},"source":"../lib/key-handler.js","original":{"line":42,"column":4}},{"generated":{"line":40,"column":0},"source":"../lib/key-handler.js","original":{"line":43,"column":3}},{"generated":{"line":43,"column":0},"source":"../lib/key-handler.js","original":{"line":45,"column":2}},{"name":"props","generated":{"line":43,"column":22},"source":"../lib/key-handler.js","original":{"line":45,"column":14}},{"generated":{"line":43,"column":27},"source":"../lib/key-handler.js","original":{"line":45,"column":2}},{"generated":{"line":43,"column":29},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"generated":{"line":44,"column":0},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"generated":{"line":46,"column":0},"source":"../lib/key-handler.js","original":{"line":48,"column":4}},{"generated":{"line":47,"column":0},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"name":"props","generated":{"line":47,"column":120},"source":"../lib/key-handler.js","original":{"line":46,"column":10}},{"generated":{"line":47,"column":125},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"generated":{"line":49,"column":0},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"name":"handleKey","generated":{"line":49,"column":10},"source":"../lib/key-handler.js","original":{"line":83,"column":2}},{"generated":{"line":49,"column":19},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"generated":{"line":49,"column":22},"source":"../lib/key-handler.js","original":{"line":83,"column":14}},{"name":"event","generated":{"line":49,"column":32},"source":"../lib/key-handler.js","original":{"line":83,"column":15}},{"generated":{"line":49,"column":37},"source":"../lib/key-handler.js","original":{"line":83,"column":14}},{"generated":{"line":49,"column":39},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":50,"column":0},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":50,"column":24},"source":"../lib/key-handler.js","original":{"line":84,"column":53}},{"name":"props","generated":{"line":50,"column":30},"source":"../lib/key-handler.js","original":{"line":84,"column":58}},{"generated":{"line":50,"column":35},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":51,"column":0},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"keyValue","generated":{"line":51,"column":10},"source":"../lib/key-handler.js","original":{"line":84,"column":12}},{"generated":{"line":51,"column":18},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"keyValue","generated":{"line":51,"column":33},"source":"../lib/key-handler.js","original":{"line":84,"column":12}},{"generated":{"line":51,"column":41},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":52,"column":0},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"keyCode","generated":{"line":52,"column":10},"source":"../lib/key-handler.js","original":{"line":84,"column":22}},{"generated":{"line":52,"column":17},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"keyCode","generated":{"line":52,"column":32},"source":"../lib/key-handler.js","original":{"line":84,"column":22}},{"generated":{"line":52,"column":39},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":53,"column":0},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"code","generated":{"line":53,"column":10},"source":"../lib/key-handler.js","original":{"line":84,"column":31}},{"generated":{"line":53,"column":14},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"code","generated":{"line":53,"column":29},"source":"../lib/key-handler.js","original":{"line":84,"column":31}},{"generated":{"line":53,"column":33},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":54,"column":0},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"onKeyHandle","generated":{"line":54,"column":10},"source":"../lib/key-handler.js","original":{"line":84,"column":37}},{"generated":{"line":54,"column":21},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"onKeyHandle","generated":{"line":54,"column":36},"source":"../lib/key-handler.js","original":{"line":84,"column":37}},{"generated":{"line":54,"column":47},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":57,"column":0},"source":"../lib/key-handler.js","original":{"line":86,"column":4}},{"generated":{"line":57,"column":10},"source":"../lib/key-handler.js","original":{"line":86,"column":8}},{"name":"onKeyHandle","generated":{"line":57,"column":11},"source":"../lib/key-handler.js","original":{"line":86,"column":9}},{"generated":{"line":57,"column":22},"source":"../lib/key-handler.js","original":{"line":86,"column":4}},{"generated":{"line":57,"column":24},"source":"../lib/key-handler.js","original":{"line":86,"column":22}},{"generated":{"line":58,"column":0},"source":"../lib/key-handler.js","original":{"line":87,"column":6}},{"generated":{"line":59,"column":0},"source":"../lib/key-handler.js","original":{"line":88,"column":5}},{"generated":{"line":61,"column":0},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"target","generated":{"line":61,"column":10},"source":"../lib/key-handler.js","original":{"line":90,"column":12}},{"generated":{"line":61,"column":16},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"event","generated":{"line":61,"column":19},"source":"../lib/key-handler.js","original":{"line":90,"column":23}},{"generated":{"line":61,"column":24},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"name":"target","generated":{"line":61,"column":25},"source":"../lib/key-handler.js","original":{"line":90,"column":12}},{"generated":{"line":61,"column":31},"source":"../lib/key-handler.js","original":{"line":83,"column":46}},{"generated":{"line":64,"column":0},"source":"../lib/key-handler.js","original":{"line":92,"column":4}},{"name":"target","generated":{"line":64,"column":10},"source":"../lib/key-handler.js","original":{"line":92,"column":8}},{"name":"window","generated":{"line":64,"column":28},"source":"../lib/key-handler.js","original":{"line":92,"column":26}},{"name":"HTMLElement","generated":{"line":64,"column":35},"source":"../lib/key-handler.js","original":{"line":92,"column":33}},{"generated":{"line":64,"column":46},"source":"../lib/key-handler.js","original":{"line":92,"column":8}},{"generated":{"line":64,"column":50},"source":"../lib/key-handler.js","original":{"line":92,"column":48}},{"name":"target","generated":{"line":64,"column":70},"source":"../lib/key-handler.js","original":{"line":92,"column":56}},{"generated":{"line":64,"column":76},"source":"../lib/key-handler.js","original":{"line":92,"column":48}},{"generated":{"line":64,"column":77},"source":"../lib/key-handler.js","original":{"line":92,"column":4}},{"generated":{"line":64,"column":79},"source":"../lib/key-handler.js","original":{"line":92,"column":65}},{"generated":{"line":65,"column":0},"source":"../lib/key-handler.js","original":{"line":93,"column":6}},{"generated":{"line":66,"column":0},"source":"../lib/key-handler.js","original":{"line":94,"column":5}},{"generated":{"line":68,"column":0},"source":"../lib/key-handler.js","original":{"line":96,"column":4}},{"generated":{"line":68,"column":10},"source":"../lib/key-handler.js","original":{"line":96,"column":8}},{"generated":{"line":68,"column":11},"source":"../lib/key-handler.js","original":{"line":96,"column":9}},{"name":"event","generated":{"line":68,"column":44},"source":"../lib/key-handler.js","original":{"line":96,"column":30}},{"generated":{"line":68,"column":49},"source":"../lib/key-handler.js","original":{"line":96,"column":9}},{"generated":{"line":68,"column":51},"source":"../lib/key-handler.js","original":{"line":96,"column":37}},{"name":"keyValue","generated":{"line":68,"column":53},"source":"../lib/key-handler.js","original":{"line":96,"column":39}},{"generated":{"line":68,"column":71},"source":"../lib/key-handler.js","original":{"line":96,"column":37}},{"name":"keyCode","generated":{"line":68,"column":73},"source":"../lib/key-handler.js","original":{"line":96,"column":49}},{"generated":{"line":68,"column":89},"source":"../lib/key-handler.js","original":{"line":96,"column":37}},{"name":"code","generated":{"line":68,"column":91},"source":"../lib/key-handler.js","original":{"line":96,"column":58}},{"generated":{"line":68,"column":101},"source":"../lib/key-handler.js","original":{"line":96,"column":37}},{"generated":{"line":68,"column":103},"source":"../lib/key-handler.js","original":{"line":96,"column":9}},{"generated":{"line":68,"column":104},"source":"../lib/key-handler.js","original":{"line":96,"column":4}},{"generated":{"line":68,"column":106},"source":"../lib/key-handler.js","original":{"line":96,"column":67}},{"generated":{"line":69,"column":0},"source":"../lib/key-handler.js","original":{"line":97,"column":6}},{"generated":{"line":70,"column":0},"source":"../lib/key-handler.js","original":{"line":98,"column":5}},{"name":"onKeyHandle","generated":{"line":72,"column":0},"source":"../lib/key-handler.js","original":{"line":100,"column":4}},{"name":"event","generated":{"line":72,"column":18},"source":"../lib/key-handler.js","original":{"line":100,"column":16}},{"generated":{"line":72,"column":23},"source":"../lib/key-handler.js","original":{"line":100,"column":4}},{"generated":{"line":73,"column":0},"source":"../lib/key-handler.js","original":{"line":101,"column":3}},{"generated":{"line":73,"column":5},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"generated":{"line":75,"column":0},"source":"../lib/key-handler.js","original":{"line":49,"column":4}},{"name":"props","generated":{"line":75,"column":8},"source":"../lib/key-handler.js","original":{"line":49,"column":8}},{"name":"keyCode","generated":{"line":75,"column":14},"source":"../lib/key-handler.js","original":{"line":49,"column":14}},{"generated":{"line":75,"column":21},"source":"../lib/key-handler.js","original":{"line":49,"column":4}},{"generated":{"line":75,"column":23},"source":"../lib/key-handler.js","original":{"line":49,"column":23}},{"name":"console","generated":{"line":76,"column":0},"source":"../lib/key-handler.js","original":{"line":50,"column":6}},{"name":"warn","generated":{"line":76,"column":14},"source":"../lib/key-handler.js","original":{"line":50,"column":14}},{"generated":{"line":76,"column":18},"source":"../lib/key-handler.js","original":{"line":50,"column":6}},{"generated":{"line":76,"column":19},"source":"../lib/key-handler.js","original":{"line":51,"column":8}},{"generated":{"line":76,"column":112},"source":"../lib/key-handler.js","original":{"line":50,"column":6}},{"generated":{"line":77,"column":0},"source":"../lib/key-handler.js","original":{"line":53,"column":5}},{"generated":{"line":79,"column":0},"source":"../lib/key-handler.js","original":{"line":55,"column":4}},{"generated":{"line":79,"column":8},"source":"../lib/key-handler.js","original":{"line":55,"column":8}},{"name":"props","generated":{"line":79,"column":9},"source":"../lib/key-handler.js","original":{"line":55,"column":9}},{"name":"keyValue","generated":{"line":79,"column":15},"source":"../lib/key-handler.js","original":{"line":55,"column":15}},{"generated":{"line":79,"column":23},"source":"../lib/key-handler.js","original":{"line":55,"column":8}},{"generated":{"line":79,"column":27},"source":"../lib/key-handler.js","original":{"line":55,"column":27}},{"name":"props","generated":{"line":79,"column":28},"source":"../lib/key-handler.js","original":{"line":55,"column":28}},{"name":"keyCode","generated":{"line":79,"column":34},"source":"../lib/key-handler.js","original":{"line":55,"column":34}},{"generated":{"line":79,"column":41},"source":"../lib/key-handler.js","original":{"line":55,"column":8}},{"generated":{"line":79,"column":45},"source":"../lib/key-handler.js","original":{"line":55,"column":45}},{"name":"props","generated":{"line":79,"column":46},"source":"../lib/key-handler.js","original":{"line":55,"column":46}},{"name":"code","generated":{"line":79,"column":52},"source":"../lib/key-handler.js","original":{"line":55,"column":52}},{"generated":{"line":79,"column":56},"source":"../lib/key-handler.js","original":{"line":55,"column":4}},{"generated":{"line":79,"column":58},"source":"../lib/key-handler.js","original":{"line":55,"column":58}},{"name":"console","generated":{"line":80,"column":0},"source":"../lib/key-handler.js","original":{"line":56,"column":6}},{"name":"error","generated":{"line":80,"column":14},"source":"../lib/key-handler.js","original":{"line":56,"column":14}},{"generated":{"line":80,"column":19},"source":"../lib/key-handler.js","original":{"line":56,"column":6}},{"generated":{"line":80,"column":20},"source":"../lib/key-handler.js","original":{"line":57,"column":8}},{"generated":{"line":80,"column":110},"source":"../lib/key-handler.js","original":{"line":56,"column":6}},{"generated":{"line":81,"column":0},"source":"../lib/key-handler.js","original":{"line":59,"column":5}},{"generated":{"line":83,"column":0},"source":"../lib/key-handler.js","original":{"line":61,"column":4}},{"generated":{"line":84,"column":0},"source":"../lib/key-handler.js","original":{"line":45,"column":28}},{"generated":{"line":85,"column":0},"source":"../lib/key-handler.js","original":{"line":62,"column":3}},{"generated":{"line":89,"column":40},"source":"../lib/key-handler.js","original":{"line":64,"column":28}},{"generated":{"line":90,"column":0},"source":"../lib/key-handler.js","original":{"line":65,"column":4}},{"generated":{"line":90,"column":10},"source":"../lib/key-handler.js","original":{"line":65,"column":8}},{"name":"canUseDOM","generated":{"line":90,"column":11},"source":"../lib/key-handler.js","original":{"line":65,"column":9}},{"generated":{"line":90,"column":27},"source":"../lib/key-handler.js","original":{"line":65,"column":4}},{"generated":{"line":90,"column":29},"source":"../lib/key-handler.js","original":{"line":65,"column":20}},{"name":"window","generated":{"line":92,"column":0},"source":"../lib/key-handler.js","original":{"line":67,"column":4}},{"name":"document","generated":{"line":92,"column":13},"source":"../lib/key-handler.js","original":{"line":67,"column":11}},{"generated":{"line":92,"column":21},"source":"../lib/key-handler.js","original":{"line":67,"column":4}},{"name":"addEventListener","generated":{"line":92,"column":22},"source":"../lib/key-handler.js","original":{"line":67,"column":20}},{"generated":{"line":92,"column":38},"source":"../lib/key-handler.js","original":{"line":67,"column":4}},{"generated":{"line":92,"column":39},"source":"../lib/key-handler.js","original":{"line":67,"column":37}},{"name":"props","generated":{"line":92,"column":44},"source":"../lib/key-handler.js","original":{"line":67,"column":42}},{"generated":{"line":92,"column":49},"source":"../lib/key-handler.js","original":{"line":67,"column":37}},{"name":"keyEventName","generated":{"line":92,"column":50},"source":"../lib/key-handler.js","original":{"line":67,"column":48}},{"generated":{"line":92,"column":62},"source":"../lib/key-handler.js","original":{"line":67,"column":4}},{"generated":{"line":92,"column":64},"source":"../lib/key-handler.js","original":{"line":67,"column":62}},{"name":"handleKey","generated":{"line":92,"column":69},"source":"../lib/key-handler.js","original":{"line":67,"column":67}},{"generated":{"line":92,"column":78},"source":"../lib/key-handler.js","original":{"line":67,"column":4}},{"generated":{"line":93,"column":0},"source":"../lib/key-handler.js","original":{"line":68,"column":3}},{"generated":{"line":96,"column":43},"source":"../lib/key-handler.js","original":{"line":70,"column":31}},{"generated":{"line":97,"column":0},"source":"../lib/key-handler.js","original":{"line":71,"column":4}},{"generated":{"line":97,"column":10},"source":"../lib/key-handler.js","original":{"line":71,"column":8}},{"name":"canUseDOM","generated":{"line":97,"column":11},"source":"../lib/key-handler.js","original":{"line":71,"column":9}},{"generated":{"line":97,"column":27},"source":"../lib/key-handler.js","original":{"line":71,"column":4}},{"generated":{"line":97,"column":29},"source":"../lib/key-handler.js","original":{"line":71,"column":20}},{"name":"window","generated":{"line":99,"column":0},"source":"../lib/key-handler.js","original":{"line":73,"column":4}},{"name":"document","generated":{"line":99,"column":13},"source":"../lib/key-handler.js","original":{"line":73,"column":11}},{"generated":{"line":99,"column":21},"source":"../lib/key-handler.js","original":{"line":73,"column":4}},{"name":"removeEventListener","generated":{"line":99,"column":22},"source":"../lib/key-handler.js","original":{"line":73,"column":20}},{"generated":{"line":99,"column":41},"source":"../lib/key-handler.js","original":{"line":73,"column":4}},{"generated":{"line":99,"column":42},"source":"../lib/key-handler.js","original":{"line":74,"column":6}},{"name":"props","generated":{"line":99,"column":47},"source":"../lib/key-handler.js","original":{"line":74,"column":11}},{"generated":{"line":99,"column":52},"source":"../lib/key-handler.js","original":{"line":74,"column":6}},{"name":"keyEventName","generated":{"line":99,"column":53},"source":"../lib/key-handler.js","original":{"line":74,"column":17}},{"generated":{"line":99,"column":65},"source":"../lib/key-handler.js","original":{"line":73,"column":4}},{"generated":{"line":99,"column":67},"source":"../lib/key-handler.js","original":{"line":75,"column":6}},{"name":"handleKey","generated":{"line":99,"column":72},"source":"../lib/key-handler.js","original":{"line":75,"column":11}},{"generated":{"line":99,"column":81},"source":"../lib/key-handler.js","original":{"line":73,"column":4}},{"generated":{"line":100,"column":0},"source":"../lib/key-handler.js","original":{"line":77,"column":3}},{"generated":{"line":103,"column":29},"source":"../lib/key-handler.js","original":{"line":79,"column":17}},{"generated":{"line":104,"column":0},"source":"../lib/key-handler.js","original":{"line":80,"column":4}},{"generated":{"line":104,"column":13},"source":"../lib/key-handler.js","original":{"line":80,"column":11}},{"generated":{"line":104,"column":17},"source":"../lib/key-handler.js","original":{"line":80,"column":4}},{"generated":{"line":105,"column":0},"source":"../lib/key-handler.js","original":{"line":81,"column":3}},{"name":"React","generated":{"line":109,"column":2},"source":"../lib/key-handler.js","original":{"line":19,"column":40}},{"name":"Component","generated":{"line":109,"column":18},"source":"../lib/key-handler.js","original":{"line":19,"column":46}},{"name":"KeyHandler","generated":{"line":111,"column":0},"source":"../lib/key-handler.js","original":{"line":19,"column":21}},{"name":"propTypes","generated":{"line":111,"column":11},"source":"../lib/key-handler.js","original":{"line":20,"column":9}},{"generated":{"line":111,"column":23},"source":"../lib/key-handler.js","original":{"line":20,"column":21}},{"name":"keyValue","generated":{"line":112,"column":0},"source":"../lib/key-handler.js","original":{"line":21,"column":4}},{"name":"PropTypes","generated":{"line":112,"column":12},"source":"../lib/key-handler.js","original":{"line":21,"column":14}},{"name":"oneOfType","generated":{"line":112,"column":32},"source":"../lib/key-handler.js","original":{"line":21,"column":24}},{"generated":{"line":112,"column":41},"source":"../lib/key-handler.js","original":{"line":21,"column":14}},{"generated":{"line":112,"column":42},"source":"../lib/key-handler.js","original":{"line":21,"column":34}},{"name":"PropTypes","generated":{"line":112,"column":43},"source":"../lib/key-handler.js","original":{"line":22,"column":6}},{"name":"string","generated":{"line":112,"column":63},"source":"../lib/key-handler.js","original":{"line":22,"column":16}},{"generated":{"line":112,"column":69},"source":"../lib/key-handler.js","original":{"line":21,"column":34}},{"name":"PropTypes","generated":{"line":112,"column":71},"source":"../lib/key-handler.js","original":{"line":23,"column":6}},{"name":"arrayOf","generated":{"line":112,"column":91},"source":"../lib/key-handler.js","original":{"line":23,"column":16}},{"generated":{"line":112,"column":98},"source":"../lib/key-handler.js","original":{"line":23,"column":6}},{"name":"PropTypes","generated":{"line":112,"column":99},"source":"../lib/key-handler.js","original":{"line":23,"column":24}},{"name":"string","generated":{"line":112,"column":119},"source":"../lib/key-handler.js","original":{"line":23,"column":34}},{"generated":{"line":112,"column":125},"source":"../lib/key-handler.js","original":{"line":23,"column":6}},{"generated":{"line":112,"column":126},"source":"../lib/key-handler.js","original":{"line":21,"column":34}},{"generated":{"line":112,"column":127},"source":"../lib/key-handler.js","original":{"line":21,"column":14}},{"generated":{"line":112,"column":128},"source":"../lib/key-handler.js","original":{"line":20,"column":21}},{"name":"keyCode","generated":{"line":113,"column":0},"source":"../lib/key-handler.js","original":{"line":25,"column":4}},{"name":"PropTypes","generated":{"line":113,"column":11},"source":"../lib/key-handler.js","original":{"line":25,"column":13}},{"name":"oneOfType","generated":{"line":113,"column":31},"source":"../lib/key-handler.js","original":{"line":25,"column":23}},{"generated":{"line":113,"column":40},"source":"../lib/key-handler.js","original":{"line":25,"column":13}},{"generated":{"line":113,"column":41},"source":"../lib/key-handler.js","original":{"line":25,"column":33}},{"name":"PropTypes","generated":{"line":113,"column":42},"source":"../lib/key-handler.js","original":{"line":26,"column":6}},{"name":"number","generated":{"line":113,"column":62},"source":"../lib/key-handler.js","original":{"line":26,"column":16}},{"generated":{"line":113,"column":68},"source":"../lib/key-handler.js","original":{"line":25,"column":33}},{"name":"PropTypes","generated":{"line":113,"column":70},"source":"../lib/key-handler.js","original":{"line":27,"column":6}},{"name":"arrayOf","generated":{"line":113,"column":90},"source":"../lib/key-handler.js","original":{"line":27,"column":16}},{"generated":{"line":113,"column":97},"source":"../lib/key-handler.js","original":{"line":27,"column":6}},{"name":"PropTypes","generated":{"line":113,"column":98},"source":"../lib/key-handler.js","original":{"line":27,"column":24}},{"name":"number","generated":{"line":113,"column":118},"source":"../lib/key-handler.js","original":{"line":27,"column":34}},{"generated":{"line":113,"column":124},"source":"../lib/key-handler.js","original":{"line":27,"column":6}},{"generated":{"line":113,"column":125},"source":"../lib/key-handler.js","original":{"line":25,"column":33}},{"generated":{"line":113,"column":126},"source":"../lib/key-handler.js","original":{"line":25,"column":13}},{"generated":{"line":113,"column":127},"source":"../lib/key-handler.js","original":{"line":20,"column":21}},{"name":"code","generated":{"line":114,"column":0},"source":"../lib/key-handler.js","original":{"line":29,"column":4}},{"name":"PropTypes","generated":{"line":114,"column":8},"source":"../lib/key-handler.js","original":{"line":29,"column":10}},{"name":"oneOfType","generated":{"line":114,"column":28},"source":"../lib/key-handler.js","original":{"line":29,"column":20}},{"generated":{"line":114,"column":37},"source":"../lib/key-handler.js","original":{"line":29,"column":10}},{"generated":{"line":114,"column":38},"source":"../lib/key-handler.js","original":{"line":29,"column":30}},{"name":"PropTypes","generated":{"line":114,"column":39},"source":"../lib/key-handler.js","original":{"line":30,"column":6}},{"name":"string","generated":{"line":114,"column":59},"source":"../lib/key-handler.js","original":{"line":30,"column":16}},{"generated":{"line":114,"column":65},"source":"../lib/key-handler.js","original":{"line":29,"column":30}},{"name":"PropTypes","generated":{"line":114,"column":67},"source":"../lib/key-handler.js","original":{"line":31,"column":6}},{"name":"arrayOf","generated":{"line":114,"column":87},"source":"../lib/key-handler.js","original":{"line":31,"column":16}},{"generated":{"line":114,"column":94},"source":"../lib/key-handler.js","original":{"line":31,"column":6}},{"name":"PropTypes","generated":{"line":114,"column":95},"source":"../lib/key-handler.js","original":{"line":31,"column":24}},{"name":"string","generated":{"line":114,"column":115},"source":"../lib/key-handler.js","original":{"line":31,"column":34}},{"generated":{"line":114,"column":121},"source":"../lib/key-handler.js","original":{"line":31,"column":6}},{"generated":{"line":114,"column":122},"source":"../lib/key-handler.js","original":{"line":29,"column":30}},{"generated":{"line":114,"column":123},"source":"../lib/key-handler.js","original":{"line":29,"column":10}},{"generated":{"line":114,"column":124},"source":"../lib/key-handler.js","original":{"line":20,"column":21}},{"name":"keyEventName","generated":{"line":115,"column":0},"source":"../lib/key-handler.js","original":{"line":33,"column":4}},{"name":"PropTypes","generated":{"line":115,"column":16},"source":"../lib/key-handler.js","original":{"line":33,"column":18}},{"name":"oneOf","generated":{"line":115,"column":36},"source":"../lib/key-handler.js","original":{"line":33,"column":28}},{"generated":{"line":115,"column":41},"source":"../lib/key-handler.js","original":{"line":33,"column":18}},{"generated":{"line":115,"column":42},"source":"../lib/key-handler.js","original":{"line":33,"column":34}},{"name":"KEYDOWN","generated":{"line":115,"column":43},"source":"../lib/key-handler.js","original":{"line":33,"column":35}},{"generated":{"line":115,"column":61},"source":"../lib/key-handler.js","original":{"line":33,"column":34}},{"name":"KEYPRESS","generated":{"line":115,"column":63},"source":"../lib/key-handler.js","original":{"line":33,"column":44}},{"generated":{"line":115,"column":82},"source":"../lib/key-handler.js","original":{"line":33,"column":34}},{"name":"KEYUP","generated":{"line":115,"column":84},"source":"../lib/key-handler.js","original":{"line":33,"column":54}},{"generated":{"line":115,"column":100},"source":"../lib/key-handler.js","original":{"line":33,"column":34}},{"generated":{"line":115,"column":101},"source":"../lib/key-handler.js","original":{"line":33,"column":18}},{"generated":{"line":115,"column":102},"source":"../lib/key-handler.js","original":{"line":20,"column":21}},{"name":"onKeyHandle","generated":{"line":116,"column":0},"source":"../lib/key-handler.js","original":{"line":34,"column":4}},{"name":"PropTypes","generated":{"line":116,"column":15},"source":"../lib/key-handler.js","original":{"line":34,"column":17}},{"name":"func","generated":{"line":116,"column":35},"source":"../lib/key-handler.js","original":{"line":34,"column":27}},{"generated":{"line":117,"column":0},"source":"../lib/key-handler.js","original":{"line":20,"column":21}},{"name":"KeyHandler","generated":{"line":118,"column":0},"source":"../lib/key-handler.js","original":{"line":19,"column":21}},{"name":"defaultProps","generated":{"line":118,"column":11},"source":"../lib/key-handler.js","original":{"line":37,"column":9}},{"generated":{"line":118,"column":26},"source":"../lib/key-handler.js","original":{"line":37,"column":24}},{"name":"keyEventName","generated":{"line":119,"column":0},"source":"../lib/key-handler.js","original":{"line":38,"column":4}},{"name":"KEYUP","generated":{"line":119,"column":16},"source":"../lib/key-handler.js","original":{"line":38,"column":18}},{"generated":{"line":120,"column":0},"source":"../lib/key-handler.js","original":{"line":37,"column":24}},{"name":"KeyHandler","generated":{"line":121,"column":18},"source":"../lib/key-handler.js","original":{"line":19,"column":21}}],"sources":{"../lib/key-handler.js":"/* @flow */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { canUseDOM } from 'exenv';\n\nimport { KEYDOWN, KEYPRESS, KEYUP, type KeyConstants } from './constants';\nimport { type primitiveOrArray } from './types';\nimport { isInput, matchesKeyboardEvent } from './utils';\n\ntype Props = {|\n +keyValue?: ?primitiveOrArray<string>,\n +keyCode?: ?primitiveOrArray<number>,\n +code?: ?primitiveOrArray<string>,\n +keyEventName: KeyConstants,\n +onKeyHandle?: (event: KeyboardEvent) => mixed,\n|};\n\nexport default class KeyHandler extends React.Component<Props> {\n static propTypes = {\n keyValue: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n keyCode: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number),\n ]),\n code: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n keyEventName: PropTypes.oneOf([KEYDOWN, KEYPRESS, KEYUP]),\n onKeyHandle: PropTypes.func,\n };\n\n static defaultProps = {\n keyEventName: KEYUP,\n };\n\n shouldComponentUpdate(): boolean {\n return false;\n }\n\n constructor(props: Props) {\n super(props);\n\n /* eslint-disable no-console */\n if (props.keyCode) {\n console.warn(\n 'Warning: Deprecated propType: `keyCode` is deprecated in favour of `code` for `KeyHandler`.',\n );\n }\n\n if (!props.keyValue && !props.keyCode && !props.code) {\n console.error(\n 'Warning: Failed propType: Missing prop `code`, `keyValue` or `keyCode` for `KeyHandler`.',\n );\n }\n\n /* eslint-enable */\n }\n\n componentDidMount(): void {\n if (!canUseDOM) return;\n\n window.document.addEventListener(this.props.keyEventName, this.handleKey);\n }\n\n componentWillUnmount(): void {\n if (!canUseDOM) return;\n\n window.document.removeEventListener(\n this.props.keyEventName,\n this.handleKey,\n );\n }\n\n render(): null {\n return null;\n }\n\n handleKey = (event: KeyboardEvent): void => {\n const { keyValue, keyCode, code, onKeyHandle } = this.props;\n\n if (!onKeyHandle) {\n return;\n }\n\n const { target } = event;\n\n if (target instanceof window.HTMLElement && isInput(target)) {\n return;\n }\n\n if (!matchesKeyboardEvent(event, { keyValue, keyCode, code })) {\n return;\n }\n\n onKeyHandle(event);\n };\n}\n"},"lineCount":null}},"hash":"93dffabfab6139b0c609e2508fd87178","cacheData":{"env":{}}}