You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
3.8 KiB
JavaScript
2 lines
3.8 KiB
JavaScript
/*! hotkeys-js v3.1.0 | MIT (c) 2018 kenny wong <wowohoo@qq.com> | https://github.com/jaywcjlove/hotkeys.git */
|
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.hotkeys=t()}(this,function(){"use strict";var e="undefined"!=typeof navigator&&0<navigator.userAgent.toLowerCase().indexOf("firefox");function t(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on"+t,function(){n(window.event)})}function c(e,t){for(var n=t.slice(0,t.length-1),o=0;o<n.length;o++)n[o]=e[n[o].toLowerCase()];return n}function l(e){e||(e="");for(var t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");0<=n;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}function s(e,t){for(var n=e.length<t.length?t:e,o=e.length<t.length?e:t,r=!0,i=0;i<n.length;i++)-1===o.indexOf(n[i])&&(r=!1);return r}for(var n={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,"\u21ea":20,",":188,".":190,"/":191,"`":192,"-":e?173:189,"=":e?61:187,";":e?59:186,"'":222,"[":219,"]":221,"\\":220},d={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":e?224:91,cmd:e?224:91,command:e?224:91},u=[],p={16:"shiftKey",18:"altKey",17:"ctrlKey"},h={16:!1,18:!1,17:!1},v={},o=1;o<20;o++)n["f"+o]=111+o;p[e?224:91]="metaKey",h[e?224:91]=!1;var r="all",g=function(e){return n[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function i(e){r=e||"all"}function y(){return r||"all"}function w(e,t,n){var o=void 0;if(t.scope===n||"all"===t.scope){for(var r in o=0<t.mods.length,h)Object.prototype.hasOwnProperty.call(h,r)&&(!h[r]&&-1<t.mods.indexOf(+r)||h[r]&&-1===t.mods.indexOf(+r))&&(o=!1);(0!==t.mods.length||h[16]||h[18]||h[17]||h[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 m(e,t,n){var o=l(e),r=[],i=0;for(void 0===n&&(n=t,t="all");i<o.length;i++)r=[],1<(e=o[i].split("+")).length&&(r=c(d,e)),(e="*"===(e=e[e.length-1])?"*":g(e))in v||(v[e]=[]),v[e].push({scope:t,mods:r,shortcut:o[i],method:n,key:o[i]})}"undefined"!=typeof document&&(t(document,"keydown",function(e){!function(e){var t=v["*"],n=e.keyCode||e.which||e.charCode;if(-1===u.indexOf(n)&&u.push(n),93!==n&&224!==n||(n=91),n in h){for(var o in h[n]=!0,d)d[o]===n&&(m[o]=!0);if(!t)return}for(var r in h)Object.prototype.hasOwnProperty.call(h,r)&&(h[r]=e[p[r]]);if(m.filter.call(this,e)){var i=y();if(t)for(var a=0;a<t.length;a++)t[a].scope===i&&w(e,t[a],i);if(n in v)for(var f=0;f<v[n].length;f++)w(e,v[n][f],i)}}(e)}),t(document,"keyup",function(e){!function(e){var t=u.indexOf(n),n=e.keyCode||e.which||e.charCode;if(t<0||u.splice(t,1),93!==n&&224!==n||(n=91),n in h)for(var o in h[n]=!1,d)d[o]===n&&(m[o]=!1)}(e)}));var a={setScope:i,getScope:y,deleteScope:function(e,t){var n=void 0,o=void 0;for(var r in e||(e=y()),v)if(Object.prototype.hasOwnProperty.call(v,r))for(n=v[r],o=0;o<n.length;)n[o].scope===e?n.splice(o,1):o++;y()===e&&i(t||"all")},getPressedKeyCodes:function(){return u.slice(0)},isPressed:function(e){return"string"==typeof e&&(e=g(e)),-1!==u.indexOf(e)},filter:function(e){var t=e.target.tagName||e.srcElement.tagName;return!("INPUT"===t||"SELECT"===t||"TEXTAREA"===t)},unbind:function(e,t){for(var n=l(e),o=void 0,r=[],i=void 0,a=0;a<n.length;a++){if(1<(o=n[a].split("+")).length&&(r=c(d,o)),e="*"===(e=o[o.length-1])?"*":g(e),t||(t=y()),!v[e])return;for(var f=0;f<v[e].length;f++)(i=v[e][f]).scope===t&&s(i.mods,r)&&(v[e][f]={})}}};for(var f in a)Object.prototype.hasOwnProperty.call(a,f)&&(m[f]=a[f]);if("undefined"!=typeof window){var O=window.hotkeys;m.noConflict=function(e){return e&&window.hotkeys===m&&(window.hotkeys=O),m},window.hotkeys=m}return m}); |