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.
hotkeys/dist/hotkeys.min.js

2 lines
3.5 KiB
JavaScript

/*! hotkeys-js v3.0.0 | MIT (c) 2018 kenny wang <wowohoo@qq.com> | */
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):e.hotkeys=n()}(this,function(){"use strict";var e="undefined"!=typeof navigator&&0<navigator.userAgent.toLowerCase().indexOf("firefox");function n(e,n,t){e.addEventListener?e.addEventListener(n,t,!1):e.attachEvent&&e.attachEvent("on"+n,function(){t(window.event)})}function c(e,n){for(var t=n.slice(0,n.length-1),o=0;o<t.length;o++)t[o]=e[t[o].toLowerCase()];return t}function d(e){var n,t;for(e||(e=""),t=(n=(e=e.replace(/\s/g,"")).split(",")).lastIndexOf("");0<=t;)n[t-1]+=",",n.splice(t,1),t=n.lastIndexOf("");return n}for(var t={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,"\u21ea":20,capslock:20,",":188,".":190,"/":191,"`":192,"-":e?173:189,"=":e?61:187,";":e?59:186,"'":222,"[":219,"]":221,"\\":220},a={"\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},s=[],l={16:"shiftKey",18:"altKey",17:"ctrlKey"},u={16:!1,18:!1,17:!1},p={},o=1;o<20;o++)t["f"+o]=111+o;l[e?224:91]="metaKey",u[e?224:91]=!1;var r="all",h=function(e){return t[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function i(e){r=e||"all"}function v(){return r||"all"}function g(e,n,t){var o=void 0;if(n.scope===t||"all"===n.scope){for(var r in o=0<n.mods.length,u)(!u[r]&&-1<n.mods.indexOf(+r)||u[r]&&-1===n.mods.indexOf(+r))&&(o=!1);(0!==n.mods.length||u[16]||u[18]||u[17]||u[91])&&!o&&"*"!==n.shortcut||!1===n.method(e,n)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function y(e,n,t){var o=d(e),r=[],i=0;for(void 0===t&&(t=n,n="all");i<o.length;i++)r=[],1<(e=o[i].split("+")).length&&(r=c(a,e)),(e="*"===(e=e[e.length-1])?"*":h(e))in p||(p[e]=[]),p[e].push({scope:n,mods:r,shortcut:o[i],method:t,key:o[i]})}"undefined"!=typeof document&&(n(document,"keydown",function(e){!function(e){var n,t=e.keyCode||e.which||e.charCode,o=p["*"];if(-1===s.indexOf(t)&&s.push(t),93!==t&&224!==t||(t=91),t in u){for(var r in u[t]=!0,a)a[r]===t&&(y[r]=!0);if(!o)return}for(var i in u)u[i]=e[l[i]];if(y.filter.call(this,e)){if(n=v(),o)for(f=0;f<o.length;f++)o[f].scope===n&&g(e,o[f],n);if(t in p)for(var f=0;f<p[t].length;f++)g(e,p[t][f],n)}}(e)}),n(document,"keyup",function(e){!function(e){var n=e.keyCode||e.which||e.charCode,t=s.indexOf(n);if(t<0||s.splice(t,1),93!==n&&224!==n||(n=91),n in u)for(var o in u[n]=!1,a)a[o]===n&&(y[o]=!1)}(e)}));var f={setScope:i,getScope:v,deleteScope:function(e,n){var t=void 0,o=void 0;for(var r in e||(e=v()),p)for(t=p[r],o=0;o<t.length;)t[o].scope===e?t.splice(o,1):o++;v()===e&&i(n||"all")},getPressedKeyCodes:function(){return s.slice(0)},isPressed:function(e){return"string"==typeof e&&(e=h(e)),-1!==s.indexOf(e)},filter:function(e){var n=(e.target||e.srcElement).tagName;return!("INPUT"===n||"SELECT"===n||"TEXTAREA"===n)},unbind:function(e,n){for(var t=d(e),o=void 0,r=[],i=void 0,f=0;f<t.length;f++){if(1<(o=t[f].split("+")).length&&(r=c(o)),e="*"===(e=o[o.length-1])?"*":h(e),n||(n=v()),!p[e])return;for(var a=0;a<p[e].length;a++)(i=p[e][a]).scope===n&&compareArray(i.mods,r)&&(p[e][a]={})}}};for(var m in f)y[m]=f[m];if("undefined"!=typeof window){var w=window.hotkeys;y.noConflict=function(e){return e&&window.hotkeys===y&&(window.hotkeys=w),y},window.hotkeys=y}return y});