Files
MYSOPHAL/lib/jqueryplugins/jquery.hotkeys.min.js
2025-08-07 13:15:31 +01:00

1 line
2.2 KiB
JavaScript

(function(t){t.hotkeys={version:"0.2.0",specialKeys:{8:"backspace",9:"tab",10:"return",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},shiftNums:{"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"},textAcceptingInputTypes:["text","password","number","email","url","range","date","month","week","time","datetime","datetime-local","search","color","tel"],textInputTypes:/textarea|input|select/i,options:{filterInputAcceptingElements:true,filterTextInputs:true,filterContentEditable:true}};function e(e){if(typeof e.data==="string"){e.data={keys:e.data}}if(!e.data||!e.data.keys||typeof e.data.keys!=="string"){return}var s=e.handler,a=e.data.keys.toLowerCase().split(" ");e.handler=function(e){if(this!==e.target&&(t.hotkeys.options.filterInputAcceptingElements&&t.hotkeys.textInputTypes.test(e.target.nodeName)||t.hotkeys.options.filterContentEditable&&t(e.target).attr("contenteditable")||t.hotkeys.options.filterTextInputs&&t.inArray(e.target.type,t.hotkeys.textAcceptingInputTypes)>-1)){return}var r=e.type!=="keypress"&&t.hotkeys.specialKeys[e.which],i=String.fromCharCode(e.which).toLowerCase(),n="",o={};t.each(["alt","ctrl","shift"],(function(t,s){if(e[s+"Key"]&&r!==s){n+=s+"+"}}));if(e.metaKey&&!e.ctrlKey&&r!=="meta"){n+="meta+"}if(e.metaKey&&r!=="meta"&&n.indexOf("alt+ctrl+shift+")>-1){n=n.replace("alt+ctrl+shift+","hyper+")}if(r){o[n+r]=true}else{o[n+i]=true;o[n+t.hotkeys.shiftNums[i]]=true;if(n==="shift+"){o[t.hotkeys.shiftNums[i]]=true}}for(var f=0,p=a.length;f<p;f++){if(o[a[f]]){return s.apply(this,arguments)}}}}t.each(["keydown","keyup","keypress"],(function(){t.event.special[this]={add:e}}))})(jQuery||this.jQuery||window.jQuery);