define(["exports","./../modules/common/playback/playbackmanager.js","./../modules/focusmanager.js","./../modules/cardbuilder/cardbuilder.js","./../modules/common/imagehelper.js","./../modules/dom.js","./../modules/browser.js","./../modules/common/globalize.js","./../modules/common/datetime.js","./../modules/layoutmanager.js","./../modules/common/itemmanager/itemmanager.js","./../modules/loading/loading.js","./../modules/emby-apiclient/events.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/appheader/appheader.js","./../modules/mediainfo/mediainfo.js","./../modules/backdrop/backdrop.js","./playqueue.js","./tvplayqueue.js","./lyrics.js","./chapters.js","./../modules/approuter.js","./../modules/itemcontextmenu.js","./../modules/shortcuts.js","./../modules/common/inputmanager.js","./../modules/common/usersettings/usersettings.js","./../modules/input/mouse.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-tabs/emby-tabs.js","./../modules/emby-elements/emby-slider/emby-slider.js","./../modules/common/appsettings.js","./../modules/common/servicelocator.js","./../modules/input/keyboard.js","./../modules/viewmanager/baseview.js","./../modules/playback/osdcontroller.js","./../modules/common/playback/playersettingsmenu.js","./specialicons.js","./../modules/gesture/gesture.js","./../modules/colorjs/color.js"],function(_exports,_playbackmanager,_focusmanager,_cardbuilder,_imagehelper,_dom,_browser,_globalize,_datetime,_layoutmanager,_itemmanager,_loading,_events,_connectionmanager,_appheader,_mediainfo,_backdrop,_playqueue,_tvplayqueue,_lyrics,_chapters,_approuter,_itemcontextmenu,_shortcuts,_inputmanager,_usersettings,_mouse,_embyScroller,_paperIconButtonLight,_embyTabs,_embySlider,_appsettings,_servicelocator,_keyboard,_baseview,_osdcontroller,_playersettingsmenu,_specialicons,_gesture,_color){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!videoosd/videoosd.css","css!!tv|videoosd/videoosd_nontv.css","css!tv|videoosd/videoosd_tv.css"]);var headerElement=document.querySelector(".skinHeader"),backgroundContainer=document.querySelector(".backgroundContainer"),headerRight=document.querySelector(".headerRight");function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}var SupportsRadialGradient=CSS.supports("background-image","linear-gradient(to bottom,rgba(200, 194, 177, 1) 0%, rgba(122, 92, 92, 1) 100%)");var deviceMemory,platform,enableTabAnimation=!((cores=navigator.hardwareConcurrency||4)<4||(2400<=(screen.width||screen.availWidth||0)||1400<=(screen.height||screen.availHeight||0))&&cores<6||(deviceMemory=navigator.deviceMemory||2)<2||(platform=(navigator.platform||"").toLowerCase(),"android"===globalThis.appMode&&(cores<4||deviceMemory<2||platform.includes("armv7")))),fadeSize="1.5%",fadeDuration=300;function isDisplayingLocalVideo(player,mediaType){return"Video"===mediaType||!mediaType&&!!player&&_playbackmanager.default.isPlayingMediaType(["Video"],player)}function getRewindIconLTR(){switch(_usersettings.default.skipBackLength()){case 5e3:return"";case 1e4:return"";case 3e4:return"";default:return""}}function getForwardIconLTR(){switch(_usersettings.default.skipForwardLength()){case 5e3:return"";case 1e4:return"";case 3e4:return"";default:return""}}function getBaseActionSheetOptions(positionTo,isLocalVideo){isLocalVideo=!(!_layoutmanager.default.tv||!isLocalVideo);return{positionTo:positionTo,positionX:isLocalVideo?"right":null,positionY:"above",transformOrigin:isLocalVideo?"right bottom":"center bottom",noTextWrap:!0,removeFromPlayQueue:!1}}function showMoreMenu(item,button,isLocalVideo){_connectionmanager.default.getApiClient(item.ServerId).getCurrentUser().then(function(user){return _itemcontextmenu.default.show(function(item,user,button,isLocalVideo){return Object.assign(getBaseActionSheetOptions(button,isLocalVideo),{items:[item],open:!1,play:!1,playAllFromHere:!1,queueAllFromHere:!1,cancelTimer:!1,record:!1,deleteItem:!1,shuffle:!1,instantMix:!1,user:user,share:!0,queue:!1,editSubtitles:!1,convert:!1,refreshMetadata:!1,identify:!1})}(item,user,button,isLocalVideo))})}function focusMainOsdControls(instance){console.log("focusMainOsdControls");var elem=instance.nowPlayingPositionSlider;elem.disabled?_focusmanager.default.autoFocus(instance.videoOsdBottomMaincontrols):_focusmanager.default.focus(elem)}function hideOrShowAll(instance,elems,hide,focusedElement){for(var wasFocused,i=0,length=elems.length;i'+text+""}function getSecondaryName(item,enableLinkButton){var title=_itemmanager.default.getDisplayName(item,{includeParentInfo:"Program"!==item.Type,includeIndexNumber:"Program"!==item.Type});return enableLinkButton?getTextActionButton(item,title):title}function getDefaultOsdContentSection(){return _layoutmanager.default.tv||1056<=_dom.default.getWindowSize().innerWidth?"playqueue":null}function destroyPlayQueue(instance){var playQueue=instance.playQueue;playQueue&&(playQueue.destroy(),instance.playQueue=null)}function destroyLyricsRenderer(instance){var lyricsRenderer=instance.lyricsRenderer;lyricsRenderer&&(lyricsRenderer.destroy(),instance.lyricsRenderer=null)}function destroyChaptersRenderer(instance){var chaptersRenderer=instance.chaptersRenderer;chaptersRenderer&&(chaptersRenderer.destroy(),instance.chaptersRenderer=null)}function destroyStats(instance){var statsOverlay=instance.statsOverlay;statsOverlay&&(statsOverlay.destroy(),instance.statsOverlay=null)}function destroySubtitleAppearanceDialog(instance){var subtitleAppearanceDialog=instance.subtitleAppearanceDialog;subtitleAppearanceDialog&&(subtitleAppearanceDialog.destroy(),instance.subtitleAppearanceDialog=null)}function destroySubtitleOffsetDialog(instance){var subtitleOffsetDialog=instance.subtitleOffsetDialog;subtitleOffsetDialog&&(subtitleOffsetDialog.destroy(),instance.subtitleOffsetDialog=null)}function clearBlurFromDocumentElement(){backgroundContainer&&(backgroundContainer.style.backgroundImage=null,backgroundContainer.style.backgroundColor=null)}function shouldOsdBeShown(instance){return!_layoutmanager.default.tv||!!instance.currentVisibleMenu||!(instance=instance.currentPlayer)||isDisplayingLocalVideo(instance)}function onTopMuteButtonClick(e){if(!_layoutmanager.default.tv){e=e.target.closest(".videoOsdVolumeControls-top").querySelector(".videoOsdVolumeSliderWrapper-top");if("1"===window.getComputedStyle(e,null).getPropertyValue("--volumehideenabled"))return void setTimeout(function(){this.isTopVolumeTransitioning||_playbackmanager.default.toggleMute(this.currentPlayer)}.bind(this),20)}_playbackmanager.default.toggleMute(this.currentPlayer)}function onOsdBottomScroll(){this.showOsd()}function onVolumeSliderInputOrChange(e){e=e.target;_playbackmanager.default.setVolume(parseFloat(e.value),this.currentPlayer),this.showOsd()}var cores="ontouchstart"in document.documentElement,DefaultPointerType="undefined"!=typeof PointerEvent&&"pointerType"in PointerEvent.prototype?null:cores?"touch":"mouse";function rewind(instance,animate){var player=instance.currentPlayer;animate&&((animate=instance.view.querySelector(".osd-rew-animationtext")).innerHTML="-"+parseInt(_usersettings.default.skipBackLength()/1e3),fadeInAndOut(animate)),_playbackmanager.default.rewind(player)}function fadeInAndOut(elem){if(elem.animate)try{elem.animate([{opacity:"1",offset:.5},{opacity:"0",transform:"none",offset:1}],{duration:600,iterations:1,easing:"ease-out"})}catch(err){console.log("error animating element: "+err)}}function fastForward(instance,animate){var player=instance.currentPlayer;animate&&((animate=instance.view.querySelector(".osd-ff-animationtext")).innerHTML="+"+parseInt(_usersettings.default.skipForwardLength()/1e3),fadeInAndOut(animate)),_playbackmanager.default.fastForward(player)}function onOsdClick(e,instance,elementToFocusIfShowing,showOsdIfNoEvent){var target=e.target;if(target.closest(".videoOsdBottom"))showOsdIfNoEvent&&instance.showOsd();else if(!target.closest("button,.videoosd-tabsslider"))return target=instance.currentPlayer,!e.button&&target&&isDisplayingLocalVideo(target)?(instance.showOsd(null,elementToFocusIfShowing),0<=instance.bottomTabs.selectedIndex()?instance.bottomTabs.selectedIndex(-1):(console.log("videoosd - playPause from onOsdClick"),_playbackmanager.default.playPause(target))):showOsdIfNoEvent&&instance.showOsd(),1}function toggleStats(instance){Emby.importModule("./modules/playerstats/playerstats.js").then(function(PlayerStats){var player=instance.currentPlayer;player&&(instance.statsOverlay?instance.statsOverlay.toggle():(instance.statsOverlay=new PlayerStats({player:player,view:instance.view}),_events.default.on(instance.statsOverlay,"close",function(){this.currentVisibleMenu&&!this.upNextContainer._visible&&_focusmanager.default.focus(this.btnVideoOsdSettingsRight)}.bind(instance))))})}function canSetBottomTabIndex(instance,index){return-1===index||!instance.bottomTabButtons[index].classList.contains("hide")}function setBottomTabIndex(instance,index){var bottomTabButtons,bottomTabs=instance.bottomTabs;-1===index?(document.documentElement.classList.remove("osd-tab-guide"),bottomTabs.selectedIndex(index)):(bottomTabButtons=instance.bottomTabButtons)[index].classList.contains("hide")||(instance.showOsd(null,bottomTabButtons[index]),bottomTabs.selectedIndex(index),_focusmanager.default.focus(bottomTabButtons[index]))}function onRewindInputCommand(e,instance){var isOsdVisible=instance.currentVisibleMenu;shouldOsdBeShown(instance)?instance.showOsd():isOsdVisible||e.detail.repeat||(rewind(instance),e.preventDefault())}function onFastForwardInputCommand(e,instance){shouldOsdBeShown(instance)?instance.showOsd():instance.currentVisibleMenu||e.detail.repeat||(fastForward(instance),e.preventDefault())}function startOsdHideTimer(instance,timeoutMs){var currentPlayer,isLocalVideo;stopOsdHideTimer(instance),instance.paused||(isLocalVideo=isDisplayingLocalVideo(currentPlayer=instance.currentPlayer))&&null!=currentPlayer&¤tPlayer.isLocalPlayer&&(0===timeoutMs||_focusmanager.default.hasExclusiveFocusScope()||(instance.osdHideTimeout=setTimeout(instance.boundOnOsdHideTimeout,timeoutMs||(isLocalVideo?4e3:1e4))))}function stopOsdHideTimer(instance){var osdHideTimeout=instance.osdHideTimeout;osdHideTimeout&&(clearTimeout(osdHideTimeout),instance.osdHideTimeout=null)}var systemUIHidden,orientationLocked=!1;function onOrientationChangeSuccess(){orientationLocked=!0}function onOrientationChangeError(err){orientationLocked=!0,console.log("error locking orientation: "+err)}function setSystemUIHidden(hidden){if(systemUIHidden!==hidden&&(systemUIHidden=hidden,_servicelocator.appHost.setSystemUIHidden))try{_servicelocator.appHost.setSystemUIHidden(hidden)}catch(err){console.log("Error in setSystemUIHidden: "+err)}}var enableOrientationLock=!_browser.default.tv;function lockOrientation(type){var _screen$orientation;enableOrientationLock&&!function(orientation){var promise;console.log("attempting to lock orientation to: "+orientation);try{return(promise=screen.orientation&&screen.orientation.lock?screen.orientation.lock(orientation):promise)&&promise.then?promise:Promise.resolve()}catch(err){return Promise.reject(err)}}(type=type||(null==(_screen$orientation=screen.orientation)?void 0:_screen$orientation.type)||"landscape").then(onOrientationChangeSuccess,onOrientationChangeError)}function unlockOrientation(){if(enableOrientationLock&&orientationLocked&&screen.orientation&&screen.orientation.unlock){console.log("unlocking orientation");try{screen.orientation.unlock()}catch(err){console.log("error unlocking orientation: "+err)}orientationLocked=!1}}function getTabOnItemUpdatedData(instance){return{item:instance.osdController.currentItem,displayItem:instance.osdController.currentDisplayItem,mediaSource:instance.osdController.currentMediaSource,currentPlayer:instance.currentPlayer,currentChapters:instance.osdController.currentChapters,currentDisplayChapters:instance.osdController.currentDisplayChapters}}function confirmPlaybackCorrection(instance){var player,wasPaused,options;return _usersettings.default.get("confirmplaybackcorrection",!1)?Promise.resolve():(player=instance.currentPlayer,(wasPaused=_playbackmanager.default.paused(player))||_playbackmanager.default.pause(player),options={title:_globalize.default.translate("HeaderPlaybackCorrection"),text:_globalize.default.translate("PlaybackCorrectionConfirm")+"\n\n"+_globalize.default.translate("PlaybackCorrectionDescription")+"\n\n"+_globalize.default.translate("PlaybackCorrectionDescription2"),confirmText:_globalize.default.translate("HeaderAttemptPlaybackCorrection"),primary:"cancel"},Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){return Promise.resolve()},function(){return wasPaused||_playbackmanager.default.unpause(player),Promise.reject()}))}function showSubtitleOffset(instance){Emby.importModule("./modules/subtitleoffsetdialog/subtitleoffsetdialog.js").then(function(SubtitleOffsetDialog){var positionTo,player=instance.currentPlayer;player&&!instance.subtitleOffsetDialog&&(positionTo=instance.btnSubtitles,instance.subtitleOffsetDialog=new SubtitleOffsetDialog(Object.assign(getBaseActionSheetOptions(positionTo,!0),{player:player})),SubtitleOffsetDialog=function(){destroySubtitleOffsetDialog(instance)},instance.subtitleOffsetDialog.show().then(SubtitleOffsetDialog,SubtitleOffsetDialog))})}function showSubtitleAppearance(instance){Emby.importModule("./modules/subtitleappearancedialog/subtitleappearancedialog.js").then(function(SubtitleAppearanceDialog){var positionTo,player=instance.currentPlayer;player&&!instance.subtitleAppearanceDialog&&(positionTo=instance.btnSubtitles,SubtitleAppearanceDialog=new SubtitleAppearanceDialog(Object.assign(getBaseActionSheetOptions(positionTo,!0),{player:player,apiClient:_connectionmanager.default.getApiClient(instance.osdController.currentItem)})),positionTo=function(){destroySubtitleAppearanceDialog(instance)},(instance.subtitleAppearanceDialog=SubtitleAppearanceDialog).show().then(positionTo,positionTo))})}function onMoreClick(e){e=e.target;showMoreMenu(this.osdController.currentItem,e,isDisplayingLocalVideo(this.currentPlayer))}function onSettingsOption(selectedOption){var instance=this.instance,button=this.button,player=instance.currentPlayer;"stats"===selectedOption?toggleStats(instance):"subtitleoffset"===selectedOption?showSubtitleOffset(instance):"subtitleappearance"===selectedOption?showSubtitleAppearance(instance):"more"===selectedOption?onMoreClick.call(instance,{target:button}):"triggertranscodingfallback"===selectedOption&&function(instance,player){confirmPlaybackCorrection(instance).then(function(){_playbackmanager.default.triggerTranscodingFallback(player)})}(instance,player)}function onSettingsButtonClick(e){var mediaType,isLocalVideo,e=e.target,player=this.currentPlayer;player&&!_focusmanager.default.hasExclusiveFocusScope()&&(isLocalVideo=isDisplayingLocalVideo(player,mediaType=this.osdController.currentItem.MediaType),_playersettingsmenu.default.show(Object.assign(getBaseActionSheetOptions(e,isLocalVideo),{player:player,stats:!0,onOption:onSettingsOption.bind({instance:this,button:e}),mediaType:mediaType,speed:"Video"!==mediaType||_layoutmanager.default.tv,more:isLocalVideo})).then(this.boundShowOsdDefaultParams,this.boundShowOsdDefaultParams))}function showAudioTrackSelection(e){var currentIndex,audioTracks,instance=this,e=e.target,player=instance.currentPlayer;player&&(audioTracks=_playbackmanager.default.audioTracks(player),currentIndex=_playbackmanager.default.getAudioStreamIndex(player),audioTracks=audioTracks.map(function(stream){var opt={name:stream.DisplayTitle,secondaryText:stream.Title&&!(stream.DisplayTitle||"").toLowerCase().includes((stream.Title||"").toLowerCase())?stream.Title:null,id:stream.Index};return stream.Index===currentIndex&&(opt.selected=!0),opt}),e=e,instance.showOsd(),showActionSheet(Object.assign(getBaseActionSheetOptions(e,!0),{items:audioTracks,title:_globalize.default.translate("Audio"),hasItemSelectionState:!0,fields:["Name","ShortOverview"],noTextWrap:!1})).then(function(id){instance.showOsd();id=parseInt(id);id!==currentIndex&&_playbackmanager.default.setAudioStreamIndex(id,player)},instance.boundShowOsdDefaultParams))}function supportsSubtitleDownloading(instance){return instance.currentPlayerSupportedCommands.includes("RefreshMediaSource")}function showSubtitleTrackSelection(e){var instance=this,e=e.target,player=instance.currentPlayer,streams=_playbackmanager.default.subtitleTracks(player),currentIndex=_playbackmanager.default.getSubtitleStreamIndex(player),subtitleIcon=(null==currentIndex&&(currentIndex=-1),streams.unshift({Index:-1,DisplayTitle:_globalize.default.translate("Off")}),_itemmanager.default.getDefaultIcon({Type:"MediaStream",StreamType:"Subtitle"})),menuItems=streams.map(function(stream){var opt={name:stream.DisplayTitle,secondaryText:stream.Title&&!(stream.DisplayTitle||"").toLowerCase().includes((stream.Title||"").toLowerCase())?stream.Title:null,id:stream.Index,icon:subtitleIcon};return stream.Index===currentIndex&&(opt.selected=!0),opt}),positionTo=e,currentItem=instance.osdController.currentItem,streams=_connectionmanager.default.getApiClient(currentItem);streams.getCurrentUser().then(function(user){supportsSubtitleDownloading(instance)&&_itemmanager.default.canDownloadSubtitles(currentItem,user)&&menuItems.push({name:_globalize.default.translate("SearchForSubtitles"),id:"search",icon:""});var currentSubtitleStream,format,user=[],supportedCommands=_playbackmanager.default.getSupportedCommands(player);supportedCommands.includes("SetSubtitleAppearance")&&player.isLocalPlayer&&(format=((null==(currentSubtitleStream=_playbackmanager.default.getSubtitleStream(player))?void 0:currentSubtitleStream.Codec)||"").toLowerCase(),null!=currentSubtitleStream)&¤tSubtitleStream.IsTextSubtitleStream&&["Hls","External","Embed"].includes(currentSubtitleStream.DeliveryMethod||"")&&!["ass","ssa"].includes(format)&&user.push({name:_globalize.default.translate("HeaderSubtitleAppearance"),id:"subtitleappearance",icon:""}),supportedCommands.includes("SetSubtitleOffset")&&(currentSubtitleStream=_playbackmanager.default.getSubtitleStream(player))&&("External"===currentSubtitleStream.DeliveryMethod||"Hls"===currentSubtitleStream.DeliveryMethod)&&user.push({name:_globalize.default.translate("HeaderSubtitleOffset"),id:"subtitleoffset",secondaryText:(format=_playbackmanager.default.getSubtitleOffset(player),1e3<=Math.abs(format)?(format/=1e3).toFixed(1)+" seconds":format+" ms"),icon:""}),0=introInfo.start&¤tTime=endDate.getTime()&&(console.log("program info needs to be refreshed"),state=_playbackmanager.default.getPlayerState(player),onStateChanged.call(player,{type:"updatemetadata"},state))}catch(e){console.log("Error parsing date: "+item.EndDate)}}}(this,item))}var fiftyMinuteTicks=3e10,fortyMinuteTicks=24e9;function showComingUpNextIfNeeded(player,currentItem,currentTimeTicks,runtimeTicks,isStopped,creditsInfo){(runtimeTicks&¤tTimeTicks||isStopped)&&"Episode"===currentItem.Type&&self.hasNextTrack&&(currentItem=runtimeTicks-currentTimeTicks,(!comingUpNextDisplayed||isStopped)&&(creditsInfo=function(runtimeTicks,creditsInfo){return(creditsInfo=(null==creditsInfo?void 0:creditsInfo.start)||0)&&creditsInfo=.7*windowSize.innerWidth&&fastForward(self,!0),e.preventDefault(),e.stopPropagation())}},{passive:!0}),_dom.default.addEventListener(buttonMute,"click",function(){_playbackmanager.default.toggleMute(this.currentPlayer)}.bind(self),{passive:!0}),_dom.default.addEventListener(self.osdBottomElement,"scroll",onOsdBottomScroll.bind(self),{passive:!0,capture:!0}),_dom.default.addEventListener(self.osdBottomElement,"scrollanimate",onOsdBottomScroll.bind(self),{passive:!0,capture:!0}),_dom.default.addEventListener(brightnessSlider,"change",function(){_playbackmanager.default.setBrightness(parseFloat(this.value),self.currentPlayer),self.showOsd()},{passive:!0}),_dom.default.addEventListener(brightnessSlider,"input",function(){_playbackmanager.default.setBrightness(parseFloat(this.value),self.currentPlayer),self.showOsd()},{passive:!0}),_dom.default.addEventListener(self.nowPlayingVolumeSlider,"change",onVolumeSliderInputOrChange.bind(self),{passive:!0}),_dom.default.addEventListener(self.nowPlayingVolumeSlider,"input",onVolumeSliderInputOrChange.bind(self),{passive:!0}),self.nowPlayingPositionSlider.getBubbleHtml=function(value){return self.showOsd(),self.osdController.getPositionBubbleHtml(value,currentRuntimeTicks)},_dom.default.addEventListener(self.osdBottomElement,transitionEndEventName,function(e){var elem=e.currentTarget;elem===e.target&&elem.classList.contains("videoOsdBottom-hidden")&&(elem.classList.add("hide"),headerElement.classList.add("hide"),setBottomTabIndex(self,-1),onTabTransitionEnd.call(self.tabContainersElem,{target:self.tabContainersElem,currentTarget:self.tabContainersElem}),2===self.currentLockState&&self.setLockState(1),view.dispatchEvent(new CustomEvent("video-osd-hide",{bubbles:!0})))},{passive:!0}),_dom.default.addEventListener(btnPreviousTrack,"click",function(){_playbackmanager.default.previousTrack(self.currentPlayer)},{passive:!0});for(var _i14=0,_length14=stopButtons.length;_i14<_length14;_i14++)stopButtons[_i14].addEventListener("click",onStop);function onNextTrackClick(){_playbackmanager.default.nextTrack(self.currentPlayer)}function onRewindButtonClick(){rewind(self,!0)}_dom.default.addEventListener(self.btnPause,"click",function(){console.log("videoosd - playPause from click event"),_playbackmanager.default.playPause(self.currentPlayer)},{passive:!0}),_dom.default.addEventListener(btnNextTrack,"click",onNextTrackClick,{passive:!0}),_dom.default.addEventListener(btnNextTrackTopRight,"click",onNextTrackClick,{passive:!0});for(var _i15=0,_length15=rewindButtons.length;_i15<_length15;_i15++)_dom.default.addEventListener(rewindButtons[_i15],"click",onRewindButtonClick,{passive:!0});function onFastForwardButtonClick(){fastForward(self,!0)}for(var _i16=0,_length16=fastForwardButtons.length;_i16<_length16;_i16++)_dom.default.addEventListener(fastForwardButtons[_i16],"click",onFastForwardButtonClick,{passive:!0});function onRepeatModeClick(){var player;(player=self.currentPlayer)&&_playbackmanager.default.toggleRepeatMode(player)}function onShuffleClick(){var player;(player=self.currentPlayer)&&_playbackmanager.default.toggleShuffle(player)}function onCloseRequestedFromTab(){setBottomTabIndex(self,-1)}function onTabTransitionEnd(e){var elem=e.currentTarget;elem===e.target&&elem.classList.contains("videoosd-tabcontainers-hidden")&&(elem.classList.add("hide"),self.osdBottomElement.classList.remove("videoosd-bottom-with-opentab"),(e=elem.querySelector(".videoosd-activetab"))&&e.classList.remove("videoosd-activetab"),focusMainOsdControls(self))}function setContentSection(sectionName,saveToUserSettings){currentOsdContentSectionName=sectionName;for(var sections=view.querySelectorAll(".osdContentSection"),_i17=0,_length17=sections.length;_i17<_length17;_i17++){var section=sections[_i17];section.getAttribute("data-contentsection")===sectionName?section.classList.remove("hide"):section.classList.add("hide")}for(var buttons=view.querySelectorAll(".osdContentSectionToggleButton"),_i18=0,_length18=buttons.length;_i18<_length18;_i18++){var button=buttons[_i18],icon=button.querySelector("i");button.getAttribute("data-contentsection")===sectionName?(button.classList.add("toggleButton-active"),icon.classList.add("toggleButtonIcon-active")):(button.classList.remove("toggleButton-active"),icon.classList.remove("toggleButtonIcon-active"))}var playQueue=self.playQueue,playQueue=("playqueue"===sectionName?playQueue&&playQueue.resume({}):playQueue&&playQueue.pause(),self.lyricsRenderer),playQueue=("lyrics"===sectionName?playQueue&&playQueue.resume({}):playQueue&&playQueue.pause(),self.chaptersRenderer),playQueue=("chapters"===sectionName?playQueue&&playQueue.resume({}):playQueue&&playQueue.pause(),self.osdBottomElement);_layoutmanager.default.tv?(sectionName&&"playqueue"!==sectionName&&"art"!==sectionName?playQueue.classList.add("videoOsdBottom-split"):playQueue.classList.remove("videoOsdBottom-split"),sectionName&&"lyrics"!==sectionName&&"art"!==sectionName?playQueue.classList.remove("videoOsdBottom-art"):playQueue.classList.add("videoOsdBottom-art")):sectionName&&"art"!==sectionName?(playQueue.classList.add("videoOsdBottom-split"),playQueue.classList.remove("videoOsdBottom-art")):(playQueue.classList.remove("videoOsdBottom-split"),playQueue.classList.add("videoOsdBottom-art")),!1!==saveToUserSettings&&(saveToUserSettings=null!=(playQueue=self.osdController.currentItem)&&playQueue.SupportsResume?"audiobooks":"music",_usersettings.default.osdContentSection(saveToUserSettings,sectionName))}function onContentSectionToggleButtonClick(e){this.classList.contains("toggleButton-active")?setContentSection("art"):setContentSection(this.getAttribute("data-contentsection"))}function onSkipIntroClickInternal(){var info=currentIntroInfo,player=self.currentPlayer;info&&player&&(IntroEndToleranceTicks=IntroEndToleranceTicksSafe,_playbackmanager.default.seek(info.end,player),showHideSkipIntro(!1,!1),self.hideOsd())}function onLockClick(){var lockState=self.currentLockState;switch(lockState){case 0:case 1:lockState++;break;default:lockState=0}self.setLockState(lockState)}_dom.default.addEventListener(self.btnPlaybackSpeed,"click",onSpeedClick.bind(self),{passive:!0}),_dom.default.addEventListener(btnRepeatModeTopRight,"click",onRepeatModeClick,{passive:!0}),_dom.default.addEventListener(btnRepeatModeBottom,"click",onRepeatModeClick,{passive:!0}),_dom.default.addEventListener(btnShuffleTopRight,"click",onShuffleClick,{passive:!0}),_dom.default.addEventListener(btnShuffleBottom,"click",onShuffleClick,{passive:!0}),_dom.default.addEventListener(btnOsdMoreBottom,"click",onMoreClick.bind(self),{passive:!0}),_dom.default.addEventListener(btnOsdMoreTitle,"click",onMoreClick.bind(self),{passive:!0}),_dom.default.addEventListener(self.btnAudio,"click",showAudioTrackSelection.bind(self),{passive:!0}),_dom.default.addEventListener(self.btnSubtitles,"click",showSubtitleTrackSelection.bind(self),{passive:!0}),self.bottomTabs.getFocusableElements=videoOsdBottomButtons.getFocusableElements=function(parent,activeElement,direction,options){switch(direction){case 0:case 1:case 2:case 3:return null;default:return canSetBottomTabIndex(self,0)?[self.bottomTabs.querySelector(".videoosd-tab-button-info")]:null}},self.bottomTabs.addEventListener("beforetabchange",function(e){var previousPanel,index=e.detail.selectedTabIndex,e=e.detail.previousIndex,newPanel=tabContainers[index];null!=e&&((previousPanel=tabContainers[e])&&newPanel&&previousPanel.classList.remove("videoosd-activetab"),previousPanel=self.bottomTabControllers[e])&&previousPanel.onPause(),newPanel?(function(index,forceRefresh){var tabResumeOptions=getTabOnItemUpdatedData(self),bottomTabControllers=(tabResumeOptions.refresh=forceRefresh,tabResumeOptions.autoFocus=focusOnTabChange,focusOnTabChange=!1,5===index?document.documentElement.classList.add("osd-tab-guide"):document.documentElement.classList.remove("osd-tab-guide"),self.bottomTabControllers);if(bottomTabControllers[index])return bottomTabControllers[index].onResume(tabResumeOptions);Emby.importModule(["./videoosd/infotab.js","./videoosd/chapterstab.js","./videoosd/peopletab.js","./videoosd/playqueuetab.js","./videoosd/onnowtab.js","./videoosd/guidetab.js"][index]).then(function(ControllerFactory){ControllerFactory=new ControllerFactory(tabContainers[index]);return bottomTabControllers[index]=ControllerFactory,tabResumeOptions.refresh=!0,_events.default.on(ControllerFactory,"closerequested",onCloseRequestedFromTab),ControllerFactory.onResume(tabResumeOptions)})}(index),newPanel.classList.add("videoosd-activetab"),self.tabContainersElem.classList.remove("hide"),self.tabContainersElem.offsetWidth,self.tabContainersElem.classList.remove("videoosd-tabcontainers-hidden"),self.osdBottomElement.classList.add("videoosd-bottom-with-opentab"),null!=e&&enableTabAnimation&&newPanel.animate&&5!==index&&5!==e&&(index\n \n \n ',elem.querySelector(".btnPip").addEventListener("click",function(){_playbackmanager.default.togglePictureInPicture(instance.currentPlayer)})),elem.classList.remove("hide")}(this);var videoOsdVolumeSliderWrapper=(videoOsdVolumeSliderWrapper=this.boundOnPlayerChange)||(this.boundOnPlayerChange=function(e,player){this.bindToPlayer(player),setBottomTabIndex(this,-1)}.bind(this)),elem=(_events.default.on(_playbackmanager.default,"playerchange",videoOsdVolumeSliderWrapper),this.bindToPlayer(_playbackmanager.default.getCurrentPlayer(),!0),this.currentPlayer),elem=(elem&&!options.refresh&&(isLocalVideo=isDisplayingLocalVideo(elem,_this$osdController$c=null==(_this$osdController$c=this.osdController.currentItem)?void 0:_this$osdController$c.MediaType),this.updateTransparency(elem,this.lastPlayerState||{},_this$osdController$c,isLocalVideo)),this.view),_this$osdController$c=(_this$osdController$c=this.boundPointerMove)||(this.boundPointerMove=function(e){var eventX,obj;"touch"!==(e.pointerType||DefaultPointerType)&&(eventX=e.screenX||0,e=e.screenY||0,(obj=this.lastPointerMoveData)?Math.abs(eventX-obj.x)<10&&Math.abs(e-obj.y)<10||(obj.x=eventX,obj.y=e,this.showOsd()):(this.lastPointerMoveData={x:eventX,y:e},this.showOsd()))}.bind(this));_dom.default.addEventListener(document,window.PointerEvent?"pointermove":"mousemove",_this$osdController$c,{passive:!0});var isLocalVideo=(isLocalVideo=this.boundPointerEnter)||(this.boundPointerEnter=function(e){"touch"!==(e.pointerType||DefaultPointerType)&&(this.mouseOverButton=null!=e.target.closest("button,input,a"))}.bind(this));_dom.default.addEventListener(elem,window.PointerEvent?"pointerenter":"mouseenter",isLocalVideo,{passive:!0,capture:!0});_this$osdController$c=(_this$osdController$c=this.boundPointerLeave)||(this.boundPointerLeave=function(e){this.mouseOverButton=null}.bind(this));_dom.default.addEventListener(elem,window.PointerEvent?"pointerleave":"mouseleave",_this$osdController$c,{passive:!0,capture:!0}),function(view){var activeElement=document.activeElement;if(activeElement&&!view.contains(activeElement))try{activeElement.blur()}catch(err){console.log("Error blurring element from previous view: "+err)}}(elem);isLocalVideo=(isLocalVideo=this.boundWindowKeyDown)||(this.boundWindowKeyDown=function(e){var key=_keyboard.default.normalizeKeyFromEvent(e),target=e.target;switch(key){case" ":return _focusmanager.default.hasExclusiveFocusScope()?void 0:(this.currentVisibleMenu&&!target.closest(".videoOsdPositionSlider")&&this.showOsd(),void(target.closest("BUTTON")||e.repeat||this.nowPlayingPositionSlider.dragging||(console.log("videoosd - playPause from onWindowKeyDown"),_playbackmanager.default.playPause(this.currentPlayer),shouldOsdBeShown(this)&&setTimeout(this.boundShowOsdDefaultParams,100))));case"b":case"B":if(!_focusmanager.default.hasExclusiveFocusScope()&&e.ctrlKey)return e.shiftKey?(e.preventDefault(),void rewind(this)):(e.preventDefault(),void _playbackmanager.default.previousChapter(this.currentPlayer));break;case"f":case"F":if(!_focusmanager.default.hasExclusiveFocusScope()){if(e.ctrlKey)return e.shiftKey?(e.preventDefault(),void fastForward(this)):(e.preventDefault(),void _playbackmanager.default.nextChapter(this.currentPlayer));_playbackmanager.default.toggleFullscreen(this.currentPlayer)}break;case"m":case"M":_focusmanager.default.hasExclusiveFocusScope()||_playbackmanager.default.toggleMute(this.currentPlayer)}}.bind(this));_dom.default.addEventListener(window,"keydown",isLocalVideo,{}),_mouse.default.requestMouseListening("videoosd")},VideoOsd.prototype.onPause=function(options){_baseview.default.prototype.onPause.apply(this,arguments),document.body.classList.remove("longpress"),destroyOsdResizeObserver(this);for(var statsOverlay=this.statsOverlay,statsOverlay=(statsOverlay&&statsOverlay.enabled(!1),destroySubtitleOffsetDialog(this),destroySubtitleAppearanceDialog(this),this.boundWindowKeyDown),_instance$headerRight=(statsOverlay&&_dom.default.removeEventListener(window,"keydown",statsOverlay,{}),null!=(_instance$headerRight=(statsOverlay=this).headerRightVolumeContainer)&&_instance$headerRight.remove(),(statsOverlay.headerRightVolumeContainer=null)!=(_instance$headerRight=statsOverlay.headerRightButtonContainer)&&_instance$headerRight.remove(),statsOverlay.headerRightButtonContainer=null,statsOverlay.topVolumeControls=null,statsOverlay.topVolumeSlider=null,statsOverlay.topMuteButton=null,headerElement.classList.remove("videoOsdHeader","videoOsdHeader-hidden","videoOsdHeader-locked","hide"),clearBlurFromDocumentElement(),this.boundPointerMove),statsOverlay=(_instance$headerRight&&_dom.default.removeEventListener(document,window.PointerEvent?"pointermove":"mousemove",_instance$headerRight,{passive:!0}),this.boundOnPlayerChange),bottomTabControllers=(statsOverlay&&_events.default.off(_playbackmanager.default,"playerchange",statsOverlay),this.bottomTabControllers),i=0,length=bottomTabControllers.length;i