import inputManager from"./../common/inputmanager.js";import browser from"./../browser.js";import dom from"./../dom.js";function notifyApp(e){inputManager.notify(null,e)}let preventDefaultOnGamePadA=!browser.edge,keyDownTarget;function onGamepadAKeyDown(e,key){var target=e.target;switch(!preventDefaultOnGamePadA&&isEditable(target)||e.preventDefault(),target.tagName){case"INPUT":case"SELECT":case"TEXTAREA":return}if(target===keyDownTarget)return target.classList.contains("longpress")?checkForLongPress(e,key,"menu")?void 0:void e.preventDefault():void(e.repeat||sendCommandFromEvent("select",e));e.preventDefault()}function onGamepadAKeyUp(e,wasLongPressed){var target=e.target;switch(!preventDefaultOnGamePadA&&isEditable(target)||e.preventDefault(),target.tagName){case"INPUT":case"SELECT":case"TEXTAREA":return}target.classList.contains("longpress")&&(wasLongPressed||sendCommandFromEvent("select",e),e.preventDefault())}function sendCommandFromEvent(name,e){var options={sourceElement:e.target,repeat:e.repeat,originalEvent:e};inputManager.trigger(name,options)&&e.preventDefault()}function isEditable(elem){var readOnly=elem.readOnly;if(!readOnly&&!1===readOnly)switch(elem.type){case"checkbox":case"radio":case"file":case"hidden":case"range":return!1;default:return!0}return!1}let isNativeWindows="winjs"===globalThis.appMode,handleMultiMediaKeys=!browser.electron,goBackOnBackspace=browser.electron||isNativeWindows||browser.tv||"embyclient"===globalThis.appMode,appMode=globalThis.appMode,IsBrowser=!browser.electron&&"standalone"===(appMode||"standalone"),isNativeTizen="tizen"===globalThis.appMode,isNativeLG="webos"===globalThis.appMode,repeatingKey,repeatKeyFirstInputTime=0,lastRepeatingKeyTime=0,repeatKeyCount=0,repeatKeyLongPressed=!1,EnableRepeatWorkaround=browser.edge||isNativeTizen||isNativeLG||"android"===appMode,LongPressTimeout=500;function setEventRepeatProperty(e){try{Object.defineProperty(e,"repeat",{value:!0})}catch(err){}}function throttleRepeatingKey(key,e){var timestamp=e.timeStamp;let isRepeat=e.repeat;if(EnableRepeatWorkaround&&!isRepeat&&key===repeatingKey&&(isRepeat=!0,setEventRepeatProperty(e)),isRepeat&&key===repeatingKey){if(timestamp-lastRepeatingKeyTime<(repeatKeyCount?80:200))return e.preventDefault(),!0;repeatKeyCount++}else repeatingKey=key,repeatKeyCount=0,repeatKeyFirstInputTime=timestamp,repeatKeyLongPressed=!1;return lastRepeatingKeyTime=timestamp,!1}function isLongPress(e,key){if((throttleRepeatingKey(key,e),e.repeat&&!repeatKeyLongPressed)&&e.timeStamp-repeatKeyFirstInputTime>=LongPressTimeout)return repeatKeyLongPressed=!0;return!1}function checkForLongPress(e,key,command){if(isLongPress(e,key))return console.log("executing command "+command+" following long press of key: "+key),sendCommandFromEvent(command,e),!0}function getKeyFromKeyCode(keyCode){switch(keyCode){case 13:return"Enter";case 19:return"Pause";case 27:return"Back";case 32:return" ";case 33:return"PageUp";case 34:return"PageDown";case 37:return"ArrowLeft";case 39:return"ArrowRight";case 38:return"ArrowUp";case 40:return"ArrowDown";case 195:return"GamepadA";case 196:return"GamepadB";case 197:return"GamepadX";case 198:return"GamepadY";case 199:return"GamepadRightShoulder";case 200:return"GamepadLeftShoulder";case 201:return"GamepadLeftTrigger";case 202:return"GamepadRightTrigger";case 203:return"GamepadDPadUp";case 204:return"GamepadDPadDown";case 205:return"GamepadDPadLeft";case 206:return"GamepadDPadRight";case 207:return"GamepadMenu";case 208:return"GamepadView";case 209:return"GamepadLeftThumbstickButton";case 210:return"GamepadRightThumbstickButton";case 211:return"GamepadLeftThumbStickUp";case 212:return"GamepadLeftThumbStickDown";case 213:return"GamepadLeftThumbStickRight";case 214:return"GamepadLeftThumbStickLeft";case 403:return"ColorF0Red";case 404:return"ColorF1Green";case 405:return"ColorF2Yellow";case 406:return"ColorF3Blue";case 412:return"MediaRewind";case 413:return"Stop";case 415:return"Play";case 416:return"MediaRecord";case 417:return"MediaFastForward";case 427:return"ChannelUp";case 428:return"ChannelDown";case 447:return"VolumeUp";case 448:return"VolumeDown";case 449:return"VolumeMute";case 457:case 1056:return"Info";case 458:return"Guide";case 459:case 460:return"Subtitle";case 461:case 10009:return"Back";case 10073:return"ChannelList";case 10135:return"Tools";case 10140:return"PictureSize";case 10200:return"Teletext";case 10221:return"Caption";case 10225:return"Search";case 10232:return"MediaTrackPrevious";case 10233:return"MediaTrackNext";case 10252:return"MediaPlayPause"}if(null==keyCode)return null;switch(keyCode){case globalThis.VK_BACK_SPACE:return"Back";case globalThis.VK_LEFT:return"Left";case globalThis.VK_UP:return"Up";case globalThis.VK_RIGHT:return"Right";case globalThis.VK_DOWN:return"Down";case globalThis.VK_MENU:return"ContextMenu";case globalThis.VK_TRACK_NEXT:return"MediaTrackNext";case globalThis.VK_TRACK_PREV:return"MediaTrackPrevious";case globalThis.VK_INFO:return"Info";case globalThis.VK_STOP:return"MediaStop";case globalThis.VK_PLAY:return"MediaPlay";case globalThis.VK_PAUSE:return"MediaPause";case globalThis.VK_FAST_FWD:return"MediaFastForward";case globalThis.VK_REWIND:return"MediaRewind";default:return null}}function handleAlphaNumInput(e){var val,value=e.keyCode;(8===value||32===value||48<=value&&value<=57||65<=value&&value<=90)&&"INPUT"===(e=e.target).tagName&&e.readOnly&&(e=e,8===value?(val=e.value,e.value=val.length?val.substring(0,val.length-1):""):(-1===e.maxLength||e.value.length