diff --git a/index.html b/index.html index a091e7a..ea9e977 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.2a26150c.js b/website.37ca9e46.js similarity index 98% rename from website.2a26150c.js rename to website.37ca9e46.js index c1d5ff9..c565c66 100644 --- a/website.2a26150c.js +++ b/website.37ca9e46.js @@ -16,10 +16,10 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel function n(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}module.exports=n; },{}],"P8NW":[function(require,module,exports) { function e(e,r){for(var n=0;n/.test(e.value))&&e}}))}}]),c}(a.Component);exports.default=p; +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=p(require("@babel/runtime/helpers/classCallCheck")),t=p(require("@babel/runtime/helpers/createClass")),r=p(require("@babel/runtime/helpers/possibleConstructorReturn")),n=p(require("@babel/runtime/helpers/getPrototypeOf")),u=p(require("@babel/runtime/helpers/inherits")),a=s(require("react")),o=p(require("react-markdown")),l=p(require("highlight.js")),i=p(require("classnames")),c=p(require("./styles/index.less"));function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function s(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(Object.prototype.hasOwnProperty.call(e,u)){var a=n?Object.getOwnPropertyDescriptor(e,u):null;a&&(a.get||a.set)?Object.defineProperty(r,u,a):r[u]=e[u]}return r.default=e,t&&t.set(e,r),r}function p(e){return e&&e.__esModule?e:{default:e}}function d(e){return function(){var t,u=(0,n.default)(e);if(h()){var a=(0,n.default)(this).constructor;t=Reflect.construct(u,arguments,a)}else t=u.apply(this,arguments);return(0,r.default)(this,t)}}function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}l.default.configure({tabReplace:" ",classPrefix:""});var y=function(r){(0,u.default)(f,r);var n=d(f);function f(){return(0,e.default)(this,f),n.apply(this,arguments)}return(0,t.default)(f,[{key:"componentDidMount",value:function(){for(var e=this.node.getElementsByTagName("code"),t=0;t/.test(e.value))&&e}}))}}]),f}(a.Component);exports.default=y; },{"@babel/runtime/helpers/classCallCheck":"fcMS","@babel/runtime/helpers/createClass":"P8NW","@babel/runtime/helpers/possibleConstructorReturn":"pxk2","@babel/runtime/helpers/getPrototypeOf":"UJE0","@babel/runtime/helpers/inherits":"d4H2","react":"n8MK","react-markdown":"jR9m","highlight.js":"u5NY","classnames":"qb7c","./styles/index.less":"SPwn"}],"nZil":[function(require,module,exports) { module.exports={shields:"_shields_4260b"}; },{}],"n1B7":[function(require,module,exports) { @@ -646,12 +646,12 @@ module.exports={version:"_version_a1cf1",keyCodeInfo:"_keyCodeInfo_a1cf1",header },{}],"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. 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 S(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]]);e.getModifierState&&e.getModifierState("AltGraph")&&(d.push(17,18),p[17]=!0,p[18]=!0);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&&!P(s)&&window&&(v.push(s),r(s,"keydown",function(e){S(e)}),r(window,"focus",function(){d=[]}),r(s,"keyup",function(e){S(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 M=window.hotkeys;A.noConflict=function(e){return e&&window.hotkeys===A&&(window.hotkeys=M),A},window.hotkeys=A}module.exports=A; -},{"@babel/runtime/helpers/typeof":"b9XL"}],"EHrm":[function(require,module,exports) { -module.exports={name:"hotkeys-js",description:"A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.",version:"3.7.4",main:"index.js",types:"index.d.ts",module:"dist/hotkeys.esm.js",scripts:{lint:"eslint --ext .js src website",deploy:"node scripts/build.js && npm run doc:build && gh-pages -d doc",build:"node scripts/build.js && npm run doc:build",watch:"node scripts/watch.js",pretest:"npm run build",test:"jest --coverage","test:watch":"jest --watch",doc:"npm run doc:dev","doc:dev":"cross-env NODE_ENV=development parcel website/index.html --out-dir doc --no-cache","doc:build":"rimraf doc && cross-env NODE_ENV=production parcel build website/index.html --out-dir doc --public-url ./ --no-cache --no-source-maps"},files:["index.d.ts","dist","doc"],husky:{hooks:{"pre-commit":"npm run lint"}},keywords:["hotkey","hotkeys","hotkeys-js","hotkeysjs","key","keys","keyboard","shortcuts","keypress"],author:"kenny wong ",license:"MIT",homepage:"http://jaywcjlove.github.io/hotkeys",repository:{type:"git",url:"https://github.com/jaywcjlove/hotkeys.git"},jest:{testURL:"http://localhost/"},dependencies:{},devDependencies:{"@babel/core":"7.7.2","@babel/plugin-external-helpers":"7.2.0","@babel/plugin-transform-runtime":"7.6.2","@babel/preset-env":"7.7.1","@babel/preset-react":"7.7.0","@uiw/react-github-corners":"1.0.8",autoprefixer:"8.6.5","babel-eslint":"10.1.0",bannerjs:"1.0.6",classnames:"2.2.6","colors-cli":"1.0.26","cross-env":"6.0.3",eslint:"4.19.1","eslint-config-airbnb":"16.1.0","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-react":"7.16.0","gh-pages":"1.2.0","highlight.js":"9.18.1",husky:"3.1.0",jest:"24.9.0",less:"3.10.3","parcel-bundler":"1.12.4","parcel-plugin-markdown-string":"1.4.2","postcss-modules":"1.4.1",puppeteer:"1.20.0",react:"16.12.0","react-dom":"16.12.0","react-markdown":"3.6.0",rimraf:"2.7.1",rollup:"1.27.4","rollup-plugin-babel":"4.3.3","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.4","uglify-js":"3.6.9",zlib:"1.0.5"}}; +"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),function(){n(window.event)})}function o(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 i(e,t){for(var n=e.length>=t.length?e:t,o=e.length>=t.length?t:e,r=!0,i=0;i=0&&y.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&y.splice(0,y.length),93!==t&&224!==t||(t=91),t in l)for(var o in l[t]=!1,f)f[o]===t&&(S[o]=!1)}function K(t){if(t){if(Array.isArray(t))t.forEach(function(e){e.key&&x(e)});else if("object"===e(t))t.key&&x(t);else if("string"==typeof t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r1?o(f,t):[];s[p]=s[p].map(function(e){return(!a||e.method===a)&&e.scope===n&&i(e.mods,y)?{}:e})}})};function C(e,t,n){var o;if(t.scope===n||"all"===t.scope){for(var r in o=t.mods.length>0,l)Object.prototype.hasOwnProperty.call(l,r)&&(!l[r]&&t.mods.indexOf(+r)>-1||l[r]&&-1===t.mods.indexOf(+r))&&(o=!1);(0!==t.mods.length||l[16]||l[18]||l[17]||l[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 E(e){var t=s["*"],n=e.keyCode||e.which||e.charCode;if(S.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===y.indexOf(n)&&229!==n&&y.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach(function(t){var n=c[t];e[t]&&-1===y.indexOf(n)?y.push(n):!e[t]&&y.indexOf(n)>-1&&y.splice(y.indexOf(n),1)}),n in l){for(var o in l[n]=!0,f)f[o]===n&&(S[o]=!0);if(!t)return}for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(l[r]=e[c[r]]);e.getModifierState&&e.getModifierState("AltGraph")&&(y.push(17,18),l[17]=!0,l[18]=!0);var i=g();if(t)for(var a=0;a-1}function S(e,t,i){y=[];var a=r(e),c=[],l="all",p=document,u=0,v=!1,g=!0,w="+";for(void 0===i&&"function"==typeof t&&(i=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(l=t.scope),t.element&&(p=t.element),t.keyup&&(v=t.keyup),void 0!==t.keydown&&(g=t.keydown),"string"==typeof t.splitKey&&(w=t.splitKey)),"string"==typeof t&&(l=t);u1&&(c=o(f,e)),(e="*"===(e=e[e.length-1])?"*":h(e))in s||(s[e]=[]),s[e].push({keyup:v,keydown:g,scope:l,mods:c,shortcut:a[u],method:i,key:a[u],splitKey:w});void 0!==p&&!j(p)&&window&&(d.push(p),n(p,"keydown",function(e){E(e)}),n(window,"focus",function(){y=[]}),n(p,"keyup",function(e){E(e),b(e)}))}var P={setScope:v,getScope:g,deleteScope:O,getPressedKeyCodes:w,isPressed:m,filter:k,unbind:K};for(var A in P)Object.prototype.hasOwnProperty.call(P,A)&&(S[A]=P[A]);if("undefined"!=typeof window){var L=window.hotkeys;S.noConflict=function(e){return e&&window.hotkeys===S&&(window.hotkeys=L),S},window.hotkeys=S}module.exports=S; +},{}],"EHrm":[function(require,module,exports) { +module.exports={name:"hotkeys-js",description:"A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.",version:"3.7.4",main:"index.js",types:"index.d.ts",module:"dist/hotkeys.esm.js",scripts:{lint:"eslint --ext .js src website",deploy:"node scripts/build.js && npm run doc:build && gh-pages -d doc",build:"node scripts/build.js && npm run doc:build",watch:"node scripts/watch.js",pretest:"npm run build",test:"jest --coverage","test:watch":"jest --watch",doc:"npm run doc:dev","doc:dev":"cross-env NODE_ENV=development parcel website/index.html --out-dir doc --no-cache","doc:build":"rimraf doc && cross-env NODE_ENV=production parcel build website/index.html --out-dir doc --public-url ./ --no-cache --no-source-maps"},files:["index.d.ts","dist","doc"],husky:{hooks:{"pre-commit":"npm run lint"}},keywords:["hotkey","hotkeys","hotkeys-js","hotkeysjs","key","keys","keyboard","shortcuts","keypress"],author:"kenny wong ",license:"MIT",homepage:"http://jaywcjlove.github.io/hotkeys",repository:{type:"git",url:"https://github.com/jaywcjlove/hotkeys.git"},jest:{testURL:"http://localhost/"},dependencies:{},devDependencies:{"@babel/core":"7.9.0","@babel/plugin-external-helpers":"7.8.3","@babel/plugin-transform-runtime":"7.9.0","@babel/preset-env":"7.9.0","@babel/preset-react":"7.9.4","@uiw/react-github-corners":"1.0.8",autoprefixer:"8.6.5","babel-eslint":"10.1.0",bannerjs:"1.0.6",classnames:"2.2.6","colors-cli":"1.0.26","cross-env":"6.0.3",eslint:"4.19.1","eslint-config-airbnb":"16.1.0","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-react":"7.16.0","gh-pages":"1.2.0","highlight.js":"9.18.1",husky:"3.1.0",jest:"24.9.0",less:"3.10.3","parcel-bundler":"1.12.4","parcel-plugin-markdown-string":"1.4.2","postcss-modules":"1.4.1",puppeteer:"1.20.0",react:"16.12.0","react-dom":"16.12.0","react-markdown":"3.6.0",rimraf:"2.7.1",rollup:"1.27.4","rollup-plugin-babel":"4.3.3","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.4","uglify-js":"3.6.9",zlib:"1.0.5"}}; },{}],"lY9v":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=k(require("@babel/runtime/helpers/classCallCheck")),t=k(require("@babel/runtime/helpers/createClass")),o=k(require("@babel/runtime/helpers/possibleConstructorReturn")),n=k(require("@babel/runtime/helpers/getPrototypeOf")),r=k(require("@babel/runtime/helpers/assertThisInitialized")),a=k(require("@babel/runtime/helpers/inherits")),l=v(require("react")),u=k(require("@uiw/react-github-corners")),s=k(require("./components/KeyBoard")),i=k(require("./components/Footer")),c=k(require("./components/Markdown")),d=k(require("./components/GithubShields")),h=k(require("./styles/index.less")),f=k(require("../README.md")),y=k(require("../dist/hotkeys.common")),p=k(require("../package.json"));function m(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return m=function(){return e},e}function v(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=m();if(t&&t.has(e))return t.get(e);var o={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var a=n?Object.getOwnPropertyDescriptor(e,r):null;a&&(a.get||a.set)?Object.defineProperty(o,r,a):o[r]=e[r]}return o.default=e,t&&t.set(e,o),o}function k(e){return e&&e.__esModule?e:{default:e}}var b=function(m){function v(){var t;return(0,e.default)(this,v),(t=(0,o.default)(this,(0,n.default)(v).call(this))).state={keyCode:[],keyStr:[]},t.onKeyUpEvent=t.onKeyUpEvent.bind((0,r.default)(t)),t}return(0,a.default)(v,m),(0,t.default)(v,[{key:"componentDidMount",value:function(){var e=this;function t(e,t){return-1===e.indexOf(t)&&e.push(t),e}function o(e,t){return-1===e.indexOf(t)&&e.push(t),e}return document.addEventListener("keyup",this.onKeyUpEvent),(0,y.default)("*",function(n){n.preventDefault();var r=[],a=[];y.default.shift&&(t(r,16),o(a,"shift")),y.default.ctrl&&(t(r,17),o(a,"ctrl")),y.default.alt&&(t(r,18),o(a,"alt")),y.default.control&&(t(r,17),o(a,"control")),y.default.command&&(t(r,91),o(a,"command")),a.push(n.keyCode),-1===r.indexOf(n.keyCode)&&r.push(n.keyCode),e.setState({keyCode:r,keyStr:a})}),!1}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keyup",this.onKeyUpEvent)}},{key:"onKeyUpEvent",value:function(){this.setState({keyCode:[],keyStr:[]})}},{key:"onKeyBoardMouseDown",value:function(e){e.keycode>-1&&this.setState({keyStr:[e.keycode]})}},{key:"onKeyBoardMouseUp",value:function(){this.setState({keyStr:[]})}},{key:"openVersionWebsite",value:function(e){e.target&&e.target.value&&(window.location.href=e.target.value)}},{key:"render",value:function(){var e=this.state.keyStr,t=f.default;return t&&(t=f.default.replace(/([\s\S]*)/,"")),l.default.createElement("div",null,l.default.createElement("select",{className:h.default.version,onChange:this.openVersionWebsite.bind(this)},l.default.createElement("option",{value:"https://jaywcjlove.github.io/hotkeys"},"v",p.default.version),l.default.createElement("option",{value:"https://unpkg.com/hotkeys-js@3.4.3/doc/index.html"},"v3.4.3"),l.default.createElement("option",{value:"https://unpkg.com/hotkeys-js@3.4.2/doc/index.html"},"v3.4.2"),l.default.createElement("option",{value:"https://unpkg.com/hotkeys-js@2.0.10/doc/index.html"},"v2.0.10")),e.length>-1&&l.default.createElement("div",{className:h.default.keyCodeInfo},e.map(function(e){return l.default.createElement("span",{key:"".concat(e)},e)})),l.default.createElement(u.default,{href:"https://github.com/jaywcjlove/hotkeys",target:"__blank"}),l.default.createElement("div",{className:h.default.header},l.default.createElement("div",{className:h.default.title},"HotKeys.js"),l.default.createElement("div",{className:h.default.github},l.default.createElement("a",{href:"https://www.npmjs.com/package/hotkeys-js"},l.default.createElement("button",null,"On NPM")),l.default.createElement("a",{href:"https://github.com/jaywcjlove/hotkeys/"},l.default.createElement("button",null,"Fork on Github")),l.default.createElement("a",{href:"https://github.com/jaywcjlove/hotkeys/"},l.default.createElement("button",null,"Doc on Github")),l.default.createElement("a",{href:"https://jaywcjlove.gitee.io/hotkeys/"},l.default.createElement("button",null,"Doc on Gitee"))),l.default.createElement("div",{className:h.default.info},"A robust Javascript library for capturing keyboard input and key combinations entered. It has no dependencies. Try to press your keyboard, The following button will highlight.")),l.default.createElement(s.default,{onMouseDown:this.onKeyBoardMouseDown.bind(this),onMouseUp:this.onKeyBoardMouseUp.bind(this),keyCode:this.state.keyCode}),l.default.createElement(c.default,{source:t}),l.default.createElement(d.default,{source:[{href:"https://github.com/jaywcjlove/hotkeys/stargazers",img:"https://img.shields.io/github/stars/jaywcjlove/hotkeys.svg"},{href:"https://github.com/jaywcjlove/hotkeys/network",img:"https://img.shields.io/github/forks/jaywcjlove/hotkeys.svg"},{href:"https://github.com/jaywcjlove/hotkeys/watchers",img:"https://img.shields.io/github/watchers/jaywcjlove/hotkeys.svg?label=Watch"},{href:"https://github.com/jaywcjlove/followers",img:"https://img.shields.io/github/followers/jaywcjlove.svg"},{href:"https://gitee.com/jaywcjlove/hotkeys",img:"https://jaywcjlove.github.io/sb/ico/gitee.svg"}]}),l.default.createElement(i.default,{name:"Kenny Wong",href:"http://jaywcjlove.github.io",year:"2015-present"}))}}]),v}(l.Component);exports.default=b; -},{"@babel/runtime/helpers/classCallCheck":"fcMS","@babel/runtime/helpers/createClass":"P8NW","@babel/runtime/helpers/possibleConstructorReturn":"pxk2","@babel/runtime/helpers/getPrototypeOf":"UJE0","@babel/runtime/helpers/assertThisInitialized":"E7HD","@babel/runtime/helpers/inherits":"d4H2","react":"n8MK","@uiw/react-github-corners":"Mgm0","./components/KeyBoard":"Y40V","./components/Footer":"fZmu","./components/Markdown":"szaN","./components/GithubShields":"n1B7","./styles/index.less":"rzuK","../README.md":"OviO","../dist/hotkeys.common":"yNIz","../package.json":"EHrm"}],"f9Gk":[function(require,module,exports) { +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=k(require("@babel/runtime/helpers/classCallCheck")),t=k(require("@babel/runtime/helpers/createClass")),n=k(require("@babel/runtime/helpers/assertThisInitialized")),o=k(require("@babel/runtime/helpers/possibleConstructorReturn")),r=k(require("@babel/runtime/helpers/getPrototypeOf")),a=k(require("@babel/runtime/helpers/inherits")),u=v(require("react")),l=k(require("@uiw/react-github-corners")),i=k(require("./components/KeyBoard")),s=k(require("./components/Footer")),c=k(require("./components/Markdown")),f=k(require("./components/GithubShields")),d=k(require("./styles/index.less")),h=k(require("../README.md")),y=k(require("../dist/hotkeys.common")),p=k(require("../package.json"));function m(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return m=function(){return e},e}function v(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=m();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var a=o?Object.getOwnPropertyDescriptor(e,r):null;a&&(a.get||a.set)?Object.defineProperty(n,r,a):n[r]=e[r]}return n.default=e,t&&t.set(e,n),n}function k(e){return e&&e.__esModule?e:{default:e}}function b(e){return function(){var t,n=(0,r.default)(e);if(g()){var a=(0,r.default)(this).constructor;t=Reflect.construct(n,arguments,a)}else t=n.apply(this,arguments);return(0,o.default)(this,t)}}function g(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}var j=function(o){(0,a.default)(m,o);var r=b(m);function m(){var t;return(0,e.default)(this,m),(t=r.call(this)).state={keyCode:[],keyStr:[]},t.onKeyUpEvent=t.onKeyUpEvent.bind((0,n.default)(t)),t}return(0,t.default)(m,[{key:"componentDidMount",value:function(){var e=this;function t(e,t){return-1===e.indexOf(t)&&e.push(t),e}function n(e,t){return-1===e.indexOf(t)&&e.push(t),e}return document.addEventListener("keyup",this.onKeyUpEvent),(0,y.default)("*",function(o){o.preventDefault();var r=[],a=[];y.default.shift&&(t(r,16),n(a,"shift")),y.default.ctrl&&(t(r,17),n(a,"ctrl")),y.default.alt&&(t(r,18),n(a,"alt")),y.default.control&&(t(r,17),n(a,"control")),y.default.command&&(t(r,91),n(a,"command")),a.push(o.keyCode),-1===r.indexOf(o.keyCode)&&r.push(o.keyCode),e.setState({keyCode:r,keyStr:a})}),!1}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keyup",this.onKeyUpEvent)}},{key:"onKeyUpEvent",value:function(){this.setState({keyCode:[],keyStr:[]})}},{key:"onKeyBoardMouseDown",value:function(e){e.keycode>-1&&this.setState({keyStr:[e.keycode]})}},{key:"onKeyBoardMouseUp",value:function(){this.setState({keyStr:[]})}},{key:"openVersionWebsite",value:function(e){e.target&&e.target.value&&(window.location.href=e.target.value)}},{key:"render",value:function(){var e=this.state.keyStr,t=h.default;return t&&(t=h.default.replace(/([\s\S]*)/,"")),u.default.createElement("div",null,u.default.createElement("select",{className:d.default.version,onChange:this.openVersionWebsite.bind(this)},u.default.createElement("option",{value:"https://jaywcjlove.github.io/hotkeys"},"v",p.default.version),u.default.createElement("option",{value:"https://unpkg.com/hotkeys-js@3.4.3/doc/index.html"},"v3.4.3"),u.default.createElement("option",{value:"https://unpkg.com/hotkeys-js@3.4.2/doc/index.html"},"v3.4.2"),u.default.createElement("option",{value:"https://unpkg.com/hotkeys-js@2.0.10/doc/index.html"},"v2.0.10")),e.length>-1&&u.default.createElement("div",{className:d.default.keyCodeInfo},e.map(function(e){return u.default.createElement("span",{key:"".concat(e)},e)})),u.default.createElement(l.default,{href:"https://github.com/jaywcjlove/hotkeys",target:"__blank"}),u.default.createElement("div",{className:d.default.header},u.default.createElement("div",{className:d.default.title},"HotKeys.js"),u.default.createElement("div",{className:d.default.github},u.default.createElement("a",{href:"https://www.npmjs.com/package/hotkeys-js"},u.default.createElement("button",null,"On NPM")),u.default.createElement("a",{href:"https://github.com/jaywcjlove/hotkeys/"},u.default.createElement("button",null,"Fork on Github")),u.default.createElement("a",{href:"https://github.com/jaywcjlove/hotkeys/"},u.default.createElement("button",null,"Doc on Github")),u.default.createElement("a",{href:"https://jaywcjlove.gitee.io/hotkeys/"},u.default.createElement("button",null,"Doc on Gitee"))),u.default.createElement("div",{className:d.default.info},"A robust Javascript library for capturing keyboard input and key combinations entered. It has no dependencies. Try to press your keyboard, The following button will highlight.")),u.default.createElement(i.default,{onMouseDown:this.onKeyBoardMouseDown.bind(this),onMouseUp:this.onKeyBoardMouseUp.bind(this),keyCode:this.state.keyCode}),u.default.createElement(c.default,{source:t}),u.default.createElement(f.default,{source:[{href:"https://github.com/jaywcjlove/hotkeys/stargazers",img:"https://img.shields.io/github/stars/jaywcjlove/hotkeys.svg"},{href:"https://github.com/jaywcjlove/hotkeys/network",img:"https://img.shields.io/github/forks/jaywcjlove/hotkeys.svg"},{href:"https://github.com/jaywcjlove/hotkeys/watchers",img:"https://img.shields.io/github/watchers/jaywcjlove/hotkeys.svg?label=Watch"},{href:"https://github.com/jaywcjlove/followers",img:"https://img.shields.io/github/followers/jaywcjlove.svg"},{href:"https://gitee.com/jaywcjlove/hotkeys",img:"https://jaywcjlove.github.io/sb/ico/gitee.svg"}]}),u.default.createElement(s.default,{name:"Kenny Wong",href:"http://jaywcjlove.github.io",year:"2015-present"}))}}]),m}(u.Component);exports.default=j; +},{"@babel/runtime/helpers/classCallCheck":"fcMS","@babel/runtime/helpers/createClass":"P8NW","@babel/runtime/helpers/assertThisInitialized":"E7HD","@babel/runtime/helpers/possibleConstructorReturn":"pxk2","@babel/runtime/helpers/getPrototypeOf":"UJE0","@babel/runtime/helpers/inherits":"d4H2","react":"n8MK","@uiw/react-github-corners":"Mgm0","./components/KeyBoard":"Y40V","./components/Footer":"fZmu","./components/Markdown":"szaN","./components/GithubShields":"n1B7","./styles/index.less":"rzuK","../README.md":"OviO","../dist/hotkeys.common":"yNIz","../package.json":"EHrm"}],"f9Gk":[function(require,module,exports) { module.exports={}; },{"./../assets/bg.jpg":[["bg.60e73cde.jpg","SleV"],"SleV"]}],"Focm":[function(require,module,exports) { "use strict";var e=u(require("react")),r=u(require("react-dom")),t=u(require("./App"));function u(e){return e&&e.__esModule?e:{default:e}}require("./styles/reset.less"),r.default.render(e.default.createElement(t.default,null),document.getElementById("root"));