{"_id":"react-keyboard","_rev":"30-94a1b5fe0dc97b57d4d1c16c44a7048d","name":"react-keyboard","description":"A declarative library for handling hotkeys and focus within a React application","dist-tags":{"latest":"1.0.10","beta":"1.0.0-beta11"},"versions":{"0.1.0":{"name":"react-keyboard","version":"0.1.0","description":"A declarative library for handling hotkeys and focus within a React application","main":"lib","scripts":{"lint":"eslint ./src","build":"babel src --out-dir lib","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"autoprefixer":"^6.6.1","autoprefixer-loader":"^1.2.0","babel-cli":"^6.11.4","babel-core":"^6.11.4","babel-eslint":"^6.1.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.9.0","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.22.0","babel-preset-stage-2":"^6.11.0","css-loader":"^0.9.1","eslint":"^3.2.2","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.0.0","estraverse":"^4.2.0","express":"^4.14.0","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","html-webpack-plugin":"^2.26.0","mocha":"^2.4.5","postcss-loader":"^1.2.2","prompt":"^0.2.14","react":"^15.4.2","react-addons-test-utils":"^15.0.1","react-dom":"^15.4.2","sass-loader":"^4.1.1","style-loader":"^0.9.0","url-loader":"^0.5.7","webpack":"^1.7.3","webpack-dev-middleware":"^1.9.0","webpack-hot-middleware":"^2.15.0","webpack-merge":"^2.4.0"},"dependencies":{"lodash":"^4.17.4","mousetrap":"^1.5.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-hotkeys.git"},"homepage":"https://github.com/ruanyl/react-hotkeys","bugs":{"url":"https://github.com/ruanyl/react-hotkeys/issues"},"gitHead":"0e47d54f783c7761d9f49aa9f3f67c074f727e25","_id":"react-keyboard@0.1.0","_shasum":"32f25ae9554f0cca13033f671c9f379865dafbbd","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"shasum":"32f25ae9554f0cca13033f671c9f379865dafbbd","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.1.0.tgz","integrity":"sha512-FV1M5PD4cGvhg+Qt2XVqfq6RUTG4ATsm37c1x5D9TmYCEEbeeXAk74jkkpVmN7BzhZJ72ux1vkdjEcaiSMqCUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfRQEYEWt3VaKj8bCAzaICbpfvSKgQ4p2ooVB7PTfLEgIhAIEfxQ3O4m8dfnkVBOUHSvbsC21voqdeLy+Dmtlc2dVZ"}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-keyboard-0.1.0.tgz_1484913428266_0.3523347738664597"},"directories":{}},"0.2.0":{"name":"react-keyboard","version":"0.2.0","description":"A declarative library for handling hotkeys and focus within a React application","main":"lib","scripts":{"lint":"eslint ./src","build":"babel src --out-dir lib","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"autoprefixer":"^6.6.1","autoprefixer-loader":"^1.2.0","babel-cli":"^6.11.4","babel-core":"^6.11.4","babel-eslint":"^6.1.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.9.0","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.22.0","babel-preset-stage-2":"^6.11.0","css-loader":"^0.9.1","eslint":"^3.2.2","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.0.0","estraverse":"^4.2.0","express":"^4.14.0","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","html-webpack-plugin":"^2.26.0","mocha":"^2.4.5","postcss-loader":"^1.2.2","prompt":"^0.2.14","react":"^15.4.2","react-addons-test-utils":"^15.0.1","react-dom":"^15.4.2","sass-loader":"^4.1.1","style-loader":"^0.9.0","url-loader":"^0.5.7","webpack":"^1.7.3","webpack-dev-middleware":"^1.9.0","webpack-hot-middleware":"^2.15.0","webpack-merge":"^2.4.0"},"dependencies":{"lodash":"^4.17.4","mousetrap":"^1.5.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-hotkeys.git"},"homepage":"https://github.com/ruanyl/react-hotkeys","bugs":{"url":"https://github.com/ruanyl/react-hotkeys/issues"},"gitHead":"eaecd08bb7a429834f4df87c04047b69d435c666","_id":"react-keyboard@0.2.0","_shasum":"5e1949fd5d42b9b2b48ef76ce0451efdd99ef82f","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"shasum":"5e1949fd5d42b9b2b48ef76ce0451efdd99ef82f","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.2.0.tgz","integrity":"sha512-WrJR11FofINkh33RkAolTiVwFYUBuRXkXjCNSC7BUa8p4NF3Lzm5SJAQPI/9w/JdlrE8I+m74TkKLNbw9N4WrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA8XS+AFATPcAKN7oGugUgpe6Mj7uIIM7FSGpmK6rm7rAiEAqPZQd4lZbE+pNB0SGwRGEXOpkEHHcu+BugrfM+goZbE="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-keyboard-0.2.0.tgz_1485180295365_0.9040098206605762"},"directories":{}},"0.2.1":{"name":"react-keyboard","version":"0.2.1","description":"A declarative library for handling hotkeys and focus within a React application","main":"lib","scripts":{"lint":"eslint ./src","build":"babel src --out-dir lib","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"autoprefixer":"^6.6.1","autoprefixer-loader":"^1.2.0","babel-cli":"^6.11.4","babel-core":"^6.11.4","babel-eslint":"^6.1.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.9.0","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.22.0","babel-preset-stage-2":"^6.11.0","css-loader":"^0.9.1","eslint":"^3.2.2","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.0.0","estraverse":"^4.2.0","express":"^4.14.0","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","html-webpack-plugin":"^2.26.0","mocha":"^2.4.5","postcss-loader":"^1.2.2","prompt":"^0.2.14","react":"^15.4.2","react-addons-test-utils":"^15.0.1","react-dom":"^15.4.2","sass-loader":"^4.1.1","style-loader":"^0.9.0","url-loader":"^0.5.7","webpack":"^1.7.3","webpack-dev-middleware":"^1.9.0","webpack-hot-middleware":"^2.15.0","webpack-merge":"^2.4.0"},"dependencies":{"lodash":"^4.17.4","mousetrap":"^1.5.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"65165cb4079732e5d7eca7016857c512a0a260ec","_id":"react-keyboard@0.2.1","_shasum":"62457237f3d62aa9ced4986a0e4933fac1741397","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"shasum":"62457237f3d62aa9ced4986a0e4933fac1741397","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.2.1.tgz","integrity":"sha512-bLHxk1oG2LCrdJiu9gVjIcieuH4J/EmQh1Udmwyqyz2FvYlQaNHy+2W9CtyoWCXetsVP7BXJlx4uQD+/0vzXWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEh0OzllOQoyKOlYoKBMCSh8Vw7dAWa7mrm57RpbL5qmAiBAp5et3vH1qvHecQOW6DewlKdM116m7b7/FFWbV1zAfg=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard-0.2.1.tgz_1498122153499_0.8564841190818697"},"directories":{}},"0.3.0":{"name":"react-keyboard","version":"0.3.0","description":"A declarative library for handling hotkeys and focus within a React application","main":"lib","scripts":{"lint":"eslint ./src","build":"babel src --out-dir lib","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"autoprefixer":"^6.6.1","autoprefixer-loader":"^1.2.0","babel-cli":"^6.11.4","babel-core":"^6.11.4","babel-eslint":"^6.1.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.9.0","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.22.0","babel-preset-stage-2":"^6.11.0","css-loader":"^0.9.1","eslint":"^3.2.2","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.0.0","estraverse":"^4.2.0","express":"^4.14.0","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","html-webpack-plugin":"^2.26.0","mocha":"^2.4.5","postcss-loader":"^1.2.2","prompt":"^0.2.14","prop-types":"^15.5.10","react":"^15.4.2","react-addons-test-utils":"^15.0.1","react-dom":"^15.4.2","sass-loader":"^4.1.1","style-loader":"^0.9.0","url-loader":"^0.5.7","webpack":"^1.7.3","webpack-dev-middleware":"^1.9.0","webpack-hot-middleware":"^2.15.0","webpack-merge":"^2.4.0"},"dependencies":{"lodash":"^4.17.4","mousetrap":"^1.5.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"7038ed9cbd1d1e1f8d800aa5e83068b3a1480fd1","_id":"react-keyboard@0.3.0","_shasum":"cad115bf885e1a258d5cb86b84972adf064e94f0","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"shasum":"cad115bf885e1a258d5cb86b84972adf064e94f0","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.3.0.tgz","integrity":"sha512-9tSHldDta3rIKGLjiP0sompx4uomn+Mua0KP4VIEZwKsCkpObSCOCP0/0fPPl/HMYXVlBBR25FSk6y+Mn/u2sg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBLAKoJ89kM4gbPdU4hSD0YZQX7a/Wf6iOGQRzG4lpngIhAMTqu5YljqhGYiq4INcOA/IZR7VsvLV0anbxeypJ48td"}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard-0.3.0.tgz_1504966132229_0.5776839931495488"},"directories":{}},"0.3.1":{"name":"react-keyboard","version":"0.3.1","description":"A declarative library for handling hotkeys and focus within a React application","main":"lib","scripts":{"lint":"eslint ./src","build":"babel src --out-dir lib","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"autoprefixer":"^6.6.1","autoprefixer-loader":"^1.2.0","babel-cli":"^6.11.4","babel-core":"^6.11.4","babel-eslint":"^6.1.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.9.0","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.22.0","babel-preset-stage-2":"^6.11.0","css-loader":"^0.9.1","eslint":"^3.2.2","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.0.0","estraverse":"^4.2.0","express":"^4.14.0","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","html-webpack-plugin":"^2.26.0","mocha":"^2.4.5","postcss-loader":"^1.2.2","prompt":"^0.2.14","prop-types":"^15.5.10","react":"^15.4.2","react-addons-test-utils":"^15.0.1","react-dom":"^15.4.2","sass-loader":"^4.1.1","style-loader":"^0.9.0","url-loader":"^0.5.7","webpack":"^1.7.3","webpack-dev-middleware":"^1.9.0","webpack-hot-middleware":"^2.15.0","webpack-merge":"^2.4.0"},"dependencies":{"lodash":"^4.17.4","mousetrap":"^1.5.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"a6975bb55d255fc8b0c6b7ffa78722f2861914c3","_id":"react-keyboard@0.3.1","_shasum":"f6fa299e7c74fc39ea0a8a8b588f359452b0b108","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"shasum":"f6fa299e7c74fc39ea0a8a8b588f359452b0b108","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.3.1.tgz","integrity":"sha512-WiIDUltTmLoGuY0sr+RLnRIxoRXKv8A+hJYEvvsyttb7ICOTrDbXwUb93k6wXhDipO53aKOJE7V5uF/owwaneA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHbbO32A0B7+nhDLBl0lIqkC90+09hPBl7dLeQ1AQJw4AiEAhrJdysOn58bDKgr7ydPIrpFEHIhWm4xzVDbRKEl2Mxg="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard-0.3.1.tgz_1504967604010_0.6727405891288072"},"directories":{}},"0.3.2":{"name":"react-keyboard","version":"0.3.2","description":"A declarative library for handling hotkeys and focus within a React application","main":"lib","scripts":{"lint":"eslint ./src","build":"babel src --out-dir lib","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"autoprefixer":"^6.6.1","autoprefixer-loader":"^1.2.0","babel-cli":"^6.11.4","babel-core":"^6.11.4","babel-eslint":"^6.1.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.9.0","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.22.0","babel-preset-stage-2":"^6.11.0","css-loader":"^0.9.1","eslint":"^3.2.2","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.0.0","estraverse":"^4.2.0","express":"^4.14.0","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","html-webpack-plugin":"^2.26.0","mocha":"^2.4.5","postcss-loader":"^1.2.2","prompt":"^0.2.14","prop-types":"^15.5.10","react":"^15.4.2","react-addons-test-utils":"^15.0.1","react-dom":"^15.4.2","sass-loader":"^4.1.1","style-loader":"^0.9.0","url-loader":"^0.5.7","webpack":"^1.7.3","webpack-dev-middleware":"^1.9.0","webpack-hot-middleware":"^2.15.0","webpack-merge":"^2.4.0"},"dependencies":{"lodash":"^4.17.4","mousetrap":"^1.5.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"5a8d617a26a9328a2c7cfa60b34c3f1bc419bfcf","_id":"react-keyboard@0.3.2","_shasum":"eabbadb2ee8bcbe80d2a298c43e4813df40f5729","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"shasum":"eabbadb2ee8bcbe80d2a298c43e4813df40f5729","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.3.2.tgz","integrity":"sha512-Qf9zgv+XVGhytrLZtdHTzMjMxIu4wh9cHXKve8a0LWRcVpuUqg6pxlcJ2DihsDrLtRkbV4TfF8WOKRlaytlTIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEnTXRlNwHOMwxmIzUxkM/a14RehY1MQMx/Zv3RlITIAIhAMT5clc323N5Rg4OFz7Utd1a25zVbqmfyYyFCQRVDmcu"}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard-0.3.2.tgz_1504984711073_0.3323335477616638"},"directories":{}},"0.4.0":{"name":"react-keyboard","version":"0.4.0","description":"A declarative library for handling hotkeys and focus within a React application","main":"lib","scripts":{"lint":"eslint ./src","build":"babel src --out-dir lib","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"autoprefixer":"^6.6.1","autoprefixer-loader":"^1.2.0","babel-cli":"^6.11.4","babel-core":"^6.11.4","babel-eslint":"^6.1.2","babel-loader":"^6.2.4","babel-preset-es2015":"^6.9.0","babel-preset-react":"^6.11.1","babel-preset-stage-0":"^6.22.0","babel-preset-stage-2":"^6.11.0","css-loader":"^0.9.1","eslint":"^3.2.2","eslint-config-airbnb":"^10.0.0","eslint-plugin-import":"^1.16.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.0.0","estraverse":"^4.2.0","express":"^4.14.0","extract-text-webpack-plugin":"^1.0.1","file-loader":"^0.9.0","html-webpack-plugin":"^2.26.0","mocha":"^2.4.5","postcss-loader":"^1.2.2","prompt":"^0.2.14","prop-types":"^15.5.10","react":"^15.4.2","react-addons-test-utils":"^15.0.1","react-dom":"^15.4.2","sass-loader":"^4.1.1","style-loader":"^0.9.0","url-loader":"^0.5.7","webpack":"^1.7.3","webpack-dev-middleware":"^1.9.0","webpack-hot-middleware":"^2.15.0","webpack-merge":"^2.4.0"},"dependencies":{"lodash":"^4.17.4","mousetrap":"^1.5.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"895d48ed3750c95e9d85f4fef62ff4463d5116fe","_id":"react-keyboard@0.4.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-7HTSy8/exjuQR0NrqqYBn+l8O8sMyrv3VSR3Qehda4N15o50vYUvs1r1vbF6F7C8XCPaPhAyGRl53MgVK7/TRw==","shasum":"e4c8fe3ca7f60f94f5e7fe6f4f60f293f3fc9cad","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.4.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHYIDqE3CKUbhIDOtEwHzWbjG/hMvHTDCbigM5/1d8VyAiAibRwJ8BAD6ywhNeHhSHZXD8MluU8yfS3B1A7UKCkUMA=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard-0.4.0.tgz_1516348541122_0.8332639781292528"},"directories":{}},"0.5.0":{"name":"react-keyboard","version":"0.5.0","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"lint":"eslint ./src","build":"tsc --outDir lib --declaration","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"express":"^4.16.3","html-webpack-plugin":"^3.2.0","react":"^16.1.1","react-dom":"^16.1.1","ts-loader":"^4.2.0","typescript":"^2.8.3","webpack":"^4.6.0","webpack-cli":"^2.0.14","webpack-dev-middleware":"^3.1.2"},"dependencies":{"@types/lodash":"^4.14.107","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.2","@types/react":"^16.1.0","@types/react-dom":"^16.0.5","lodash":"^4.17.4","mousetrap":"^1.5.2","prop-types":"^15.6.1"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\nThis is an opinionated refactor of [react-hotkeys](https://github.com/chrisui/react-hotkeys), please use it at your own risk\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```javascript\nimport {HotKeys} from 'react-keyboard';\n\n// Simple \"name:key sequence/s\" to create a hotkey map\nconst keyMap = {\n  cmdK: ['command+k'],\n  deleteNode: ['del', 'backspace'],\n}\n\n// render the component\nrender(\n  <HotKeys keyMap={keyMap}>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node1\n      <Leaf style={{ border: '1px solid #ff0000' }}>Press `del` on me, event will be handled by `Node1` and the current node</Leaf>\n    </Node>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node2\n      <Node style={{ border: '1px solid #00ff00' }}>Press `del` on me, event will be only handled by current node</Node>\n    </Node>\n  </HotKeys>,\n  document.getElementById('root')\n)\n\nconst Node = ({ children, ...props }) => {\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n    return false\n  }\n  const cmdK = (e, seq) => {\n    console.log(`snap left with: ${seq}`)\n  }\n  const handlers = {\n    cmdK,\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n\nconst Leaf = ({ children, ...props }) => {\n  // delete handler bubbles to it's parent\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n  }\n  const handlers = {\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n```\n\n## what has been changed compare to react-hotkeys\nThe main changes here are to allow event to bubble:\n\n`react-hotkeys` don't allow parent to handle the event if child has the a same handler. This behaviour works perfectly unless you need to do optional event handle.\nFor example, `onCancel` event should be handled in a certain condition in a child component other wise parent will handle it. However, `react-hotkeys` won't work in this case.\n\n`react-keyboard` uses `mousetrap`. It respects the way how [mousetrap](https://github.com/ccampbell/mousetrap) handle event bubble:\n\n> if event handler returns true, event bubbles to parent, if event handler returns false, it will not bubble\n\nBy default, the bubbling behaviour of `react-keyboard` is exactly the same as `mousetrap`: event bubbles up by default. But if the event handler returns `false`, then event will stop bubbling.\n\nWhen handler returns `false`, internally `mousetrap` will do:\n\n```\ne.stopPropagation()\ne.preventDefault()\n```\n\nIf you don't want to `preventDefault`, simply do not `return false` and add `e.stopPropagation()` in your handler.\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## Why not fork?\nWrite in `ES6 extends Component` manner and the principle changed.\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"6c268fcc3218ee22e12498c8e2a1333ca9691df8","_id":"react-keyboard@0.5.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.3","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-yBnZSkC0IlAWQt977aopXMUiMJyjJQjxy7JE+Y+k4fXqyX1ZzdQLi383hn47xVMjyg/3kdlXSgGqG6aa9HlgyA==","shasum":"7698ac47d3599ba70904ae54afd790d885333ea0","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.5.0.tgz","fileCount":19,"unpackedSize":26940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3PtKCRA9TVsSAnZWagAApqQP+wYzNLdHG7I7fvH3UFGW\ncmYDH9WSmTgWVlUTwyG5nA4TTSJBQa8s95ylBOdF6Mw0JbGvAwOzkPDDDuXd\ntdlAt/oc1L2nrwi5oSc3tn0eApzAtf2qKnh2IKSS6wNqoyEnUXHRXfl1Hekb\nj12X59zoYFPsCINs+GoGk+Ob/iawArVja9gqXoclNJWnmCOQpfw0kRLVvYe2\nLKHvcss4rznh+CXWucwbcO5nxIzlxh3a6CJZUFm2IuNDx2JRCVUesLp9bGi1\nfdVI9GYWemO6BrUGoYwuGMxi8NuvjU38TJDqophj1nAT9R/MwoxbFF9OrQ0U\nJ5htJ/xhXjNsQfsR2gi2xfTnF/oKLvzej8I0f+5PUUs/w+YDJzhV+I9Vhl0P\nW7YMLvxsN5O1z9NfXXNLkLLLnqSEgwPjfI8IcBIRvBh3nsFUVCak2U7/EU9F\nBsr2wX5RGukE5brptSSDtbPHVj4Nlna03xzvkgZ+X5J3Zg4wGW4XYj5LVFvH\n1EZ3VyIrgklaeiI61CO1PqVGEjQLRaUQVD0LmDZhUbsTzwJZJi3baSJjLO0g\n2JcEVhiJs7sOVhfVW1Pre8jea1N5wJZ8KUHdDEMo2/QlTu+f/I0lYK9w/HJR\nbb0WTTJf+cgka1HDqKNOQZKyuuyHGWF9AVUg0VPbbpr0hMQg3YjF7fpjxGTv\nKZXk\r\n=h2xK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4474AMSgEJ4dXF9B78xIgxIZHob2J8GBFIAny2EeZHAiAFmFEYt4Jx4ed+82UlmNTkLHuH4UGJ9O+D1dahETn0JQ=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_0.5.0_1524431690158_0.19731072917662784"},"_hasShrinkwrap":false},"0.5.1":{"name":"react-keyboard","version":"0.5.1","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"lint":"eslint ./src","build":"tsc --outDir lib --declaration","prepublish":"npm run build","start":"node server.js"},"devDependencies":{"express":"^4.16.3","html-webpack-plugin":"^3.2.0","react":"^16.1.1","react-dom":"^16.1.1","ts-loader":"^4.2.0","typescript":"^2.8.3","webpack":"^4.6.0","webpack-cli":"^2.0.14","webpack-dev-middleware":"^3.1.2"},"dependencies":{"@types/lodash.isequal":"^4.5.2","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.2","@types/react":"^16.1.0","@types/react-dom":"^16.0.5","lodash.isequal":"^4.5.0","mousetrap":"^1.5.2","prop-types":"^15.6.1"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\nThis is an opinionated refactor of [react-hotkeys](https://github.com/chrisui/react-hotkeys), please use it at your own risk\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```javascript\nimport {HotKeys} from 'react-keyboard';\n\n// Simple \"name:key sequence/s\" to create a hotkey map\nconst keyMap = {\n  cmdK: ['command+k'],\n  deleteNode: ['del', 'backspace'],\n}\n\n// render the component\nrender(\n  <HotKeys keyMap={keyMap}>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node1\n      <Leaf style={{ border: '1px solid #ff0000' }}>Press `del` on me, event will be handled by `Node1` and the current node</Leaf>\n    </Node>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node2\n      <Node style={{ border: '1px solid #00ff00' }}>Press `del` on me, event will be only handled by current node</Node>\n    </Node>\n  </HotKeys>,\n  document.getElementById('root')\n)\n\nconst Node = ({ children, ...props }) => {\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n    return false\n  }\n  const cmdK = (e, seq) => {\n    console.log(`snap left with: ${seq}`)\n  }\n  const handlers = {\n    cmdK,\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n\nconst Leaf = ({ children, ...props }) => {\n  // delete handler bubbles to it's parent\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n  }\n  const handlers = {\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n```\n\n## what has been changed compare to react-hotkeys\nThe main changes here are to allow event to bubble:\n\n`react-hotkeys` don't allow parent to handle the event if child has the a same handler. This behaviour works perfectly unless you need to do optional event handle.\nFor example, `onCancel` event should be handled in a certain condition in a child component other wise parent will handle it. However, `react-hotkeys` won't work in this case.\n\n`react-keyboard` uses `mousetrap`. It respects the way how [mousetrap](https://github.com/ccampbell/mousetrap) handle event bubble:\n\n> if event handler returns true, event bubbles to parent, if event handler returns false, it will not bubble\n\nBy default, the bubbling behaviour of `react-keyboard` is exactly the same as `mousetrap`: event bubbles up by default. But if the event handler returns `false`, then event will stop bubbling.\n\nWhen handler returns `false`, internally `mousetrap` will do:\n\n```\ne.stopPropagation()\ne.preventDefault()\n```\n\nIf you don't want to `preventDefault`, simply do not `return false` and add `e.stopPropagation()` in your handler.\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## Why not fork?\nWrite in `ES6 extends Component` manner and the principle changed.\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"fb2d1447540bc96deed9e705143e70ec8c1a5977","_id":"react-keyboard@0.5.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.3","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-vs0XNFdksGftKeS7h4NoaKMZcAGZw/oW6ZatxOofbQ7gkh8VlfSFvLpinktcSyM4+A6xLyii5Ztn2ZvC92QFcQ==","shasum":"1efaa483f46e536eb97e0264c7f4c536392c63bb","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-0.5.1.tgz","fileCount":19,"unpackedSize":26952,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3P2tCRA9TVsSAnZWagAAgDEP+QByDqt9Nw+nJAt71GG6\nfhBrceTe/ULw0P2CutOURd8t4xzDqSpI2UKlQVR1Ou2PTd9GduSzxfzPhOlh\ncQUbEHdFre/v6EhGp5H4uvW63MxNgwLWrRojX+CQ1Uv+8MEJex0drBs65YDH\ngC4iHt8UHOsJeoqVNZhPtIFZThIqbIEen0N+f+ugCVJs9MKMfzyBwIYy0eAz\nlfg+6sFCUzDoZed/YpTYph4zxXKyu/cFf16avtxEalck0DN1gw+6T0sA/vy8\nf6szoZnExZ1BGYePNNad/wfx3mkwm1weCrcG1i5iBiYEZCibMVHMOy2oxWH0\n2y0oZEZzPIIM7UvdDYh+Qynw8McV/tqe+9hGSPRnfGraQZhLsWoAEXfgVgB/\naw+kJoEJxMKLTEtbkekZV3tsxmW1vs1rB3QBy5eGAvNQt5a+hDSt1h8Lpbo2\nGDR5joyGmL97HuEjq3kO7rPmNKofp5NDCIjCysXsGIMG74KiuKa0w3C4Mgew\ndjfAt1UhnOqre/h6OU2B2MsyyVHeiJjoCtOiJjmHBMSN0BbW0CaPFlvdyyWd\n5834cWBleMowTVMg/H4/+1kIlQXMbngJ152My5wU/PAauw3ejWJpqlZZldoL\nw2YTsFy50H7Y+qH4GBexkLafhZVLJ2E+4npciBzKFwptuXxlLKPihy3ZwM9E\nIQvq\r\n=YEIk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBJVVNHYqgJio6+qgrbmWVok/cb3RCw2r3wruBPlatLmAiBG+Vl4XFENhWVqrXdJIUrRnYFXljR8lfJtNUqvEKBesw=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_0.5.1_1524432300329_0.47230947790284095"},"_hasShrinkwrap":false},"1.0.0-beta1":{"name":"react-keyboard","version":"1.0.0-beta1","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^6.0.4","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","lodash.isequal":"^4.5.0","mousetrap":"^1.6.2","prop-types":"^15.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\nThis is an opinionated refactor of [react-hotkeys](https://github.com/chrisui/react-hotkeys), please use it at your own risk\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```javascript\nimport {HotKeys} from 'react-keyboard';\n\n// Simple \"name:key sequence/s\" to create a hotkey map\nconst keyMap = {\n  cmdK: ['command+k'],\n  deleteNode: ['del', 'backspace'],\n}\n\n// render the component\nrender(\n  <HotKeys keyMap={keyMap}>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node1\n      <Leaf style={{ border: '1px solid #ff0000' }}>Press `del` on me, event will be handled by `Node1` and the current node</Leaf>\n    </Node>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node2\n      <Node style={{ border: '1px solid #00ff00' }}>Press `del` on me, event will be only handled by current node</Node>\n    </Node>\n  </HotKeys>,\n  document.getElementById('root')\n)\n\nconst Node = ({ children, ...props }) => {\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n    return false\n  }\n  const cmdK = (e, seq) => {\n    console.log(`snap left with: ${seq}`)\n  }\n  const handlers = {\n    cmdK,\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n\nconst Leaf = ({ children, ...props }) => {\n  // delete handler bubbles to it's parent\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n  }\n  const handlers = {\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n```\n\n## what has been changed compare to react-hotkeys\nThe main changes here are to allow event to bubble:\n\n`react-hotkeys` don't allow parent to handle the event if child has the a same handler. This behaviour works perfectly unless you need to do optional event handle.\nFor example, `onCancel` event should be handled in a certain condition in a child component other wise parent will handle it. However, `react-hotkeys` won't work in this case.\n\n`react-keyboard` uses `mousetrap`. It respects the way how [mousetrap](https://github.com/ccampbell/mousetrap) handle event bubble:\n\n> if event handler returns true, event bubbles to parent, if event handler returns false, it will not bubble\n\nBy default, the bubbling behaviour of `react-keyboard` is exactly the same as `mousetrap`: event bubbles up by default. But if the event handler returns `false`, then event will stop bubbling.\n\nWhen handler returns `false`, internally `mousetrap` will do:\n\n```\ne.stopPropagation()\ne.preventDefault()\n```\n\nIf you don't want to `preventDefault`, simply do not `return false` and add `e.stopPropagation()` in your handler.\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## Why not fork?\nWrite in `ES6 extends Component` manner and the principle changed.\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"baf4e0d4d27651e960f3e8528cc334766d85d42a","_id":"react-keyboard@1.0.0-beta1","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-6lfDFb46Dy5TEbv4r1zEMrFVu+o+wubSybYC7OLOZVPT/x07OAW3kVqfDxUJcKt6dk34Sgs37OvgI/n2BWlWFQ==","shasum":"81638dfd466214114ed16cb7131139583ebe9fec","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta1.tgz","fileCount":31,"unpackedSize":136854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjUSJCRA9TVsSAnZWagAAwFMP/2Gd3YNwuz8Jqk5aDY4R\nT4wLJLERM4sdOM4r0bTw6DC1/qJlhsQ2O4sUUH1fxPrNGfxhQUR2At+64Dpj\nMBpfuuZShh647laTMMhO9shdWuLo0FRw3aAw/PdK+FjNmZt2SZZ9JHgdVQLO\nouZkaI9Fj9SyZH8vlHID+dGslD9z0fKVVSvrzg/OES1ybbo6NPrLvvjGTwnA\nJEAQIydlmorAxlF0AbCKd6dKk3muA2WeXc+GbR6Aj6qPRO6C/Ged6Mkc3DNM\nstzd/MB9Sjz4OVrC3sYgXof9IbsUb7uj6P1gRWrwmaSR7mGZ65PQWLcwDjVV\nHHDTxEIxERzxysGz/HMD8UDKGltmMNMTEeIQNaSg0slDPkXTjAHceoz/8WGa\nPh4rQAZtwuvIu6EZLHqaGnBzU+2ywg1QOQgdotbq7KQmgawhMG6aL9uErp14\nmuoftRqQAQcUW7+xCeUzOojNU87mnSegpPSGtpQW488Cim6s2IJd8Jtm/p30\nCN/ydJgoF+zNRxolJXM+T6ISqJM4k+eyfdu8Nr5MbtcfcML+XZyGk/4VZhK9\n6bP3c83tniseyugKmd0H+SUG0SKMBN2+5inuKiTm+QvMzY1B7v+EkMMthyev\n7NpZ92/JDkuH3pw14pqtY1bKBoXaT41G8FIbLXWaMJkm53A/xRl23Tvk7M8C\nfkIe\r\n=qdyz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIqRE7QSdoCV9zBRP4aiA0ddW25SNJdTPoYORmjb0pJwIhAJAQtbkBmLl5+Wy2+gSV9Zfo6t+1ZnJCky5qyXEq7gBj"}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta1_1535984776948_0.29896815089152917"},"_hasShrinkwrap":false},"1.0.0-beta2":{"name":"react-keyboard","version":"1.0.0-beta2","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^6.0.4","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","lodash.isequal":"^4.5.0","mousetrap":"^1.6.2","prop-types":"^15.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\nThis is an opinionated refactor of [react-hotkeys](https://github.com/chrisui/react-hotkeys), please use it at your own risk\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```javascript\nimport {HotKeys} from 'react-keyboard';\n\n// Simple \"name:key sequence/s\" to create a hotkey map\nconst keyMap = {\n  cmdK: ['command+k'],\n  deleteNode: ['del', 'backspace'],\n}\n\n// render the component\nrender(\n  <HotKeys keyMap={keyMap}>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node1\n      <Leaf style={{ border: '1px solid #ff0000' }}>Press `del` on me, event will be handled by `Node1` and the current node</Leaf>\n    </Node>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node2\n      <Node style={{ border: '1px solid #00ff00' }}>Press `del` on me, event will be only handled by current node</Node>\n    </Node>\n  </HotKeys>,\n  document.getElementById('root')\n)\n\nconst Node = ({ children, ...props }) => {\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n    return false\n  }\n  const cmdK = (e, seq) => {\n    console.log(`snap left with: ${seq}`)\n  }\n  const handlers = {\n    cmdK,\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n\nconst Leaf = ({ children, ...props }) => {\n  // delete handler bubbles to it's parent\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n  }\n  const handlers = {\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n```\n\n## what has been changed compare to react-hotkeys\nThe main changes here are to allow event to bubble:\n\n`react-hotkeys` don't allow parent to handle the event if child has the a same handler. This behaviour works perfectly unless you need to do optional event handle.\nFor example, `onCancel` event should be handled in a certain condition in a child component other wise parent will handle it. However, `react-hotkeys` won't work in this case.\n\n`react-keyboard` uses `mousetrap`. It respects the way how [mousetrap](https://github.com/ccampbell/mousetrap) handle event bubble:\n\n> if event handler returns true, event bubbles to parent, if event handler returns false, it will not bubble\n\nBy default, the bubbling behaviour of `react-keyboard` is exactly the same as `mousetrap`: event bubbles up by default. But if the event handler returns `false`, then event will stop bubbling.\n\nWhen handler returns `false`, internally `mousetrap` will do:\n\n```\ne.stopPropagation()\ne.preventDefault()\n```\n\nIf you don't want to `preventDefault`, simply do not `return false` and add `e.stopPropagation()` in your handler.\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## Why not fork?\nWrite in `ES6 extends Component` manner and the principle changed.\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"7bf609965f550c99fe2521e9adacd9cef9a23891","_id":"react-keyboard@1.0.0-beta2","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-HCq950XZah4y+8fodkXZBlol5Xo9nxRAbkT10SA/M4hTbMY7lsNC7kXuIexAkOTM3OAcKl4RaMOhRtMhyZu8KA==","shasum":"b535c92ea8fd3ec17a85929dda7e329d3f89ea79","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta2.tgz","fileCount":31,"unpackedSize":136318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbt12QCRA9TVsSAnZWagAAN9UP/ig57gL8RA1N/f+SWm+3\nEKugYsG7Wcfpp90x1JriLk7PVbXmFdsZpL1mH4O/tJ+txdJeosblOFDb40sJ\nHu/qaQ9W3MFMEmqRyftvMb1D6F08q3iztmsOeqFQDySLk+4v5gcpwbS2DNrh\nTgsXnP8/AoiI2cNmRtZ5wtjynpRRfmwdpTro/9VImrvZpRpNb7/QA6uSPBme\n+V27MOwodexQKp+r/4dQZ1RvKQGgc3P850EClJkxjDYHYpZ/uVIbRmqkupwI\nVwi2Ec7Iq4tZq/OmY4j90mduRmCj15jC9oMCgiMtOvy/bMZk57VLs0YIwX84\njYzXZx+nnEnSJ8FXMNrrjV1lY8TepVvvwnJFMuRLBPcEKITAUa3Y4L21Yw7K\n/vxxUAZMMw7LnaRKWJaEXmnNstFbBPHyhqy0yeZ60bBOHzYAgGRHX7xu0j7b\n4ZHRN+QoDjX8xZxZhT2viC5mUMtve4E3ndKp95UL4Uw7xNV6p45LaALXhLSl\nfJE4h3dkIcy/XeqrQuLVGmOkiVf25QsE3VSO/ykshZdiAyNeuo0YvfuYsVnO\nofs6ESF2XQ2XeAjXBJeAENShYVM4uyonAC91JRT8GNVCzo/SSN4dHEOMJVwz\n5xeXBGGxwhA+aVkAjhhmZUzYkPYYHj+ebtu+dMABBCdBNh40660mRYXOkoom\nUKbs\r\n=roWM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfp6TrpFXuhuiq6OQ1DoCnl4SeIZxzs7X8hAIkPGdO9AiAXxQfAUCIoBow1FLeoVdc24wQH3hruyAPz8gPCGB/0sw=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta2_1538743696169_0.788805785332475"},"_hasShrinkwrap":false},"1.0.0-beta3":{"name":"react-keyboard","version":"1.0.0-beta3","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^6.0.4","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","lodash.isequal":"^4.5.0","mousetrap":"^1.6.2","prop-types":"^15.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\nThis is an opinionated refactor of [react-hotkeys](https://github.com/chrisui/react-hotkeys), please use it at your own risk\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```javascript\nimport {HotKeys} from 'react-keyboard';\n\n// Simple \"name:key sequence/s\" to create a hotkey map\nconst keyMap = {\n  cmdK: ['command+k'],\n  deleteNode: ['del', 'backspace'],\n}\n\n// render the component\nrender(\n  <HotKeys keyMap={keyMap}>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node1\n      <Leaf style={{ border: '1px solid #ff0000' }}>Press `del` on me, event will be handled by `Node1` and the current node</Leaf>\n    </Node>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node2\n      <Node style={{ border: '1px solid #00ff00' }}>Press `del` on me, event will be only handled by current node</Node>\n    </Node>\n  </HotKeys>,\n  document.getElementById('root')\n)\n\nconst Node = ({ children, ...props }) => {\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n    return false\n  }\n  const cmdK = (e, seq) => {\n    console.log(`snap left with: ${seq}`)\n  }\n  const handlers = {\n    cmdK,\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n\nconst Leaf = ({ children, ...props }) => {\n  // delete handler bubbles to it's parent\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n  }\n  const handlers = {\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n```\n\n## what has been changed compare to react-hotkeys\nThe main changes here are to allow event to bubble:\n\n`react-hotkeys` don't allow parent to handle the event if child has the a same handler. This behaviour works perfectly unless you need to do optional event handle.\nFor example, `onCancel` event should be handled in a certain condition in a child component other wise parent will handle it. However, `react-hotkeys` won't work in this case.\n\n`react-keyboard` uses `mousetrap`. It respects the way how [mousetrap](https://github.com/ccampbell/mousetrap) handle event bubble:\n\n> if event handler returns true, event bubbles to parent, if event handler returns false, it will not bubble\n\nBy default, the bubbling behaviour of `react-keyboard` is exactly the same as `mousetrap`: event bubbles up by default. But if the event handler returns `false`, then event will stop bubbling.\n\nWhen handler returns `false`, internally `mousetrap` will do:\n\n```\ne.stopPropagation()\ne.preventDefault()\n```\n\nIf you don't want to `preventDefault`, simply do not `return false` and add `e.stopPropagation()` in your handler.\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## Why not fork?\nWrite in `ES6 extends Component` manner and the principle changed.\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"87f76feca73f138ba82f3c8236fb4b6b3c8fe4cb","_id":"react-keyboard@1.0.0-beta3","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-gwWLMIx5vr3CACkPDD6QksTZTfywOXbLNi2Kl2V2ildeAj/4TN6+621x4qMjYIiKUWPtgCiLzLNS1oy21MLlWA==","shasum":"930837e12ac4db85634a55f5be4c0307b9329f38","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta3.tgz","fileCount":31,"unpackedSize":136360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbt2OECRA9TVsSAnZWagAAodkP/A1jDeN4e7vjv0oWpsM0\njhOB+tGVQ8y02plR2PXVCLh8Wfvtqrdil8XBJzBKKzEqgYwN2aGqP4QR8KcA\nPAwfg/3uFYdoq6Y/jC2T6+IClGn55Wm9nQOUf4F7r+GRZhaXsHNkzGaNJxQD\nMO9OMDkYqSHWgs8lRMj2QA4OcaNimYc8+P7S51AV8haniuaWTip2/6EUgIkX\nzK4FpkoF/sHV3o/MCR8y58vxM0AxA7EMMF9+5Kiz2712zpeJ155OAYbmHGw3\nuv/95WS6Z7xYkIwzUIF8d8lQjTkpXTXQ78RSS3ii338xzG02pl/c1Q9jDiR2\nvWRYrCNC6BqtTIodxklFWaS4ATqBRBJBan0wv4Rq5jdU52NUa8LgnbIm42v2\naDqKE9rVhFbd+cCsiDQNUeFkHq+rTiNxTqGl99gQGl26LAtcXwbWyb41lb+n\nW8HOxTYj9VaQyzhjsVMgcpeN1DMjR7Mc+jZpl7uQ/7IgzFTwlN6+1RGxQccE\ndu2Mq2WgfNdGfw7Vk0KIi/rIZ92VZNOgQxA2qdppkR5jzKV7aWmnW0GX5wtp\nTMt2AYdkuwSjzGwMbsB3mZaCLxqdQQG/AxqjzAT/ZPQ4MJnZtVrpFE8NeXHi\nIL6hLGHYeNUvtnLqXZOW5IdJySgww55iLN47ogiPB4XinOXXxhZBE7EeLgKq\nxi5L\r\n=QpCS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDv/wDcj2TK8qz3T6uiZ1/NxBDA9Vv7ROPYnKEePxR5hwIgTe95Hl2pxh8gCdkHrx7P4rFIebVm+Sk+DU9Tuh1jetE="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta3_1538745220344_0.0414293156605583"},"_hasShrinkwrap":false},"1.0.0-beta4":{"name":"react-keyboard","version":"1.0.0-beta4","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^6.0.4","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2","prop-types":"^15.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\nThis is an opinionated refactor of [react-hotkeys](https://github.com/chrisui/react-hotkeys), please use it at your own risk\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```javascript\nimport {HotKeys} from 'react-keyboard';\n\n// Simple \"name:key sequence/s\" to create a hotkey map\nconst keyMap = {\n  cmdK: ['command+k'],\n  deleteNode: ['del', 'backspace'],\n}\n\n// render the component\nrender(\n  <HotKeys keyMap={keyMap}>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node1\n      <Leaf style={{ border: '1px solid #ff0000' }}>Press `del` on me, event will be handled by `Node1` and the current node</Leaf>\n    </Node>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node2\n      <Node style={{ border: '1px solid #00ff00' }}>Press `del` on me, event will be only handled by current node</Node>\n    </Node>\n  </HotKeys>,\n  document.getElementById('root')\n)\n\nconst Node = ({ children, ...props }) => {\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n    return false\n  }\n  const cmdK = (e, seq) => {\n    console.log(`snap left with: ${seq}`)\n  }\n  const handlers = {\n    cmdK,\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n\nconst Leaf = ({ children, ...props }) => {\n  // delete handler bubbles to it's parent\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n  }\n  const handlers = {\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n```\n\n## what has been changed compare to react-hotkeys\nThe main changes here are to allow event to bubble:\n\n`react-hotkeys` don't allow parent to handle the event if child has the a same handler. This behaviour works perfectly unless you need to do optional event handle.\nFor example, `onCancel` event should be handled in a certain condition in a child component other wise parent will handle it. However, `react-hotkeys` won't work in this case.\n\n`react-keyboard` uses `mousetrap`. It respects the way how [mousetrap](https://github.com/ccampbell/mousetrap) handle event bubble:\n\n> if event handler returns true, event bubbles to parent, if event handler returns false, it will not bubble\n\nBy default, the bubbling behaviour of `react-keyboard` is exactly the same as `mousetrap`: event bubbles up by default. But if the event handler returns `false`, then event will stop bubbling.\n\nWhen handler returns `false`, internally `mousetrap` will do:\n\n```\ne.stopPropagation()\ne.preventDefault()\n```\n\nIf you don't want to `preventDefault`, simply do not `return false` and add `e.stopPropagation()` in your handler.\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## Why not fork?\nWrite in `ES6 extends Component` manner and the principle changed.\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"599071131bd35a4c2947d6339bd561f302a42c14","_id":"react-keyboard@1.0.0-beta4","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-tOelDm8J5q+swxkxrGCvJHdYb8BAiMmV4e6Lz3dqBx/UrJpfYM3Py8/674C09DQRbs6VukdBy/FA8Hn6tmiNEw==","shasum":"dde23536d48aa6046da192e048682237a7793447","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta4.tgz","fileCount":31,"unpackedSize":136360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbt23WCRA9TVsSAnZWagAA+mAP/i86V0WCYKJbMbmhfElN\noJd2JvBgqRTkn+Boe7zwSd78yIkye3wlFiK75DnOSFpWvrzCrGmEpVSTiPz2\ncxPR6SqttNsJVzu/ANK7shfOFFJwAN3mD8Zt1l8s3zX+XtYq/5c8GFziO8gx\nQ4QYUG3958wc1XtacLAh3PdZZZ2CFTObbc7xicqC3TSYVYGHOOZl4iSHZnhH\nWx/kz04iAVlaaIhjnYaEofmoYeFadoSGsRXOnXeVPw+vDnoAxZNAuCnIUfoF\nB0f+SSjC3o03vUuByMo8vZZKc0aO5gge23gnJ3k47037mxEJLigZC2vtTr33\nb5rMGl4NebUcR7enuqJ25Sp2U41SIQLpQCKoYU0wy6QWAthWUc+3L/5xn+Xy\nudknfHG0dlxgUqs800oZDqgXsceLKvw/h9FFo21L+brneCpIPHFakVMsGKZX\nDs9fJnYqMZmebw6yiH+upzxWZkWH95POEIyg2WFW+FzI/RpFZrSbxKhmw47h\nSXIhkYygT/nJ661l28f2h6WnEOgxvrDTKsfLiyXcB2zOHMkVW9zNJtfMgLqj\nOhCI+rajfk0ZCWBcEvP7jydqF3FujfZCjr9J6KSiEiHUaRxsAVua7bgmWjxu\nfjlHsUYC/38i1YXYxkVvENKVlFVqjQec7g5gOVDJdElSpnQBR0F6XyBQnnzE\nReE/\r\n=oaZg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEShFFqGNvW3DwQ12aomCf9FpatGlTxOwJfCUHk3HXNuAiBSf+INzA+BoMs9ixHdX9JJEoO2WZrI44Dt32BtWy8VzA=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta4_1538747861486_0.8021231504917687"},"_hasShrinkwrap":false},"1.0.0-beta5":{"name":"react-keyboard","version":"1.0.0-beta5","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2","prop-types":"^15.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\nThis is an opinionated refactor of [react-hotkeys](https://github.com/chrisui/react-hotkeys), please use it at your own risk\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```javascript\nimport {HotKeys} from 'react-keyboard';\n\n// Simple \"name:key sequence/s\" to create a hotkey map\nconst keyMap = {\n  cmdK: ['command+k'],\n  deleteNode: ['del', 'backspace'],\n}\n\n// render the component\nrender(\n  <HotKeys keyMap={keyMap}>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node1\n      <Leaf style={{ border: '1px solid #ff0000' }}>Press `del` on me, event will be handled by `Node1` and the current node</Leaf>\n    </Node>\n    <Node style={{ border: '1px solid #ccc' }}>\n      Node2\n      <Node style={{ border: '1px solid #00ff00' }}>Press `del` on me, event will be only handled by current node</Node>\n    </Node>\n  </HotKeys>,\n  document.getElementById('root')\n)\n\nconst Node = ({ children, ...props }) => {\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n    return false\n  }\n  const cmdK = (e, seq) => {\n    console.log(`snap left with: ${seq}`)\n  }\n  const handlers = {\n    cmdK,\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n\nconst Leaf = ({ children, ...props }) => {\n  // delete handler bubbles to it's parent\n  const deleteNode = (e, seq) => {\n    console.log(`delete node with: ${seq}`)\n  }\n  const handlers = {\n    deleteNode,\n  }\n  return (\n    <HotKeys handlers={handlers} {...props}>\n      { children }\n    </HotKeys>\n  )\n}\n```\n\n## what has been changed compare to react-hotkeys\nThe main changes here are to allow event to bubble:\n\n`react-hotkeys` don't allow parent to handle the event if child has the a same handler. This behaviour works perfectly unless you need to do optional event handle.\nFor example, `onCancel` event should be handled in a certain condition in a child component other wise parent will handle it. However, `react-hotkeys` won't work in this case.\n\n`react-keyboard` uses `mousetrap`. It respects the way how [mousetrap](https://github.com/ccampbell/mousetrap) handle event bubble:\n\n> if event handler returns true, event bubbles to parent, if event handler returns false, it will not bubble\n\nBy default, the bubbling behaviour of `react-keyboard` is exactly the same as `mousetrap`: event bubbles up by default. But if the event handler returns `false`, then event will stop bubbling.\n\nWhen handler returns `false`, internally `mousetrap` will do:\n\n```\ne.stopPropagation()\ne.preventDefault()\n```\n\nIf you don't want to `preventDefault`, simply do not `return false` and add `e.stopPropagation()` in your handler.\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## Why not fork?\nWrite in `ES6 extends Component` manner and the principle changed.\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"26e65c6f7140b26e6ebff6007a61fa05f6cd94f6","_id":"react-keyboard@1.0.0-beta5","_nodeVersion":"9.11.2","_npmVersion":"6.7.0","dist":{"integrity":"sha512-PjkDirTX5p4AeXvotGgX/xJuZvOBi2PiwZXd78A/W8tMHkmxOLot8APQO1ynOQYTEwRUJpp6E1YmDvQRpfkOww==","shasum":"222b0914051ba28edf9065c964a140d4370c4c6b","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta5.tgz","fileCount":21,"unpackedSize":30146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcZeEaCRA9TVsSAnZWagAAAgoP/0jev6BRgv4GnBhRsz1b\nVuP/PJNy/YRKECh3+UFQSG4H0D9VfkbFFpxDZWYaLtAQIqcABDPb6kyROujY\nv9AwCGU1uYJSZcS33aLTSYFN3vIC4maBwselbcT37bBrTYJHj/tdWGMCqy5H\n3Bn+87kE+JDfNpQ2DEAItDDu25MspuyNMhru8gKEYRpd3KgQ85scJnMt5w8I\nBb8RJ2z5sDlnrlQpMQInYKyzmS7B+waix2nrakGKMqiH366o91znSXEgsoAa\nHvVLaninj5T30jnGjIF3jqeMw/eY8np6msedBjFWFXINi9HRFpXTa0gzs7TF\noE5eLqErFkcyS4qMzsgiB74HiYfB2OSqIV2D1SdNNIw+Z2OBeqA54qbgGyP5\ngcs8NXQzAR0L0jZ+yE1tw9gRR6aq1jlk2I86HPdIh+KzH91g5yeeAQnnjV95\nf8x3jdxK6Hmm7IPjw7hQb9qzFj3zwU77Pye89Jb+/tIW17Y/PuXpJuM/xt7r\nyqqGKg4ddeizNd45pMxllaQyEAw/EGfv5SN0M4QjXi16+j7RzVGw6SflW+FO\n0Br66J/wePobB+1WMW6SH8pUYWJxn8zh0qAaLrXjcbs6Otb84FjY2v6l39lP\nHKDp+QxGJXNt1yiGB8XV1gRI4kr9nVkIupbRQzFV1S/mN00GOtW3hQZMn8ht\nIIv6\r\n=wYJ8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwvQhLKrFZJUYCBNxFFrFWgv068vAC1GmpPT0hlRcGIQIhAMFKsArvfiEn2v0W3JQ23EIl2qELLeIFtSiu+J7PSJo4"}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta5_1550180633125_0.19393714473408208"},"_hasShrinkwrap":false},"1.0.0-beta7":{"name":"react-keyboard","version":"1.0.0-beta7","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2","prop-types":"^15.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\n\n![react-keyboard](https://user-images.githubusercontent.com/486382/52902608-e9d3fa00-321b-11e9-8138-35ff1dcf6c3c.gif)\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```typescript\nimport React from 'react'\nimport HotKeys, { Handlers } from 'react-keyboard'\nimport { render } from 'react-dom'\n\nconst keyMap = {\n  cmdK: {\n    combo: 'command+k',\n  },\n  deleteNode: ['del', 'backspace'],\n  left: 'left',\n  right: 'right',\n  up: 'up',\n  down: 'down',\n  space: 'space',\n}\n\ninterface NodeProps {\n  style?: React.CSSProperties\n  focusOnMount?: boolean\n  name?: string\n  className?: string;\n  data: string[];\n}\n\nclass Node extends React.Component<NodeProps, {show: boolean, data: string[], selected: number, selections: number[]}> {\n\n  handlers: Handlers\n\n  constructor(props: NodeProps) {\n    super(props)\n    this.handlers = {\n      up: this.up,\n      down: this.down,\n      space: this.space,\n    }\n    this.state = {\n      show: true,\n      data: props.data,\n      selected: -1,\n      selections: []\n    }\n  }\n\n  up = (e: KeyboardEvent, seq: string) => {\n    this.setState({ selected: this.state.selected - 1 >= 0 ? this.state.selected - 1 : 0 })\n  }\n\n  down = (e: KeyboardEvent, seq: string) => {\n    this.setState({ selected: this.state.selected + 1 >= this.state.data.length ? this.state.selected : this.state.selected + 1 })\n  }\n\n  space = (e: KeyboardEvent, seq: string) => {\n    if (!this.state.selections.includes(this.state.selected)) {\n      this.setState({ selections: this.state.selections.concat(this.state.selected) })\n    } else {\n      this.setState({ selections: this.state.selections.filter(s => s !== this.state.selected) })\n    }\n    return false;\n  }\n\n  render() {\n    return (\n      <HotKeys\n        {...this.props}\n        handlers={this.handlers}\n        navigator={{\n          up: () => this.state.selected > 0 ? null : 'header',\n          left: 'left',\n          right: 'right',\n        }}\n      >\n        {\n          this.props.data.map((d, i) => {\n            const itemSelected = this.state.selected === i\n            return (\n              <div key={d} className=\"item\" style={{ backgroundColor: itemSelected ? '#aaffcc' : '#fff' }}>\n                <span>{d}{itemSelected ? '(try to press: /space/ and arrow keys)' : ''}</span>\n                {this.state.selections.includes(i) ? <span>✅</span> : null}\n              </div>\n            )\n          })\n        }\n      </HotKeys>\n    )\n  }\n}\n\nrender(\n  <HotKeys keyMap={keyMap} className=\"container\">\n    <HotKeys name=\"header\" className=\"header\" navigator={{ down: 'left' }}>\n      This is a demo of react-keyboard (use arrow key to navigate between panels)\n    </HotKeys>\n    <div className=\"content\">\n      <Node\n        name=\"left\"\n        className=\"left\"\n        data={[ 'Apple', 'Orange', 'Rice', 'Banana' ]}\n      />\n      <Node\n        name=\"right\"\n        className=\"right\"\n        data={[ 'Apple', 'Orange', 'Rice', 'Banana' ]}\n      />\n    </div>\n  </HotKeys>,\n  document.getElementById('root')\n)\n```\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"84a780d77a43be1daa721b0d6ec0228636d17cdc","_id":"react-keyboard@1.0.0-beta7","_nodeVersion":"9.11.2","_npmVersion":"6.7.0","dist":{"integrity":"sha512-hFZsfvElT1Ak5nx4erkloVmZFRlNT6Gn/51WF7N9T1zdnWG3UNQpiu3LJnHFwTGWWaY/LvTo+Em7/8XfgjHtcw==","shasum":"300601840ee31873fc5309805be056960741cf79","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta7.tgz","fileCount":22,"unpackedSize":33053,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcalxXCRA9TVsSAnZWagAA9FwP/0symfJIAUkj70m30LeR\n6a9YkT7xwmo/sNufBNCTZ/z67WWQe/HBrljSpNODBb9pETWaPSNYrSaQt3Lg\nWTYru+VSJgAFWrnrh4iBjkGsV3rUL7/Pif93BGwcugw7G2o1xYpAnGZcGLcx\nXa6nVxgomjAo6JkLRWR9Uq3wZENGpVPQjDHNDbr+GKhf8MXPoPuqoJNgwqE9\np+X6CNqo7LEhnNGU5z3IGf/yifuE9zM8zqBcinRkOWGdkqGhAMWWzbvEmKHk\nyUsSCH/AYwhBpsecIfXIw6MGaFu9DSp3rx1qhHhadJDv9MZN4+UiWndjroLi\ntnPir7mYtAo7SrYIRxkSkHFhTzYnmPBQuoFlMAeIY97a/j0wVCwrBZr0VPD2\nl+q/gdqNTDBWPSFCdQiBKyBOX4+7RCle2idfc9C2w6HOAfGBzLQGPgH5h6ZG\nOZKh4v0eJsEuuhmutbS6RBuqPyZRLQl6jF2Ol7YkzFrjW9E5jFI0YawHPAVP\nKcYlicumAIqmXuAYpkgdJCODFEsf2/ZQqO/dPaSJJ/lXq3Yy7MSXR5qG302L\njFZsXL70Yo0Ysh/QzS7T6NhD9hD5ObluhzCYEtm0AA54dUWZsmRpsQzNwoNY\nClaSO1ao4y1wtZNmKaPR5v791F6zBpPtBolp+j1GwA+LVhLW/MD9cwvicc2F\nkNg3\r\n=7sgI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGn92NlneyxexTY6eXHhQn+t/Li8goJMChQE8cXUdi/0AiBlxr18KYcNdysQqTkoFBeAflRhWFfLZOyVQcXAiELznQ=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta7_1550474327087_0.9164332856775588"},"_hasShrinkwrap":false},"1.0.0-beta8":{"name":"react-keyboard","version":"1.0.0-beta8","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"## React HotKeys\n-------------\n\n![react-keyboard](https://user-images.githubusercontent.com/486382/52902608-e9d3fa00-321b-11e9-8138-35ff1dcf6c3c.gif)\n\n## Install\n```\nnpm install react-keyboard\n```\n\n## run the example:\n```\nnode server.js\n```\n\n## Quick Example\n\n```typescript\nimport React from 'react'\nimport HotKeys, { Handlers } from 'react-keyboard'\nimport { render } from 'react-dom'\n\nconst keyMap = {\n  cmdK: {\n    combo: 'command+k',\n  },\n  deleteNode: ['del', 'backspace'],\n  left: 'left',\n  right: 'right',\n  up: 'up',\n  down: 'down',\n  space: 'space',\n}\n\ninterface NodeProps {\n  style?: React.CSSProperties\n  focusOnMount?: boolean\n  name?: string\n  className?: string;\n  data: string[];\n}\n\nclass Node extends React.Component<NodeProps, {show: boolean, data: string[], selected: number, selections: number[]}> {\n\n  handlers: Handlers\n\n  constructor(props: NodeProps) {\n    super(props)\n    this.handlers = {\n      up: this.up,\n      down: this.down,\n      space: this.space,\n    }\n    this.state = {\n      show: true,\n      data: props.data,\n      selected: -1,\n      selections: []\n    }\n  }\n\n  up = (e: KeyboardEvent, seq: string) => {\n    this.setState({ selected: this.state.selected - 1 >= 0 ? this.state.selected - 1 : 0 })\n  }\n\n  down = (e: KeyboardEvent, seq: string) => {\n    this.setState({ selected: this.state.selected + 1 >= this.state.data.length ? this.state.selected : this.state.selected + 1 })\n  }\n\n  space = (e: KeyboardEvent, seq: string) => {\n    if (!this.state.selections.includes(this.state.selected)) {\n      this.setState({ selections: this.state.selections.concat(this.state.selected) })\n    } else {\n      this.setState({ selections: this.state.selections.filter(s => s !== this.state.selected) })\n    }\n    return false;\n  }\n\n  render() {\n    return (\n      <HotKeys\n        {...this.props}\n        handlers={this.handlers}\n        navigator={{\n          up: () => this.state.selected > 0 ? null : 'header',\n          left: 'left',\n          right: 'right',\n        }}\n      >\n        {\n          this.props.data.map((d, i) => {\n            const itemSelected = this.state.selected === i\n            return (\n              <div key={d} className=\"item\" style={{ backgroundColor: itemSelected ? '#aaffcc' : '#fff' }}>\n                <span>{d}{itemSelected ? '(try to press: /space/ and arrow keys)' : ''}</span>\n                {this.state.selections.includes(i) ? <span>✅</span> : null}\n              </div>\n            )\n          })\n        }\n      </HotKeys>\n    )\n  }\n}\n\nrender(\n  <HotKeys keyMap={keyMap} className=\"container\">\n    <HotKeys name=\"header\" className=\"header\" navigator={{ down: 'left' }}>\n      This is a demo of react-keyboard (use arrow key to navigate between panels)\n    </HotKeys>\n    <div className=\"content\">\n      <Node\n        name=\"left\"\n        className=\"left\"\n        data={[ 'Apple', 'Orange', 'Rice', 'Banana' ]}\n      />\n      <Node\n        name=\"right\"\n        className=\"right\"\n        data={[ 'Apple', 'Orange', 'Rice', 'Banana' ]}\n      />\n    </div>\n  </HotKeys>,\n  document.getElementById('root')\n)\n```\n\n## License\nMIT\n","readmeFilename":"README.md","gitHead":"84a780d77a43be1daa721b0d6ec0228636d17cdc","_id":"react-keyboard@1.0.0-beta8","_nodeVersion":"9.11.2","_npmVersion":"6.7.0","dist":{"integrity":"sha512-9Gh0V05YiJg3iuGc3oAT5lWhSQObQaBi+w+XsHqJ6oRGuE8J9uOa6KXot6KXbmAOaRU8pNoK1oBpvX4AbdAwKA==","shasum":"9572c8796bd8ddb9e80aea761ec0a59311310d43","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta8.tgz","fileCount":19,"unpackedSize":31082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcasNKCRA9TVsSAnZWagAAPAwP/Aj4Qr4CCTsrYe0688/4\nSW5JlXQywIes1w5TpYopECLWs9gGsb0zE9M6q+Dp1/vcIARov5gnWab10ujE\n+Vp50BQDlcj/8A+zGIS9t7QFke3v18RK6Peg5Sn3xTPeMBx2rg+xbXekx198\nV+t9OpA4OaazBJ7t1UN46me62wrQExMxORkrk189GvJU6RrblNyuf6zwHQn1\niRsdMkLGChfTNZKO/X4slwjTX6HKFrQR5/shpJ58IUIgaR0UcQPT3ZSYxZ+M\nbGTJM486gtW+VFMr2lcU9y7TmfxVz1KjxJSs2JtRPPAwJbbb740p7qlgbtsY\nR2ao7dYRrJjjntO2LbBsl2vKLeAQ/WK66jS9Uo7SdPualqOcP2VWZCKmshuH\nAfqyBPxsiUXjyvidWVyJpWRp8opWCzSUHKcHIuKCml7CNaa5s84UdX2HMWYB\nAodzUa4fX+zFfcy4a6KhZ+c8xmnTIIZ3vFsep9n+4PKnTI/Dt1PMm4Gzj2fb\no6yYgyfFLMVfwocmBEJE6K/hMTglEHs+Hsp9eZ0rq9+kB8PVJ7mz53f/gz60\nwiPxDFPnLebPA6CBkclaNd8guj93ZuTzx7J5mhXpkw5itZFyV+fk12hTnwYg\ndxz8nsc7XYYfvl2RfMBoZupy/PbqI587gMt6NLB/hnA8k2RXHHE8A8UHwqTD\npe5z\r\n=0dCG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQv9aLmB3iVz5weeA8us0gOjVAGx75ylzBZUwZjftzmAiAeyPZ5x2apDL/tcwyVZYYanSKvDOXoLRzyMwcQ1baXDg=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta8_1550500682266_0.4866312695216961"},"_hasShrinkwrap":false},"1.0.0-beta9":{"name":"react-keyboard","version":"1.0.0-beta9","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"# Introduction\n\nreact-keyboard is wrap of mousetrap.js in React, it offers keyboard shortcuts handling in React application.\n\n![react-keyboard](https://user-images.githubusercontent.com/486382/52902608-e9d3fa00-321b-11e9-8138-35ff1dcf6c3c.gif)\n\n## Getting started\n\n### Install\n\n```bash\nnpm install react-keyboard\n```\n\n### Usage Example <a id=\"usage-example\"></a>\n\n#### Defined keyMap\n\n```typescript\nconst keyMap = {\n  cmdK: {\n    combo: 'command+k',\n    eventType: 'keyup',\n  },\n  deleteNode: ['del', 'backspace'],\n  left: 'left',\n}\n```\n\nA KeyMap is an object which value is the key sequence. The key sequence can be:\n\n1. `string` which can be a single key  `left` or combination of keys `command+k`\n2. `array` which is an array of multiple key commands: `['del', 'backspace']`\n3. `object` only use an object if you need to listen to specific event type: `{combo: 'command+k', eventType: 'keyup'}`\n\n#### Use HotKeys Component\n\n```typescript\nimport { HotKeys, Handlers } from 'react-keyboard'\n\nexport class MyHotKeys extends React.Component {\n\n  showDocumentation = () => {\n    console.log('show doc')\n  }\n  deleteNode = () => {\n    console.log('deleted')\n  }\n  moveLeft = () => {\n    console.log('move left')\n  }\n  showChildDocumentation = () => {\n    console.log('show child doc')\n  }\n\n  handlersParent = {\n    cmdK: this.showDocumentation,\n    deleteNode: this.deleteNode,\n  }\n\n  handlersChild = {\n    cmdK: this.showChildDocumentation,\n    left: this.moveLeft,\n  }\n\n  render() {\n    return <HotKeys keyMap={keyMap} handlers={this.handlersParent}>\n      <span>this is my hotkeys</span>\n      <HotKeys handlers={this.handlersChild}>A child</HotKeys>\n    </HotKeys>\n  }\n}\n```\n\nNote: Child HotKeys components can inherit `keyMap` from their parents. You don't necessarily define `keyMap` for each child if parents already have the shortcuts you need.\n\n","readmeFilename":"README.md","gitHead":"053bdd89da61bb7d64188f63169358773ad8aa2d","_id":"react-keyboard@1.0.0-beta9","_nodeVersion":"9.11.2","_npmVersion":"6.7.0","dist":{"integrity":"sha512-i7fJeamVI71Nht36jut2aleoitNtZBuCujfEQhLCYTxPH7RTtgvR3y5JmoSgq+nN2OtFWQSgam6VBHNxF1wX+Q==","shasum":"79a56e615aed5a76b51567d616e2b0fc0233c6f1","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta9.tgz","fileCount":22,"unpackedSize":30134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbB64CRA9TVsSAnZWagAAOdQQAITrT+CXrJ8QpfJv7RvX\nC/FmkNE3XQ884pV6qS6EYLW8gALFRPXyouvnVVbs5aRdy74/VXfiVKv6ViHm\n/AzjBmgFISDXw5YF2EDR6ZtAKDP1BK+Hz5Iw3hkTWwVgWmt+MIzHSd6/5O7W\ndEOaCBCDl2EKhsIYT20aydzRGWwmp0exQDhMdr01b/xnAYKrwZifrvHQTQZj\nKLUCUXsFrPR0OhF32OZBFCysVES1XToozSzWCZrcsPOyecnklPGCRVLtVmU9\nxbCc37wJBRjheMiGDoX5FO448PBP00x4Aam3LTH6PVkqH3atZk8xfIA4X/eJ\nM8SLMdYvkUnFFNTna8/3Hds3qc9D94leifhBTK/IQxNMXDHatqVScSvef8bI\nYfq85W27FxB1FReTJGuBj5b2BIR4hhhVogAgx2RiWjuSCHR981s7zfQqpIt1\nDEQVwl2TTkKnKODydrD0jyhRC+1ovtOllkNkCOsxPb4tZYvVYewiI70ms5yo\nTpaRuIhnnyQmhu0Xt7TJKMW9Fs3/W1/nrbv8sYsuwpsE7t8tvx2+FbUtkSRD\nwdoAJnOC0ZLriXxLMXkeThj02npnG/W/6+xhgPoeTGNVYHWNjSfaDnCpUrED\naxah1Jz2WR+G6m8TdxM8oRiPnNpE5eZmnsFqJQ7xlwDxKB4V5PE9bj2NLT+1\n/TiZ\r\n=KZEF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICIeAFgOVyLZU1P61/yRbXRT2+mqbd98hRU3FOswkC1RAiBsErRh0+QE1KgnBc0inonJXvdZCQHHYR5S9o+xWE76IA=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta9_1550589624061_0.27416040146737086"},"_hasShrinkwrap":false},"1.0.0-beta10":{"name":"react-keyboard","version":"1.0.0-beta10","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.4.6","@types/react-dom":"^16.0.7","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.4.2","react-dom":"^16.4.2","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"# Introduction\n\nreact-keyboard is wrap of mousetrap.js in React, it offers keyboard shortcuts handling in React application.\n\n![react-keyboard](https://user-images.githubusercontent.com/486382/52902608-e9d3fa00-321b-11e9-8138-35ff1dcf6c3c.gif)\n\n## Getting started\n\n### Install\n\n```bash\nnpm install react-keyboard\n```\n\n### Usage Example <a id=\"usage-example\"></a>\n\n#### Defined keyMap\n\n```typescript\nconst keyMap = {\n  cmdK: {\n    combo: 'command+k',\n    eventType: 'keyup',\n  },\n  deleteNode: ['del', 'backspace'],\n  left: 'left',\n}\n```\n\nA KeyMap is an object which value is the key sequence. The key sequence can be:\n\n1. `string` which can be a single key  `left` or combination of keys `command+k`\n2. `array` which is an array of multiple key commands: `['del', 'backspace']`\n3. `object` only use an object if you need to listen to specific event type: `{combo: 'command+k', eventType: 'keyup'}`\n\n#### Use HotKeys Component\n\n```typescript\nimport { HotKeys, Handlers } from 'react-keyboard'\n\nexport class MyHotKeys extends React.Component {\n\n  showDocumentation = () => {\n    console.log('show doc')\n  }\n  deleteNode = () => {\n    console.log('deleted')\n  }\n  moveLeft = () => {\n    console.log('move left')\n  }\n  showChildDocumentation = () => {\n    console.log('show child doc')\n  }\n\n  handlersParent = {\n    cmdK: this.showDocumentation,\n    deleteNode: this.deleteNode,\n  }\n\n  handlersChild = {\n    cmdK: this.showChildDocumentation,\n    left: this.moveLeft,\n  }\n\n  render() {\n    return <HotKeys keyMap={keyMap} handlers={this.handlersParent}>\n      <span>this is my hotkeys</span>\n      <HotKeys handlers={this.handlersChild}>A child</HotKeys>\n    </HotKeys>\n  }\n}\n```\n\nNote: Child HotKeys components can inherit `keyMap` from their parents. You don't necessarily define `keyMap` for each child if parents already have the shortcuts you need.\n\n","readmeFilename":"README.md","gitHead":"053bdd89da61bb7d64188f63169358773ad8aa2d","_id":"react-keyboard@1.0.0-beta10","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-p83kyF/eN5okQiZuUoT1xba/cAKs1XZppuHF51h06fwG7P7Po+CwrKRHIC2vmWBEuCoNnlqMUgPfSsbiACCvIA==","shasum":"1c16ba48295780004fb4e58659d083dee55e51a8","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta10.tgz","fileCount":35,"unpackedSize":142489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbqJzCRA9TVsSAnZWagAA5lwP+QAZsr3qa6MMiImM5i64\ngHkHSDa12QJKD8OEbEMlppbwvsWgpTMmKgpag1bszYEZXHlwDUevWzVMeFMS\nkOlXE+lIpfZWc7Imcs62nBQvmBVX+0vbsgt2ibVQc71frUGSxGPl4+eEz7JU\nxowciihEIyFmZpBFtyYfY9UG1PbOajoYL1EblB6SZxsPHP95XRJGQNGnYpWO\nppg7qEtT9lh30yq6nQUGgGAaAhMznpCAyEe7IbdHyBMwnmBb/CQGUpBb+BNU\nKPJDOM2ywFq+fLwfdmTLdF69d0g8wRG5c1LROcl7VnWnS//eKRCYprRL+bv1\n8dqX2Ykn6ypNcwBlqdTqgsCA4Q11vsu5vVpS3ngFSMyEkHB7xqSp/kclPple\nsKGY8hnoG7XF4j5oDt9Y5V1/xciF1tvCWv2bKOZ+O3Cvru7SZ4nDY/1q7b4s\nmu3X5p2RmGl1l2rY+fn8DLosdUEvnWvY/btIx7z441RtBT4ZF5JBQgixwXkA\nc/JotcevkhsFZyL9jdx+vRAnmNGhEl1VRQnDxvoM2rEivSpVcuj5gUjkRqQJ\nZrocTK3MHp4KMkRzotCTsj+vzCwYs/FYAqDbqOalNqK01FuUYJo2+IaQjLUb\nwikJ6kgHYzKvu5Vo/2Ug87LSa4M/ROSZzlzuuVpt8G7rgnNfXLRiH/91ggYb\nS7/u\r\n=SGow\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICfuKLbzL/gQPbzdab/KFej+k9fkVvkDZocTJAPZlsm+AiAc/mrC5MKydb24DNY5q6oeDk4YZA5wFpQN03a8zAamxA=="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta10_1550754418652_0.9913590318794101"},"_hasShrinkwrap":false},"1.0.0-beta11":{"name":"react-keyboard","version":"1.0.0-beta11","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.8.1","react-dom":"^16.8.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"readme":"# Introduction\n\nreact-keyboard is wrap of mousetrap.js in React, it offers keyboard shortcuts handling in React application.\n\n![react-keyboard](https://user-images.githubusercontent.com/486382/52902608-e9d3fa00-321b-11e9-8138-35ff1dcf6c3c.gif)\n\n## Getting started\n\n### Install\n\n```bash\nnpm install react-keyboard\n```\n\n### Usage Example <a id=\"usage-example\"></a>\n\n#### Defined keyMap\n\n```typescript\nconst keyMap = {\n  cmdK: {\n    combo: 'command+k',\n    eventType: 'keyup',\n  },\n  deleteNode: ['del', 'backspace'],\n  left: 'left',\n}\n```\n\nA KeyMap is an object which value is the key sequence. The key sequence can be:\n\n1. `string` which can be a single key  `left` or combination of keys `command+k`\n2. `array` which is an array of multiple key commands: `['del', 'backspace']`\n3. `object` only use an object if you need to listen to specific event type: `{combo: 'command+k', eventType: 'keyup'}`\n\n#### Use HotKeys Component\n\n```typescript\nimport { HotKeys, Handlers } from 'react-keyboard'\n\nexport class MyHotKeys extends React.Component {\n\n  showDocumentation = () => {\n    console.log('show doc')\n  }\n  deleteNode = () => {\n    console.log('deleted')\n  }\n  moveLeft = () => {\n    console.log('move left')\n  }\n  showChildDocumentation = () => {\n    console.log('show child doc')\n  }\n\n  handlersParent = {\n    cmdK: this.showDocumentation,\n    deleteNode: this.deleteNode,\n  }\n\n  handlersChild = {\n    cmdK: this.showChildDocumentation,\n    left: this.moveLeft,\n  }\n\n  render() {\n    return <HotKeys keyMap={keyMap} handlers={this.handlersParent}>\n      <span>this is my hotkeys</span>\n      <HotKeys handlers={this.handlersChild}>A child</HotKeys>\n    </HotKeys>\n  }\n}\n```\n\nNote: Child HotKeys components can inherit `keyMap` from their parents. You don't necessarily define `keyMap` for each child if parents already have the shortcuts you need.\n\n","readmeFilename":"README.md","gitHead":"4932040d313148db6101fb597d958ecb106d487f","_id":"react-keyboard@1.0.0-beta11","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-8a2q4CXXb1lsztm+CDU9QjX7Qv5gNb4/av30S1439nTLx33BviUMGwX+nyNkOvULwvcesR3AK0vDpqhpgFFQZw==","shasum":"793fb65f9c95d00b252daff9de1c97b767b49dbf","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0-beta11.tgz","fileCount":35,"unpackedSize":143169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcflLECRA9TVsSAnZWagAAsO4P/iZu9dLYngB1aVsOJgEm\nbIunX+WDJMCgdPZOdGLkLjnVILKZG7JJk38Ra2sOoQ1HDw6HfE3cg2kyNp5Z\nnUweIuP+4gYYd5W78fBrRYLNbKZcnVA7hOf0qkQGriMss62K49lWS7yVcQg5\npkBBQkL1J0JcCIdjbNn+E1L6dGuiWCaocw0vQRPJNo2dLJrVtVTnwvDV9GeU\nWrIX3ZTaW587Ydn0HMFMryYMSI/FcbhnAqPqKHtIy3X3ovnXAD4b73CD+Mjl\nRxC4UEuJwxSbVSyjN0Sol+tAB5osrS0eEirFB1pzibtsYpSWkPGoqqK31UXb\n/6c4fYrTjGqMZe0U1hp6M4oziaZj1B92q+FDEwzYJFlrK9ZVAh6y42LyRz5I\nVzbLmbQwDBqjZrXDqtcZOWL3Ao9RBRVmXG/TUMoyVUk5xhiiWxCzn+o3ZaVj\nAiZ/+dKAEzVIWKnzX9PZsPMR8WHBa7rmWMaU2HoBNXL1y/Fzn8mm0ZBWzSD+\nqw2ItvspXzbRHt/oCq585b/YpCg+7kFiTHT3vi34L3X8LDkb2aZRU0rnbtOS\nIxohBhZagVby/OlEtaD7S7lZ0oU7ggg1YhOeI6Q4vOYWTJIHUISO636RN4dV\n5xAK4yXhbNmshTJoirVAvp7XUX/wMW+bTa5fSjTaumNIT9ZiwNQT3ApFmldX\np7IA\r\n=CkaS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdvtwh7grb7tyucvaeuciNPUcrEhh9wUez7P41M9JlsAIhAKkEqZ2AoUVA7YXBOVr8MhfXsidR+xixLRBGARfwA+F3"}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0-beta11_1551782595492_0.9092456023383721"},"_hasShrinkwrap":false},"1.0.0":{"name":"react-keyboard","version":"1.0.0","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.8.1","react-dom":"^16.8.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"94801cf5322fb3452eac2fcc5d3a1d358f1bd84e","_id":"react-keyboard@1.0.0","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-UIuvpSC3m0hbKqIobEbFhs5XiRXo1m9npU2enjEA4vL/v4xdrfxo9c3PEgyEGwugBedj+Sc4OdeVlKilb1KM2g==","shasum":"11299738a92b12c1e8bac9961b3e3f513e27bc49","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.0.tgz","fileCount":35,"unpackedSize":143426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnL6JCRA9TVsSAnZWagAA4LEP/iPiUfwcTshHzDzMMR7Y\n4t77z/KixHYXhpSYiFBkGAjz2cEMKLPZ/Nhcnpc86XHz7S73amTJNMP5ubm5\npgdPysrPcbONvslHKIHYBRk6qwYp9i3CsN3kRu+zuX2CyKYMCeofO+0JCrDN\nvS09f1nRS0TYT4DQ0SLDgL/TKR1rMlKddN+9oAtGN3CGJQUt/mxqtaxda0UG\nzj/2jZZQT6lP/cYugiCRw7LGmtKfmyDlZyej8QiJCHnLK4XxHYVzdeSXvK0S\nqdqNj8jelrTaHCGTEiblAOwgshsEuwY0Y8jnoGUNAAVtAKcZOILcX9A2pvok\nQLLWz8EWr4zQIy14ACP9fTx9/C7Z45dKW67Jr/9RKPQZD+4Kopjax2GLb7sK\nFISn047u2uwYN4dk+W7QVYWO6MfQyH8DcDZ2/3TX8I7SIgVOk5hWCYZuns2J\np1KZR5PZuQit7L+/ze3B9UXFQxIBy/qu49U+7rGfUTZAWkcX7zJY98vtJQOB\npf2Wx6Ym8YVi9jhW97uEPn2PXrntYlGeOBil9JUXfD8DawGkfl/+IgDi8Vco\nuFoJDAdLvIVWzzuU81BCZqcEgECztTZ6wAIgMBYLavEbB0BNWEGLszzDh4Jq\nJJ6956PSfMDcslJWWhoY79Vkk5TENiHy6OOFvYuqtvNTwNJ80lCXQGAs68Ew\n9gEL\r\n=AHsZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPZMBsoq13THbse7uSo3140UYKLPi8BErqDxXkWzvsyQIgRJnEZ0bQFOJvxO6Bop+OuSedSk3otczH/Cz2GZiy8VU="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.0_1553776264393_0.35434030814316264"},"_hasShrinkwrap":false},"1.0.1":{"name":"react-keyboard","version":"1.0.1","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.8.1","react-dom":"^16.8.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"5d9d0472144e0e7d4de4bf220ba67c328fa2dd5d","_id":"react-keyboard@1.0.1","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-S37qRuuuemE8j4R/IHpgoDnYU6e7TDAla9Ugs2qNvLZqMtANCRjF/uEDW2quCxvdU4YvekvoIxZd2jbUzjc4fg==","shasum":"aec94a14780ae9c1b640f51fd21a24491c6f449c","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.1.tgz","fileCount":35,"unpackedSize":143739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8Pf2CRA9TVsSAnZWagAAW2QQAKBI5ibMdFgZuyvGfnRN\nCiiFk7AKT7FCTyS8QT8IUUw2W14FFVOkltUrz5R07C56AvGLK8r5m6zhIJtn\nHIu1MVVq/bNrYpmI/lGEXs8xJrKCid2WklQa8MEw7Rji6GezIq7Pf3Y8rRmV\nesWjkNMTSPfJGT2AcTHigW6Y1w8ALOTfsOmjl6Didxof0YecEDUwS86ufU/o\n6ljY0V+73nYZ7dVxJHnSlkHKvBdPp/ucd9zmaSyn8XvBlz9eVDpcbZV7M6t9\n7lIpJ7MS0hKi+Jh/tYAr8gbD1Bfk3mm2KpOETDBJDlC5kO+LU5uleghfzKa0\nP17QfoF6mA605PKMC4Jsjp2YtITbOIhUZhaEJpPIYjFE/JmcYQZOAtXCbZXV\n2McinqC4ruJEkKaVp7bRK/vfIEHuoike56cINSVB/3nBsdyrKyE+MYMYFXyH\nXkG5Xpdic2CQV0mastcmGUOr4hVoRdVjfbws8yFv7PnQb+156FI0qT1udAli\nR8l65DDLh+GC8prpF7fsKM9fDdSCg9XiwbMFhCE/TRkuS33C9Nu6rUpH9LM2\nmOiZN0YhiwAmiVCthzgfihH4+O4B/gmHRzgNzabXdJKpjfBIirNmn0kv65CL\nA8IZLcZQra77Z4KoOvl6/Mogk5UPQSVhW/rbuVbeeMqyRQlDXweYcxE3eavu\nmuwh\r\n=p9KO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkCWnDlf7ruJwsLa3wM86Jymxn+Og168xaZYa3AXXJWQIhAMb6/OKCp4oLG9oabq+dGrCQxCwezjhw+mUvS+x2SrH5"}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.1_1559295990232_0.2012217164382366"},"_hasShrinkwrap":false},"1.0.2":{"name":"react-keyboard","version":"1.0.2","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","babel-jest":"^23.4.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","react":"^16.8.1","react-dom":"^16.8.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"^2.9.2","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"5d9d0472144e0e7d4de4bf220ba67c328fa2dd5d","_id":"react-keyboard@1.0.2","_npmVersion":"6.1.0","_nodeVersion":"9.11.1","_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"dist":{"integrity":"sha512-1vj+XJ6ggy4dqQSIMLxd72DzZ1A5WWpV0g2bkIQS8qMu/g1ZEcnibHvPj2+0MX9Ge0LnxCRxmf4scBLg7H4hIg==","shasum":"1f3988b712e57897aa1dd8aa63cd7e0645f55e61","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.2.tgz","fileCount":35,"unpackedSize":143733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8Q1pCRA9TVsSAnZWagAAXHQQAIldesPSBoDqyU9onx3/\nSMbchniPxZX8rpMNLnOALHEOn4yVSEXyPfs3ZqbUx1So58uyIqeTRqGP7HNL\nB6BSylnuCjMTTqHoT8KTgDo40W1vN4muDVyGGBatzzUnWE8F7XlnybJnDRUR\nc4qrjuQJtF4l03kbsZYeQMMbq37d3OGxSTm+A9lLoWo+KZXl2Kr46PDIiWk3\nA9JXj9saz9iNbmMl1vFJLWtSYtcVeyCwYdhXe+Fzwqxvvo3bdD7KWHtnQN/I\nG1F5DDdhoAmZhDcJBhFFBGthGBbcqlLoN/6fl57Ileln/ewWoOENtJ+Ngc5V\nfztEc7wvYlYT10D8/PfgtWHXS9UnQFFBF5Kt3g499EKUlWeGQOeQ/y9OC7VX\nRNDbd2NUC5D8kG0VDI9d8jTeMuwBmihOpLv9a0s7E6lUyaAIjKQUv+P6KYkD\nXkSNjvgYb5aPhgg6DQIDzY0O/7+p6dT2HZqzq19KP9TCXS7sHrtFsVJ6h7c/\nZAVmLyRBYm6UyWHP7nOAi91EDDNKgauhKvt0mWZE5GMSGEIqYqtZWVgOeo2B\n4fMO9I7UkeDbsysB5uQsnTsei74hjYM7q4uiNoQRCIIeUdgzjAbS/XWPZh7I\n4gTgOlQ8dDm5ZYW2LuDmifdsbeiWwat+FrBpXWXSNNaaCMfD7enYlG1RQv6L\nnfwo\r\n=F8VO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpwxuZJKvR0LM9/wYSnmsphbilX/3EgRpW0UJq794n2AiEA86iqW4qDKqct+rG4XeWq8dSluMXCyWXI4u3DCaEnTbg="}]},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.2_1559301481299_0.28818308957453787"},"_hasShrinkwrap":false},"1.0.5":{"name":"react-keyboard","version":"1.0.5","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","release":"standard-version --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","prettier":"^1.19.1","react":"^16.8.1","react-dom":"^16.8.1","standard-version":"^9.1.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"3.7","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"prettier":{"trailingComma":"es5","tabWidth":2,"printWidth":100,"semi":false,"singleQuote":true,"useTabs":false,"bracketSpacing":false,"arrowParens":"avoid","parser":"typescript","endOfLine":"lf","jsxBracketSameLine":false,"proseWrap":"preserve"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"e5efa3cce13d2b8e1f9755abd95cf0567fe2a1ad","_id":"react-keyboard@1.0.5","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-Kb3m/QEIw7oBF8I/MymNwlFwq/c90UcKGbZTDQykRgHp4rTFEj7WM0QphPYvdvTlEY99tcbxuAr5bQ0vujV0kQ==","shasum":"9d9166e54f1e6d6c3805dcaba9b2c4218489a8f1","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.5.tgz","fileCount":24,"unpackedSize":35424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgR+ODCRA9TVsSAnZWagAA3qQQAJQOuswy1f3CrpB3UHdi\nqE8ArEQV01WIhyH0TSIPUH68Ir4SdsToMvrDQl4TxPT9JVOuempxQPwk2y1K\n9ShgkZ2DJQterowPbi/Bxtf4UNDtAaclYuwe/B0368gT1rSgTHIk5PshpMQn\nMRL3AlM3f+ewgfkiep7HIELzJCon5l8C5Qr5ZiamKAk/82Ufrk5Ty+Ejvrg3\nEetzxvM4fxeHTiVceDIay1SUMPutjqw9bhD1aajMw5iqE3bnN8M+qPQe9P+Y\n1ttJFYm6qnOr9s5pzpnSkEYXIGEfRiEn5W+Che4KgyCO8FVHnEi7u66TmOji\nwyr8Sg6yw1VlS0Cw6c3c3fZxeDFlu2V1+xQtaKu3DzIGs8QNFwJ4IS53aYvm\ngOt9786fisvEFpu/MUlBUy8jAF9OfILWc8x+nlfYJb4hHPDYhNmbvxIyUldc\n/yTj0U2RwnRUXoMyt7Ifwdj8guNqs+jrJcqrbDkQ4pre+BWv/YcIVvvXo9Pt\nyI4mv6CmtphA4eCnQ9/IV9t47rtUNqynyI2d0VScJtnvSeHIOp/khg7/X4AQ\nOFufbwMHAaoRyk1vxUm39bYOb54ZOxUzjxkRByyEe6JADsEo3AD/kSoiE4eL\nvVH+hLGR92YGV0p4C7LUkkMbkuuDWLlxH9QXGekh0bdojXhEzW6K23ln7c1h\nhVjy\r\n=0Cq7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYRfF2AWyR11QRTMbwe3pTDHlP6rImn1500k4gsKiJ2AiEA+Dy4e0Qbt5MXOBC8DtVwfcoC+eUriBS0lVRx41xWRp4="}]},"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.5_1615324034429_0.07387130955334698"},"_hasShrinkwrap":false},"1.0.6":{"name":"react-keyboard","version":"1.0.6","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","release":"standard-version --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","prettier":"^1.19.1","react":"^16.8.1","react-dom":"^16.8.1","standard-version":"^9.1.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"3.7","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"prettier":{"trailingComma":"es5","tabWidth":2,"printWidth":100,"semi":false,"singleQuote":true,"useTabs":false,"bracketSpacing":false,"arrowParens":"avoid","parser":"typescript","endOfLine":"lf","jsxBracketSameLine":false,"proseWrap":"preserve"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"7a8d9cf0ef02eb7c9494e7baf990d109442b5c88","_id":"react-keyboard@1.0.6","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-B8vS1bWqVdwx2BCtXAR9LfQskz6G4vFGjNIN9BOAU5+wrUZmA3Obg75l0lpBKU2MEH7o7p9ScNtrdd6UOeUwOA==","shasum":"0633956cd4579efaa7ed69edc121b0dfe7376954","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.6.tgz","fileCount":24,"unpackedSize":35448,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTIAuCRA9TVsSAnZWagAAaHIQAJZlqKLc55EhdzLkpzjo\n/K9RGqwJYyMPbQhcf6ZmBOV9HdLUexX8CiYQxQ2tDL9tXMVutmaAehXA7mg1\nM5SMpiuRT1Pm0VsXmuQsQOHscoj72D0oJ+thJMg63TvUPEvLGzkp0F7ve1uI\nWi2UvlUNMsJgayZC9lmLTZhz3jJLWRht6VjzUr2kYhHVf7gzdcgdVFDvb1sB\n0vGoBghM8kBPreYIaT6BDDgIAghGaF/YTLVlrKDi3bIBJnmYsuIRx5dsDs3d\nmynjii6ttcu7t10T2RWWUgS1fOTTY0sg0zlf3HUyIyRkyqgzB5FVA6uO+SLq\n+ICkp2URO9ZXkPTjhhZRcqndEomT/pY4EXZfI/GQ+FeWAM0gzcpKVXhO6jX9\njYqqUr0hmbkrVnwQgzqhswLxx8ui4eMGr+uXFELetanDWW+5OArIGDHBprrU\nNXRgK+L1pg2/dqLi0rMvkYP37dBvWX16JDnxwhSszU2tM5mPJSn/1Cbjenuy\nRoWX2HttZ1v+Z6bEX0/CYns9C4rnGyzO6WnYwnwXXYFtG/W0Jl+TJQ5MYr3Y\nmUJ0Viypw4Nuzb3cNib+5Q8HyP0dMh2nOTAZoV/9M2VdBJJvC1YVzYSdxhR5\nnZZ1wk+3G8xFX6ME1B9MBxLSHipjnj3wCvwYcrZX5M26+oBSzvlSiu6EWdz5\nzA1c\r\n=1IBX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHepRo+5RUcavOJVLBZ15ub/T51p0wmxeM6YIMF54lxwIgcI9pIqz9nWRffWk/BVMKnWm6K35cTNtbwJinsDAxim8="}]},"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.6_1615626286099_0.1460482478420322"},"_hasShrinkwrap":false},"1.0.7":{"name":"react-keyboard","version":"1.0.7","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","release":"standard-version --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","prettier":"^1.19.1","react":"^16.8.1","react-dom":"^16.8.1","standard-version":"^9.1.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"3.7","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"prettier":{"trailingComma":"es5","tabWidth":2,"printWidth":100,"semi":false,"singleQuote":true,"useTabs":false,"bracketSpacing":false,"arrowParens":"avoid","parser":"typescript","endOfLine":"lf","jsxBracketSameLine":false,"proseWrap":"preserve"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"ee93d3a2f344f0f84dc48415454be6ecfb6723e2","_id":"react-keyboard@1.0.7","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-KIblBnpDJKmXx30xmBRfqpuwqAgFWttW2sT1cB1jtyqDcdXiuZRGI17y0/fCNE8kiBDYSDaaM9bHvI8RxN3IGA==","shasum":"8cae99bda66b5a30d767f89ae042bc9e2c5ce554","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.7.tgz","fileCount":24,"unpackedSize":35472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYvZaCRA9TVsSAnZWagAAsdEP/2954t+TvyzjtMjSwqZi\nxFN303CSavQ9ioPjWZylMU1VRN+HDrEzL34qlB9c70n561QWi8eHehB8Ah99\nRIESrDKdvW70EBYqcycYtvvIL1mra9/mnW/VT1L1DuLFypkOuf+1/Tl0S2Tg\nMEZacW0nLwBepJuRAQvGQnSuDwojJHiFAccpn7eV5+2aHNX5tZDoEaBYxLwx\nig70cudBXoeYGcudhKyMEYwzH8h1Nr+1qus9xr8fNmqDPMcByaU1Pfmheg5y\n0UAjpzgpO1ZK1p45J2Ntu9kians75CiQdopUZEUd2CLf+qxM6D/76W2AG9Hh\nIByswwKqJ8+u6GQ+/LV9m8HUKfLt1fsrIIjWCc7CT+mOcipW9rTSSF9m/pgS\nv2JM81IHww8hkEZYAFMPNKpcugL8PGtkKjP2Jf7CZloqTxO8L3BZzMTHnjCY\n869JceXWkYS7dUZuNXdo6kRuI9TLAaR6TrlV5M3fxD5IotmHBUmB8wtvIQ+P\nYgrpsrlq7+l3Nq4M5u1ykfPPd9/3/6EVdPRMQfOeRROiEbIYbg8/bNNYJtvO\nJt9HSCwD6XtnWkxMLU2zURTwbvbf5hXByQYjVcjoQSsg8O/8a1QfcWxhIJSK\nRWzc8+4FqFD+6H3XERK2pgtxQh/8x4aQPOOztuuSbgqLIZJ7iNcxYP51nQBL\nVNbT\r\n=MhW4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCygFLdyrYmJxr2LMVs3TFW/YeEmXqt/m1iT+cGis50bQIgJrZaczSflPW2E1/tzd34uB4H2ZDh8mFOn2x1k4UNeA8="}]},"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.7_1617098329624_0.10193699207593498"},"_hasShrinkwrap":false},"1.0.8":{"name":"react-keyboard","version":"1.0.8","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","release":"standard-version --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","prettier":"^1.19.1","react":"^16.8.1","react-dom":"^16.8.1","standard-version":"^9.1.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"3.7","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"prettier":{"trailingComma":"es5","tabWidth":2,"printWidth":100,"semi":false,"singleQuote":true,"useTabs":false,"bracketSpacing":false,"arrowParens":"avoid","parser":"typescript","endOfLine":"lf","jsxBracketSameLine":false,"proseWrap":"preserve"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"5003dabf5303251e263184de59600ac83a3e831a","_id":"react-keyboard@1.0.8","_nodeVersion":"12.22.9","_npmVersion":"6.14.15","dist":{"integrity":"sha512-i+v6IGCZQ9OtIqVZiSeS4pbU5kd+VjqbTSU0u/9spQrUPLBJ4DZrHkVCbzMBqApH4UxgzXLrUrU9sVCD7Lvfjw==","shasum":"d794f9813edb34d2319a74cc7f12c6f54ea484bd","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.8.tgz","fileCount":24,"unpackedSize":36246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+lkOCRA9TVsSAnZWagAAnR8QAJsnco0X5OSNgpTeGoTc\niAYnmMDdieWj+ZBbAzjaclNTvH2mrg21pQMnyeOs6McHM/OUBhHJnNz3xW0Y\nWRX8iRVeTfh+bff917Ss2c6PWb2eW2dwYwqRpz02bVA+vPvvv/9AtDd6/Jmv\nznPJ3A6jJ+w89UWy77ojkzCHeUfVip6hxSmTlIdywX3oVJW2uVC/etsnfbuK\nqcPDqzNlD2rrQOzRVtgP7ol69r9KZU4D2Htra8sDtOksbKqEcTLygYJyVPWn\n0XnscYFJCyhioMMqO/gHnONTYMMZdVDqhn47aIC9r7m03D5E0cD7f/HR/Cs2\n0fRuT3KLuFzUcP/roztXtEvtpnswbEEL8dYB4+sA3ezINrOv54kwQmXcQ0Oy\n4H/bcUDlkM3oF3KkSPy6JUWa/nMNZ8fA4q9upm13nhPUWp5qYRee3AqYnao1\nvgmVu7kW4KAWEknluq/UTzu0oQwctpjAgD93ihIpc9ASVLGsCbxsGomH6WMK\ncS1UHHVUFjOdXSwhkfekneY2mmx9fNNRwtDq3rw5NN/hko0/UeyBZtynY3MI\nr+HYpN9/zmuAG2dNpSrgd319PfB9340rMTMSL7WUDkbJKNMLnkzJ+yjk2HSj\nlbsm4xIzRlopI6Ln2YDTD6duVteE3/UGfxkWk81Vd3I6VKgeS8yPqSnRULtJ\nZevy\r\n=tWkI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDqFI7viZHiFFyAQpOgs5CipoPrhT/4GyVaRecZ2BOubAiEAghnJTP9t99v9n3+aVfUcUIUEfRALJ1F6v5hEF1hA5Oc="}]},"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.8_1643796750387_0.5623310247374309"},"_hasShrinkwrap":false},"1.0.9":{"name":"react-keyboard","version":"1.0.9","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","release":"standard-version --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","prettier":"^1.19.1","react":"^16.8.1","react-dom":"^16.8.1","standard-version":"^9.1.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"3.7","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"prettier":{"trailingComma":"es5","tabWidth":2,"printWidth":100,"semi":false,"singleQuote":true,"useTabs":false,"bracketSpacing":false,"arrowParens":"avoid","parser":"typescript","endOfLine":"lf","jsxBracketSameLine":false,"proseWrap":"preserve"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"8369348f6aa278e10aae66a074f6bcb9ab7dbf89","_id":"react-keyboard@1.0.9","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-5GLQYwunqnnzvuj+KIKLYh6OjkDVmlGbMMMUreaGlJ7lVV+TTIJFJWxo/MnmMeI4Calw4uncfCgR91D4p9y/2w==","shasum":"9d5b452e9e60c9fdb1b564d8914307f9af872d26","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.9.tgz","fileCount":24,"unpackedSize":35707,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBbqW7V3H38pIumM2PT3Q4wkZaXuK2fZK8OaUxF9G4XQIhALQ+pYNEfsqXY1B+zGugaa1ilYdG6WkePpHrqrqy2dkp"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuvvmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmry+w/8DWQ3Rh1XiZ7WXl6fdbWlyJNGnYgbMoWYAEMoOmDshrFDg6Sj\r\nWVw9VKADB7en3wEc+M7Zj0oHWMhEZvYWcDMZ9trVGxmycnhhN9JiqVgPJLxt\r\nYQv5WthdPe+BpIx6upr1H6PrFqJY579Nry1AzwQZYAFmudIDPqH/dUxK3lZc\r\n5npS0Lq0MJkBdqD2nMtTzDt5FX1v/Xme/RPF3ixGIF+uaoI83H+Dndh8RdNN\r\nl7IDuJrxEpR89JWutAyKGq9F6agrF4l7IIWoAi7VuQJGc+VuCcrnbLkdLC/U\r\nQkJia7S7xOnBZOlJHwhukia1bh6ak9w0mQpIi+DTHdCqu68k2HJwSBuMgXPo\r\n7md9DzGZm06DxlJwrrEYnwFrREf+r+nBI7WWxyVi645sLuIUk/n/+43BLVHK\r\nWlz4WQPuu2v/ws39gXTKxtXj5OB21pAazhTUwmq3qcQcZjwAetVs1xIQbQFp\r\nxayq4UuWJ61P6YbO751lqXG4kUNyskUZ4kE8drOc1I/vgRIaRD7fpSHMbMfU\r\nJoaQlxY3BWHXOKVLn3cZ3Trky4ldiGfrNkayWg39pUB80Vv/qtPb7w+LUzb9\r\nOguwyWJw+zDrPJPbW2wj/noGpfKIgodcqFgE2Es5YVu1bxD62RxrEosNo8/y\r\nZavVmG8wqNcHMgzmIQhsp+AAxzn6L38Ypgc=\r\n=uwHp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.9_1656421350251_0.45638213773752323"},"_hasShrinkwrap":false},"1.0.10":{"name":"react-keyboard","version":"1.0.10","description":"A declarative library for handling hotkeys and focus within a React application","main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"tsc --outDir lib --declaration","prepublish":"npm run build","release":"standard-version --releaseCommitMessageFormat 'chore(release): {{currentTag}} [skip ci]'","test":"npm run test-only","test-only":"jest --coverage","test:watch":"jest --watch","start":"node server.js"},"devDependencies":{"@types/enzyme":"^3.1.10","@types/jest":"^22.2.3","@types/lodash.isequal":"^4.5.3","@types/mousetrap":"^1.6.0","@types/prop-types":"^15.5.5","@types/react":"^16.8.2","@types/react-dom":"^16.8.0","ajv":"^6.6.2","enzyme":"^3.5.0","enzyme-adapter-react-16":"^1.3.1","express":"^4.16.3","html-webpack-plugin":"^3.2.0","jest":"^23.5.0","jest-enzyme":"^7.0.1","prettier":"^1.19.1","react":"^16.8.1","react-dom":"^16.8.1","standard-version":"^9.1.1","ts-jest":"^23.1.4","ts-loader":"^4.2.0","typescript":"3.7","webpack":"^4.17.1","webpack-cli":"^3.1.0","webpack-dev-middleware":"^3.1.2"},"dependencies":{"lodash.isequal":"^4.5.0","mousetrap":"^1.6.2"},"prettier":{"trailingComma":"es5","tabWidth":2,"printWidth":100,"semi":false,"singleQuote":true,"useTabs":false,"bracketSpacing":false,"arrowParens":"avoid","parser":"typescript","endOfLine":"lf","jsxBracketSameLine":false,"proseWrap":"preserve"},"peerDependencies":{"react":">= 0.14.0","react-dom":">= 0.14.0"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"license":"MIT","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"homepage":"https://github.com/ruanyl/react-keyboard","bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"gitHead":"033d77a78120104161c563590d6b6df061c4f80f","_id":"react-keyboard@1.0.10","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-uWd6Yd7AYxmu2rULxYdDhUAQqEktWJTNRRZ/rPUe1FekuoMHucwlvKjnQ3eo7BflL/S5ReR7wLKsHFFe4tHiKQ==","shasum":"f8ee1c86e97e610c95f04afb877179ae9f34e45a","tarball":"https://registry.npmjs.org/react-keyboard/-/react-keyboard-1.0.10.tgz","fileCount":24,"unpackedSize":35733,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC9+HjzyKj0wS2bE8wdw+XnYyY/Ty+j4WS//xZup6CJmAiEAsyZcnEeF4F7JCIAdqwwITUFXwbtF0HYjySCZCKHv3wc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkKnMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoIpQ/+IKNap5ogsuKcDAWbnrbmvbH3AkPzrqkKxcZkt79G8eQyRYIW\r\nSuEgWFCMZ4axfLhSsPRjLtTCStQjsAmY4DLwP+1Sc1i+jUdIHSecHxzmal96\r\nL+9ZoTQxH8Wv8QdBEovWX7iF4IjoD9bf+HfwxSEZryfHncX3IBR9/teENJfp\r\nhTJiBeDGnHLxHL5J5eKWQEQaevI2vSe3inBKldgaiBtBDAf5Y+9BPGqWddFc\r\nwzFakrEFPtjpIJZb3283EBqY2USQDCrOXusfGrEcrzHIoXZQj/isVmUIdtFo\r\nXy6c+tOv4fW57EzSCD1OPy7NcJ0x+Pm+nX2UN6PrCCy0yprC0xkT0lHJru4Z\r\njVMgPbbUgQKmEQ88OWNZXHq/WFVG/ngrXO7VhAxstq0Vfy0IzFfFV+dyPnAh\r\n6cbm67yYgaCE5qApu/d2vL9E576LO1jt94dh9oJuHEL93/20nn0x3gz/OEan\r\n2HZQ9FegCGNy2qH8CX7S4sUYcVY5KSTxFL0g5ZhoqIe4782CMVLLoOYBYgYj\r\nW8W24sTj62EPhZxCJ1I4WLgk/2uovmpMsH3yljZ23xC6WZI9xQFNFglY3v54\r\n9L3FXzuD6uUqT+Vii/vPqC9CuodptSXref6nI0Begg9vBJF2SDOpYYHy6+s3\r\notxqtNaL6Lv4mNb6rzOwPyNd4IfQ4yB94q4=\r\n=eq0T\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ruanyu1","email":"ruanyu1@gmail.com"},"directories":{},"maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-keyboard_1.0.10_1670425036703_0.6981831962324745"},"_hasShrinkwrap":false}},"readme":"# Introduction\n\nreact-keyboard is wrap of mousetrap.js in React, it offers keyboard shortcuts handling in React application.\n\n![react-keyboard](https://user-images.githubusercontent.com/486382/52902608-e9d3fa00-321b-11e9-8138-35ff1dcf6c3c.gif)\n\n## Getting started\n\n### Install\n\n```bash\nnpm install react-keyboard\n```\n\n### Usage Example <a id=\"usage-example\"></a>\n\n#### Defined keyMap\n\n```typescript\nconst keyMap = {\n  cmdK: {\n    combo: 'command+k',\n    eventType: 'keyup',\n  },\n  deleteNode: ['del', 'backspace'],\n  left: 'left',\n}\n```\n\nA KeyMap is an object which value is the key sequence. The key sequence can be:\n\n1. `string` which can be a single key  `left` or combination of keys `command+k`\n2. `array` which is an array of multiple key commands: `['del', 'backspace']`\n3. `object` only use an object if you need to listen to specific event type: `{combo: 'command+k', eventType: 'keyup'}`\n\n#### Use HotKeys Component\n\n```typescript\nimport { HotKeys, Handlers } from 'react-keyboard'\n\nexport class MyHotKeys extends React.Component {\n\n  showDocumentation = () => {\n    console.log('show doc')\n  }\n  deleteNode = () => {\n    console.log('deleted')\n  }\n  moveLeft = () => {\n    console.log('move left')\n  }\n  showChildDocumentation = () => {\n    console.log('show child doc')\n  }\n\n  handlersParent = {\n    cmdK: this.showDocumentation,\n    deleteNode: this.deleteNode,\n  }\n\n  handlersChild = {\n    cmdK: this.showChildDocumentation,\n    left: this.moveLeft,\n  }\n\n  render() {\n    return <HotKeys keyMap={keyMap} handlers={this.handlersParent}>\n      <span>this is my hotkeys</span>\n      <HotKeys handlers={this.handlersChild}>A child</HotKeys>\n    </HotKeys>\n  }\n}\n```\n\nNote: Child HotKeys components can inherit `keyMap` from their parents. You don't necessarily define `keyMap` for each child if parents already have the shortcuts you need.\n\n","maintainers":[{"name":"ruanyu1","email":"ruanyu1@gmail.com"}],"time":{"modified":"2022-12-07T14:57:17.033Z","created":"2017-01-20T11:57:10.056Z","0.1.0":"2017-01-20T11:57:10.056Z","0.2.0":"2017-01-23T14:04:55.994Z","0.2.1":"2017-06-22T09:02:34.358Z","0.3.0":"2017-09-09T14:08:53.107Z","0.3.1":"2017-09-09T14:33:24.953Z","0.3.2":"2017-09-09T19:18:31.978Z","0.4.0":"2018-01-19T07:55:41.199Z","0.5.0":"2018-04-22T21:14:50.252Z","0.5.1":"2018-04-22T21:25:00.665Z","1.0.0-beta1":"2018-09-03T14:26:17.148Z","1.0.0-beta2":"2018-10-05T12:48:16.345Z","1.0.0-beta3":"2018-10-05T13:13:40.524Z","1.0.0-beta4":"2018-10-05T13:57:41.702Z","1.0.0-beta5":"2019-02-14T21:43:53.285Z","1.0.0-beta7":"2019-02-18T07:18:47.301Z","1.0.0-beta8":"2019-02-18T14:38:02.355Z","1.0.0-beta9":"2019-02-19T15:20:24.264Z","1.0.0-beta10":"2019-02-21T13:06:58.802Z","1.0.0-beta11":"2019-03-05T10:43:15.599Z","1.0.0":"2019-03-28T12:31:04.648Z","1.0.1":"2019-05-31T09:46:30.328Z","1.0.2":"2019-05-31T11:18:01.423Z","1.0.5":"2021-03-09T21:07:14.716Z","1.0.6":"2021-03-13T09:04:46.272Z","1.0.7":"2021-03-30T09:58:49.786Z","1.0.8":"2022-02-02T10:12:30.518Z","1.0.9":"2022-06-28T13:02:30.423Z","1.0.10":"2022-12-07T14:57:16.909Z"},"homepage":"https://github.com/ruanyl/react-keyboard","keywords":["react-component","hotkeys","focus","react"],"repository":{"type":"git","url":"git+https://github.com/ruanyl/react-keyboard.git"},"author":{"name":"Yulong Ruan","email":"ruanyu1@gmail.com"},"bugs":{"url":"https://github.com/ruanyl/react-keyboard/issues"},"license":"MIT","readmeFilename":"README.md"}