diff --git a/index.html b/index.html
index ba69cdc..626feae 100644
--- a/index.html
+++ b/index.html
@@ -1,2 +1,2 @@
-
hotkeys.js - A robust Javascript library for capturing keyboard input.
+hotkeys.js - A robust Javascript library for capturing keyboard input.
\ No newline at end of file
diff --git a/website.708f427f.js b/website.0ce40dcb.js
similarity index 99%
rename from website.708f427f.js
rename to website.0ce40dcb.js
index 807f77b..095917b 100644
--- a/website.708f427f.js
+++ b/website.0ce40dcb.js
@@ -644,7 +644,7 @@ module.exports={shields:"_shields_4260b"};
},{"react":"n8MK","./GithubShields.less":"nZil"}],"rzuK":[function(require,module,exports) {
module.exports={version:"_version_a1cf1",keyCodeInfo:"_keyCodeInfo_a1cf1",header:"_header_a1cf1",title:"_title_a1cf1",lang:"_lang_a1cf1",info:"_info_a1cf1",github:"_github_a1cf1"};
},{}],"OviO":[function(require,module,exports) {
-module.exports = "# Hotkeys\n\n\n\n[![](https://img.shields.io/github/issues/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/issues) [![](https://img.shields.io/github/forks/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/network) [![](https://img.shields.io/github/stars/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/stargazers) [![](https://img.shields.io/github/release/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/releases) ![](http://jaywcjlove.github.io/sb/status/no-dependencies.svg) [![Build Status](https://www.travis-ci.org/jaywcjlove/hotkeys.svg?branch=master)](https://www.travis-ci.org/jaywcjlove/hotkeys) [![Coverage Status](https://coveralls.io/repos/github/jaywcjlove/hotkeys/badge.svg?branch=master)](https://coveralls.io/github/jaywcjlove/hotkeys?branch=master) [![jaywcjlove/hotkeys](https://jaywcjlove.github.io/sb/lang/chinese.svg)](./README-zh.md) [![jaywcjlove/hotkeys](https://jaywcjlove.github.io/sb/ico/gitee.svg)](https://gitee.com/jaywcjlove/hotkeys)\n\nHotKeys.js is an input capture library with some very special features, it is easy to pick up and use, has a reasonable footprint (~3kb) (gzipped: 1.73kb), and has no dependencies. It should not interfere with any JavaScript libraries or frameworks. Official document [demo preview](http://jaywcjlove.github.io/hotkeys). [More examples](https://github.com/jaywcjlove/hotkeys/issues?q=label%3ADemo+).\n\n```shell\n╭┈┈╮ ╭┈┈╮ ╭┈┈╮\n┆ ├┈┈..┈┈┈┈┈.┆ └┈╮┆ ├┈┈..┈┈┈┈┈..┈┈.┈┈..┈┈┈┈┈.\n┆ ┆┆ □ ┆┆ ┈┤┆ < ┆ -__┘┆ ┆ ┆┆__ ┈┈┤\n╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈┈╯╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈ ┆╰┈┈┈┈┈╯\n ╰┈┈┈┈┈╯\n```\n\n## Usage\n\nYou will need `Node.js` installed on your system.\n\n```shell\n$ npm install hotkeys-js --save\n```\n\n```js\nimport hotkeys from 'hotkeys-js';\n\nhotkeys('f5', function(event, handler){\n // Prevent the default refresh event under WINDOWS system\n event.preventDefault() \n alert('you pressed F5!') \n});\n```\n\nOr manually download and link **hotkeys.js** in your HTML, It can also be downloaded via [UNPKG](https://unpkg.com/hotkeys-js/dist/):\n\nCDN: [UNPKG](https://unpkg.com/hotkeys-js/dist/) | [jsDelivr](https://cdn.jsdelivr.net/npm/hotkeys-js@3.7.3/) | [Githack](https://raw.githack.com/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [Statically](https://cdn.statically.io/gh/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [bundle.run](https://bundle.run/hotkeys-js@3.7.3)\n\n```html\n\n\n```\n\n### Used in React\n\n[react-hotkeys](https://github.com/jaywcjlove/react-hotkeys) is the React component that listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts.\n\n```shell\n$ npm install react-hot-keys --save\n```\n\nDetailed use method please see its documentation [react-hotkeys](https://github.com/jaywcjlove/react-hotkeys).\n\n[JohannesKlauss/react-hotkeys-hook](https://github.com/JohannesKlauss/react-hotkeys-hook) - React hook for using keyboard shortcuts in components. Make sure that you have at least version 16.8 of react and react-dom installed, or otherwise hooks won't work for you.\n\n## Browser Support\n\nHotkeys.js has been tested and should work in.\n\n```shell\nInternet Explorer 6+\nSafari\nFirefox\nChrome\n```\n\n## Supported Keys\n\nHotKeys understands the following modifiers: `⇧`, `shift`, `option`, `⌥`, `alt`, `ctrl`, `control`, `command`, and `⌘`.\n\nThe following special keys can be used for shortcuts: backspace, tab, clear, enter, return, esc, escape, space, up, down, left, right, home, end, pageup, pagedown, del, delete and f1 through f19.\n\n`⌘` Command() \n`⌃` Control \n`⌥` Option(alt) \n`⇧` Shift \n`⇪` Caps Lock(Capital) \n~~`fn` Does not support fn~~ \n`↩︎` return/Enter space \n\n## Defining Shortcuts\n\nOne global method is exposed, key which defines shortcuts when called directly.\n\n```\nhotkeys([keys:], [option:[string|object|function]], [callback:])\n```\n\n\n```js\nhotkeys('f5', function(event, handler) {\n // Prevent the default refresh event under WINDOWS system\n event.preventDefault();\n alert('you pressed F5!');\n});\n\n// Returning false stops the event and prevents default browser events\n// Mac OS system defines `command + r` as a refresh shortcut\nhotkeys('ctrl+r, command+r', function() {\n alert('stopped reload!');\n return false;\n});\n\n// Single key\nhotkeys('a', function(event,handler){\n //event.srcElement: input \n //event.target: input\n if(event.target === \"input\"){\n alert('you pressed a!')\n }\n alert('you pressed a!') \n});\n\n// Key Combination\nhotkeys('ctrl+a,ctrl+b,r,f', function (event, handler){\n switch (handler.key) {\n case 'ctrl+a': alert('you pressed ctrl+a!');\n break;\n case 'ctrl+b': alert('you pressed ctrl+b!');\n break;\n case 'r': alert('you pressed r!');\n break;\n case 'f': alert('you pressed f!');\n break;\n default: alert(event);\n }\n});\n\nhotkeys('ctrl+a+s', function() {\n alert('you pressed ctrl+a+s!');\n});\n\n// Using a scope\nhotkeys('*','wcj', function(event){\n console.log('do something', event);\n});\n```\n\n#### option \n\n- `scope`\n- `element`\n- `keyup`\n- `keydown`\n- `splitKey` (default is `+`)\n\n```js\nhotkeys('o, enter', {\n scope: 'wcj',\n element: document.getElementById('wrapper'),\n}, function(){ \n console.log('do something else');\n});\n\nhotkeys('ctrl-+', { splitKey: '-' }, function(e) {\n console.log('you pressed ctrl and +');\n});\n\nhotkeys('+', { splitKey: '-' }, function(e){\n console.log('you pressed +');\n})\n```\n\n## API REFERENCE\n\nAsterisk \"*\"\n\nModifier key judgments\n\n```js\nhotkeys('*', function() {\n if (hotkeys.shift) {\n console.log('shift is pressed!');\n }\n\n if (hotkeys.ctrl) {\n console.log('ctrl is pressed!');\n }\n\n if (hotkeys.alt) {\n console.log('alt is pressed!');\n }\n\n if (hotkeys.option) {\n console.log('option is pressed!');\n }\n\n if (hotkeys.control) {\n console.log('control is pressed!');\n }\n\n if (hotkeys.cmd) {\n console.log('cmd is pressed!');\n }\n\n if (hotkeys.command) {\n console.log('command is pressed!');\n }\n});\n```\n\n### setScope\n\nUse the `hotkeys.setScope` method to set scope. There can only be one active scope besides 'all'. By default 'all' is always active.\n\n```js\n// Define shortcuts with a scope\nhotkeys('ctrl+o, ctrl+alt+enter', 'issues', function(){\n console.log('do something');\n});\nhotkeys('o, enter', 'files', function(){ \n console.log('do something else');\n});\n\n// Set the scope (only 'all' and 'issues' shortcuts will be honored)\nhotkeys.setScope('issues'); // default scope is 'all'\n```\n\n### getScope\n\nUse the `hotkeys.getScope` method to get scope.\n\n```js\nhotkeys.getScope();\n```\n\n### deleteScope\n\nUse the `hotkeys.deleteScope` method to delete a scope. This will also remove all associated hotkeys with it.\n\n```js\nhotkeys.deleteScope('issues');\n```\n\n### unbind\n\nSimilar to defining shortcuts, they can be unbound using `hotkeys.unbind`.\n\n```js\n// unbind 'a' handler\nhotkeys.unbind('a');\n\n// Unbind a hotkeys only for a single scope\n// If no scope is specified it defaults to the current scope (hotkeys.getScope())\nhotkeys.unbind('o, enter', 'issues');\nhotkeys.unbind('o, enter', 'files');\n```\n\nUnbind events through functions.\n\n```js\nfunction example() {\n hotkeys('a', example);\n hotkeys.unbind('a', example);\n\n hotkeys('a', 'issues', example);\n hotkeys.unbind('a', 'issues', example);\n}\n```\n\n### isPressed\n\nFor example, `hotkeys.isPressed(77)` is true if the `M` key is currently pressed.\n\n```js\nhotkeys('a', function() {\n console.log(hotkeys.isPressed('a')); //=> true\n console.log(hotkeys.isPressed('A')); //=> true\n console.log(hotkeys.isPressed(65)); //=> true\n});\n```\n\n## keyup\n\n**key down** and **key up** both perform callback events.\n\n```js\nhotkeys('ctrl+a,alt+a+s', {keyup: true}, function(event, handler) {\n if (event.type === 'keydown') {\n console.log('keydown:', event.type, handler, handler.key);\n }\n\n if (event.type === 'keyup') {\n console.log('keyup:', event.type, handler, handler.key);\n }\n});\n```\n\n### getPressedKeyCodes\n\nReturns an array of key codes currently pressed.\n\n```js\nhotkeys('command+ctrl+shift+a,f', function(){\n console.log(hotkeys.getPressedKeyCodes()); //=> [17, 65] or [70]\n})\n```\n\n### filter\n\nBy default hotkeys are not enabled for `INPUT` `SELECT` `TEXTAREA` elements. `Hotkeys.filter` to return to the `true` shortcut keys set to play a role, `false` shortcut keys set up failure.\n\n```js\nhotkeys.filter = function(event){\n return true;\n}\n//How to add the filter to edit labels. \n//\"contentEditable\" Older browsers that do not support drops\nhotkeys.filter = function(event) {\n var tagName = (event.target || event.srcElement).tagName;\n return !(tagName.isContentEditable || tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');\n}\n\nhotkeys.filter = function(event){\n var tagName = (event.target || event.srcElement).tagName;\n hotkeys.setScope(/^(INPUT|TEXTAREA|SELECT)$/.test(tagName) ? 'input' : 'other');\n return true;\n}\n```\n\n### noConflict\n\nRelinquish HotKeys’s control of the `hotkeys` variable.\n\n```js\nvar k = hotkeys.noConflict();\nk('a', function() {\n console.log(\"do something\")\n});\n\nhotkeys()\n// -->Uncaught TypeError: hotkeys is not a function(anonymous function) \n// @ VM2170:2InjectedScript._evaluateOn \n// @ VM2165:883InjectedScript._evaluateAndWrap \n// @ VM2165:816InjectedScript.evaluate @ VM2165:682\n```\n \n## Development\n\nTo develop, Install dependencies, Get the code:\n\n```shell\n$ git https://github.com/jaywcjlove/hotkeys.git\n$ cd hotkeys # Into the directory\n$ npm install # or yarn install\n```\n\nTo develop, run the self-reloading build:\n\n```shell\n$ npm run watch\n```\n\nRun Document Website Environment.\n\n```shell\n$ npm run doc:dev\n```\n\nTo contribute, please fork Hotkeys.js, add your patch and tests for it (in the `test/` folder) and submit a pull request.\n\n```shell\n$ npm run test\n$ npm run test:watch # Development model\n```\n\n## License\n\n[MIT © Kenny Wong](./LICENSE)\n"
+module.exports = "# Hotkeys\n\n\n\n[![](https://img.shields.io/github/issues/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/issues) [![](https://img.shields.io/github/forks/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/network) [![](https://img.shields.io/github/stars/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/stargazers) [![](https://img.shields.io/github/release/jaywcjlove/hotkeys.svg)](https://github.com/jaywcjlove/hotkeys/releases) ![](http://jaywcjlove.github.io/sb/status/no-dependencies.svg) [![Build Status](https://www.travis-ci.org/jaywcjlove/hotkeys.svg?branch=master)](https://www.travis-ci.org/jaywcjlove/hotkeys) [![Coverage Status](https://coveralls.io/repos/github/jaywcjlove/hotkeys/badge.svg?branch=master)](https://coveralls.io/github/jaywcjlove/hotkeys?branch=master) [![jaywcjlove/hotkeys](https://jaywcjlove.github.io/sb/lang/chinese.svg)](./README-zh.md) [![jaywcjlove/hotkeys](https://jaywcjlove.github.io/sb/ico/gitee.svg)](https://gitee.com/jaywcjlove/hotkeys)\n\nHotKeys.js is an input capture library with some very special features, it is easy to pick up and use, has a reasonable footprint (~3kb) (gzipped: 1.73kb), and has no dependencies. It should not interfere with any JavaScript libraries or frameworks. Official document [demo preview](http://jaywcjlove.github.io/hotkeys). [More examples](https://github.com/jaywcjlove/hotkeys/issues?q=label%3ADemo+).\n\n```shell\n╭┈┈╮ ╭┈┈╮ ╭┈┈╮\n┆ ├┈┈..┈┈┈┈┈.┆ └┈╮┆ ├┈┈..┈┈┈┈┈..┈┈.┈┈..┈┈┈┈┈.\n┆ ┆┆ □ ┆┆ ┈┤┆ < ┆ -__┘┆ ┆ ┆┆__ ┈┈┤\n╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈┈╯╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈ ┆╰┈┈┈┈┈╯\n ╰┈┈┈┈┈╯\n```\n\n## Usage\n\nYou will need `Node.js` installed on your system.\n\n```shell\n$ npm install hotkeys-js --save\n```\n\n```js\nimport hotkeys from 'hotkeys-js';\n\nhotkeys('f5', function(event, handler){\n // Prevent the default refresh event under WINDOWS system\n event.preventDefault() \n alert('you pressed F5!') \n});\n```\n\nOr manually download and link **hotkeys.js** in your HTML, It can also be downloaded via [UNPKG](https://unpkg.com/hotkeys-js/dist/):\n\nCDN: [UNPKG](https://unpkg.com/hotkeys-js/dist/) | [jsDelivr](https://cdn.jsdelivr.net/npm/hotkeys-js@3.7.3/) | [Githack](https://raw.githack.com/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [Statically](https://cdn.statically.io/gh/jaywcjlove/hotkeys/master/dist/hotkeys.min.js) | [bundle.run](https://bundle.run/hotkeys-js@3.7.3)\n\n```html\n\n\n```\n\n### Used in React\n\n[react-hotkeys](https://github.com/jaywcjlove/react-hotkeys) is the React component that listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts. Detailed use method please see its documentation [react-hotkeys](https://github.com/jaywcjlove/react-hotkeys).\n\n[react-hotkeys-hook](https://github.com/JohannesKlauss/react-hotkeys-hook) - React hook for using keyboard shortcuts in components. Make sure that you have at least version 16.8 of react and react-dom installed, or otherwise hooks won't work for you.\n\n## Browser Support\n\nHotkeys.js has been tested and should work in.\n\n```shell\nInternet Explorer 6+\nSafari\nFirefox\nChrome\n```\n\n## Supported Keys\n\nHotKeys understands the following modifiers: `⇧`, `shift`, `option`, `⌥`, `alt`, `ctrl`, `control`, `command`, and `⌘`.\n\nThe following special keys can be used for shortcuts: backspace, tab, clear, enter, return, esc, escape, space, up, down, left, right, home, end, pageup, pagedown, del, delete and f1 through f19.\n\n`⌘` Command() \n`⌃` Control \n`⌥` Option(alt) \n`⇧` Shift \n`⇪` Caps Lock(Capital) \n~~`fn` Does not support fn~~ \n`↩︎` return/Enter space \n\n## Defining Shortcuts\n\nOne global method is exposed, key which defines shortcuts when called directly.\n\n```\nhotkeys([keys:], [option:[string|object|function]], [callback:])\n```\n\n\n```js\nhotkeys('f5', function(event, handler) {\n // Prevent the default refresh event under WINDOWS system\n event.preventDefault();\n alert('you pressed F5!');\n});\n\n// Returning false stops the event and prevents default browser events\n// Mac OS system defines `command + r` as a refresh shortcut\nhotkeys('ctrl+r, command+r', function() {\n alert('stopped reload!');\n return false;\n});\n\n// Single key\nhotkeys('a', function(event,handler){\n //event.srcElement: input \n //event.target: input\n if(event.target === \"input\"){\n alert('you pressed a!')\n }\n alert('you pressed a!') \n});\n\n// Key Combination\nhotkeys('ctrl+a,ctrl+b,r,f', function (event, handler){\n switch (handler.key) {\n case 'ctrl+a': alert('you pressed ctrl+a!');\n break;\n case 'ctrl+b': alert('you pressed ctrl+b!');\n break;\n case 'r': alert('you pressed r!');\n break;\n case 'f': alert('you pressed f!');\n break;\n default: alert(event);\n }\n});\n\nhotkeys('ctrl+a+s', function() {\n alert('you pressed ctrl+a+s!');\n});\n\n// Using a scope\nhotkeys('*','wcj', function(event){\n console.log('do something', event);\n});\n```\n\n#### option \n\n- `scope`\n- `element`\n- `keyup`\n- `keydown`\n- `splitKey` (default is `+`)\n\n```js\nhotkeys('o, enter', {\n scope: 'wcj',\n element: document.getElementById('wrapper'),\n}, function(){ \n console.log('do something else');\n});\n\nhotkeys('ctrl-+', { splitKey: '-' }, function(e) {\n console.log('you pressed ctrl and +');\n});\n\nhotkeys('+', { splitKey: '-' }, function(e){\n console.log('you pressed +');\n})\n```\n\n## API REFERENCE\n\nAsterisk \"*\"\n\nModifier key judgments\n\n```js\nhotkeys('*', function() {\n if (hotkeys.shift) {\n console.log('shift is pressed!');\n }\n\n if (hotkeys.ctrl) {\n console.log('ctrl is pressed!');\n }\n\n if (hotkeys.alt) {\n console.log('alt is pressed!');\n }\n\n if (hotkeys.option) {\n console.log('option is pressed!');\n }\n\n if (hotkeys.control) {\n console.log('control is pressed!');\n }\n\n if (hotkeys.cmd) {\n console.log('cmd is pressed!');\n }\n\n if (hotkeys.command) {\n console.log('command is pressed!');\n }\n});\n```\n\n### setScope\n\nUse the `hotkeys.setScope` method to set scope. There can only be one active scope besides 'all'. By default 'all' is always active.\n\n```js\n// Define shortcuts with a scope\nhotkeys('ctrl+o, ctrl+alt+enter', 'issues', function(){\n console.log('do something');\n});\nhotkeys('o, enter', 'files', function(){ \n console.log('do something else');\n});\n\n// Set the scope (only 'all' and 'issues' shortcuts will be honored)\nhotkeys.setScope('issues'); // default scope is 'all'\n```\n\n### getScope\n\nUse the `hotkeys.getScope` method to get scope.\n\n```js\nhotkeys.getScope();\n```\n\n### deleteScope\n\nUse the `hotkeys.deleteScope` method to delete a scope. This will also remove all associated hotkeys with it.\n\n```js\nhotkeys.deleteScope('issues');\n```\n\n### unbind\n\nSimilar to defining shortcuts, they can be unbound using `hotkeys.unbind`.\n\n```js\n// unbind 'a' handler\nhotkeys.unbind('a');\n\n// Unbind a hotkeys only for a single scope\n// If no scope is specified it defaults to the current scope (hotkeys.getScope())\nhotkeys.unbind('o, enter', 'issues');\nhotkeys.unbind('o, enter', 'files');\n```\n\nUnbind events through functions.\n\n```js\nfunction example() {\n hotkeys('a', example);\n hotkeys.unbind('a', example);\n\n hotkeys('a', 'issues', example);\n hotkeys.unbind('a', 'issues', example);\n}\n```\n\n### isPressed\n\nFor example, `hotkeys.isPressed(77)` is true if the `M` key is currently pressed.\n\n```js\nhotkeys('a', function() {\n console.log(hotkeys.isPressed('a')); //=> true\n console.log(hotkeys.isPressed('A')); //=> true\n console.log(hotkeys.isPressed(65)); //=> true\n});\n```\n\n## keyup\n\n**key down** and **key up** both perform callback events.\n\n```js\nhotkeys('ctrl+a,alt+a+s', {keyup: true}, function(event, handler) {\n if (event.type === 'keydown') {\n console.log('keydown:', event.type, handler, handler.key);\n }\n\n if (event.type === 'keyup') {\n console.log('keyup:', event.type, handler, handler.key);\n }\n});\n```\n\n### getPressedKeyCodes\n\nReturns an array of key codes currently pressed.\n\n```js\nhotkeys('command+ctrl+shift+a,f', function(){\n console.log(hotkeys.getPressedKeyCodes()); //=> [17, 65] or [70]\n})\n```\n\n### filter\n\nBy default hotkeys are not enabled for `INPUT` `SELECT` `TEXTAREA` elements. `Hotkeys.filter` to return to the `true` shortcut keys set to play a role, `false` shortcut keys set up failure.\n\n```js\nhotkeys.filter = function(event){\n return true;\n}\n//How to add the filter to edit labels. \n//\"contentEditable\" Older browsers that do not support drops\nhotkeys.filter = function(event) {\n var tagName = (event.target || event.srcElement).tagName;\n return !(tagName.isContentEditable || tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');\n}\n\nhotkeys.filter = function(event){\n var tagName = (event.target || event.srcElement).tagName;\n hotkeys.setScope(/^(INPUT|TEXTAREA|SELECT)$/.test(tagName) ? 'input' : 'other');\n return true;\n}\n```\n\n### noConflict\n\nRelinquish HotKeys’s control of the `hotkeys` variable.\n\n```js\nvar k = hotkeys.noConflict();\nk('a', function() {\n console.log(\"do something\")\n});\n\nhotkeys()\n// -->Uncaught TypeError: hotkeys is not a function(anonymous function) \n// @ VM2170:2InjectedScript._evaluateOn \n// @ VM2165:883InjectedScript._evaluateAndWrap \n// @ VM2165:816InjectedScript.evaluate @ VM2165:682\n```\n \n## Development\n\nTo develop, Install dependencies, Get the code:\n\n```shell\n$ git https://github.com/jaywcjlove/hotkeys.git\n$ cd hotkeys # Into the directory\n$ npm install # or yarn install\n```\n\nTo develop, run the self-reloading build:\n\n```shell\n$ npm run watch\n```\n\nRun Document Website Environment.\n\n```shell\n$ npm run doc:dev\n```\n\nTo contribute, please fork Hotkeys.js, add your patch and tests for it (in the `test/` folder) and submit a pull request.\n\n```shell\n$ npm run test\n$ npm run test:watch # Development model\n```\n\n## License\n\n[MIT © Kenny Wong](./LICENSE)\n"
},{}],"yNIz":[function(require,module,exports) {
"use strict";var e=t(require("@babel/runtime/helpers/typeof"));function t(e){return e&&e.__esModule?e:{default:e}}function n(t){return(n="function"==typeof Symbol&&"symbol"===(0,e.default)(Symbol.iterator)?function(t){return(0,e.default)(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":(0,e.default)(t)})(t)}var o="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function r(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),function(){n(window.event)})}function i(e,t){for(var n=t.slice(0,t.length-1),o=0;o=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}function f(e,t){for(var n=e.length>=t.length?e:t,o=e.length>=t.length?t:e,r=!0,i=0;i=0&&d.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&d.splice(0,d.length),93!==t&&224!==t||(t=91),t in p)for(var o in p[t]=!1,l)l[o]===t&&(A[o]=!1)}function C(e){if(e){if(Array.isArray(e))e.forEach(function(e){e.key&&E(e)});else if("object"===n(e))e.key&&E(e);else if("string"==typeof e){for(var t=arguments.length,o=new Array(t>1?t-1:0),r=1;r1?i(l,t):[];u[s]=u[s].map(function(e){return(!o||e.method===o)&&e.scope===n&&f(e.mods,p)?{}:e})}})};function j(e,t,n){var o;if(t.scope===n||"all"===t.scope){for(var r in o=t.mods.length>0,p)Object.prototype.hasOwnProperty.call(p,r)&&(!p[r]&&t.mods.indexOf(+r)>-1||p[r]&&-1===t.mods.indexOf(+r))&&(o=!1);(0!==t.mods.length||p[16]||p[18]||p[17]||p[91])&&!o&&"*"!==t.shortcut||!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function P(e){var t=u["*"],n=e.keyCode||e.which||e.charCode;if(A.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===d.indexOf(n)&&229!==n&&d.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach(function(t){var n=s[t];e[t]&&-1===d.indexOf(n)?d.push(n):!e[t]&&d.indexOf(n)>-1&&d.splice(d.indexOf(n),1)}),n in p){for(var o in p[n]=!0,l)l[o]===n&&(A[o]=!0);if(!t)return}for(var r in p)Object.prototype.hasOwnProperty.call(p,r)&&(p[r]=e[s[r]]);var i=k();if(t)for(var a=0;a-1}function A(e,t,n){d=[];var o=a(e),f=[],c="all",s=document,p=0,y=!1,h=!0,w="+";for(void 0===n&&"function"==typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(c=t.scope),t.element&&(s=t.element),t.keyup&&(y=t.keyup),void 0!==t.keydown&&(h=t.keydown),"string"==typeof t.splitKey&&(w=t.splitKey)),"string"==typeof t&&(c=t);p1&&(f=i(l,e)),(e="*"===(e=e[e.length-1])?"*":g(e))in u||(u[e]=[]),u[e].push({keyup:y,keydown:h,scope:c,mods:f,shortcut:o[p],method:n,key:o[p],splitKey:w});void 0!==s&&!S(s)&&window&&(v.push(s),r(s,"keydown",function(e){P(e)}),r(window,"focus",function(){d=[]}),r(s,"keyup",function(e){P(e),x(e)}))}var L={setScope:w,getScope:k,deleteScope:K,getPressedKeyCodes:m,isPressed:O,filter:b,unbind:C};for(var I in L)Object.prototype.hasOwnProperty.call(L,I)&&(A[I]=L[I]);if("undefined"!=typeof window){var T=window.hotkeys;A.noConflict=function(e){return e&&window.hotkeys===A&&(window.hotkeys=T),A},window.hotkeys=A}module.exports=A;
},{"@babel/runtime/helpers/typeof":"b9XL"}],"EHrm":[function(require,module,exports) {