/*! hotkeys-js v3.13.3 | MIT © 2023 kenny wong https://jaywcjlove.github.io/hotkeys-js */ "use strict";const isff="undefined"!=typeof navigator&&0{o(window.event)})}function getMods(t,e){var o=e.slice(0,e.length-1);for(let e=0;e_keyMap[e.toLowerCase()]||_modifier[e.toLowerCase()]||e.toUpperCase().charCodeAt(0),getKey=t=>Object.keys(_keyMap).find(e=>_keyMap[e]===t),getModifier=t=>Object.keys(_modifier).find(e=>_modifier[e]===t);function setScope(e){_scope=e||"all"}function getScope(){return _scope||"all"}function getPressedKeyCodes(){return _downKeys.slice(0)}function getPressedKeyString(){return _downKeys.map(e=>getKey(e)||getModifier(e)||String.fromCharCode(e))}function getAllKeyCodes(){const s=[];return Object.keys(_handlers).forEach(e=>{_handlers[e].forEach(e=>{var{key:e,scope:t,mods:o,shortcut:n}=e;s.push({scope:t,shortcut:n,mods:o,keys:e.split("+").map(e=>code(e))})})}),s}function filter(e){var e=e.target||e.srcElement,t=e["tagName"];let o=!e.isContentEditable&&("INPUT"!==t&&"TEXTAREA"!==t&&"SELECT"!==t||e.readOnly)?!0:!1;return o}function isPressed(e){return"string"==typeof e&&(e=code(e)),!!~_downKeys.indexOf(e)}function deleteScope(e,t){var o;let n;e=e||getScope();for(const s in _handlers)if(Object.prototype.hasOwnProperty.call(_handlers,s))for(o=_handlers[s],n=0;ndelete _handlers[e]);else if(Array.isArray(o))o.forEach(e=>{e.key&&eachUnbind(e)});else if("object"==typeof o)o.key&&eachUnbind(o);else if("string"==typeof o){for(var n=arguments.length,s=Array(1{let{key:t,scope:s,method:d,splitKey:i="+"}=e;getKeys(t).forEach(e=>{var e=e.split(i),t=e.length,o=e[t-1],o="*"===o?"*":code(o);if(_handlers[o]){s=s||getScope();const n=1{return!((!d||e.method===d)&&e.scope===s&&compareArray(e.mods,n))})}})};function eventHandler(t,o,n,e){if(o.element===e){let e;if(o.scope===n||"all"===o.scope){e=0{var t=modifierMap[e];o[e]&&!~_downKeys.indexOf(t)?_downKeys.push(t):!o[e]&&~_downKeys.indexOf(t)?_downKeys.splice(_downKeys.indexOf(t),1):"metaKey"!==e||!o[e]||3!==_downKeys.length||o.ctrlKey||o.shiftKey||o.altKey||(_downKeys=_downKeys.slice(_downKeys.indexOf(t)))}),s in _mods){_mods[s]=!0;for(const e in _modifier)_modifier[e]===s&&(hotkeys[e]=!0);if(!n)return}for(const c in _mods)Object.prototype.hasOwnProperty.call(_mods,c)&&(_mods[c]=o[modifierMap[c]]);o.getModifierState&&(!o.altKey||o.ctrlKey)&&o.getModifierState("AltGraph")&&(~_downKeys.indexOf(17)||_downKeys.push(17),~_downKeys.indexOf(18)||_downKeys.push(18),_mods[17]=!0,_mods[18]=!0);var d=getScope();if(n)for(let e=0;e{dispatch(e,i)},y),winListendFocus||(winListendFocus=!0,addEvent(window,"focus",()=>{_downKeys=[]},y)),addEvent(i,"keyup",e=>{dispatch(e,i),clearModifier(e)},y))}function trigger(t){let o=1{_handlers[e].filter(e=>e.scope===o&&e.shortcut===t).forEach(e=>{e&&e.method&&e.method()})})}const _api={getPressedKeyString:getPressedKeyString,setScope:setScope,getScope:getScope,deleteScope:deleteScope,getPressedKeyCodes:getPressedKeyCodes,getAllKeyCodes:getAllKeyCodes,isPressed:isPressed,filter:filter,trigger:trigger,unbind:unbind,keyMap:_keyMap,modifier:_modifier,modifierMap:modifierMap};for(const f0 in _api)Object.prototype.hasOwnProperty.call(_api,f0)&&(hotkeys[f0]=_api[f0]);if("undefined"!=typeof window){const g0=window.hotkeys;hotkeys.noConflict=e=>(e&&window.hotkeys===hotkeys&&(window.hotkeys=g0),hotkeys),window.hotkeys=hotkeys}module.exports=hotkeys;