import BaseTab from"./../modules/tabbedview/basetab.js";import"./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import events from"./../modules/emby-apiclient/events.js";import appHeader from"./../modules/appheader/appheader.js";import layoutManager from"./../modules/layoutmanager.js";import backdrop from"./../modules/backdrop/backdrop.js";import TvGuide from"./../modules/emby-elements/guide/guide.js";function onGuideFocus(e,detail){this._lastFocusInfo=detail,this.onFocusIn(detail.element)}function onGuideFocusOut(e,detail){this._lastFocusInfo=null,this.onFocusOut()}function GuideTab(view,params){BaseTab.apply(this,arguments),this.apiClient=connectionManager.getApiClient(params.serverId),this.view=view,this.params=params,layoutManager.tv&&view.classList.add("guideContainer-tv"),this.boundonGuideFocus=onGuideFocus.bind(this),this.boundonGuideFocusOut=onGuideFocusOut.bind(this)}require(["css!livetv/guide.css"]),Object.assign(GuideTab.prototype,BaseTab.prototype),GuideTab.prototype.getFocusPreviewItem=function(element){var focusInfo=this._lastFocusInfo;return focusInfo?.element===element?focusInfo.item:null},GuideTab.prototype.refetchItemForFocusPreview=function(){return!0},GuideTab.prototype.enableFocusPreview=function(){return!!layoutManager.tv},GuideTab.prototype.createFocusPreviewElement=function(){var elem=this.view.querySelector(".guideSelectedInfo");return this.fillFocusPreviewContainer(elem),elem.querySelector(".focusPreviewOverview").classList.add("guide-focusPreviewOverview"),elem},GuideTab.prototype.onResume=function(options){BaseTab.prototype.onResume.apply(this,arguments),options=options||{},appHeader.ensureVisible(),backdrop.clear();let guideInstance=this.guideInstance;var guideContainer=this.view;let focusGuideOnLoad=options.autoFocus||guideContainer.contains(document.activeElement),isNew;guideInstance||(isNew=!0,guideInstance=this.guideInstance=new TvGuide({element:guideContainer,serverId:this.params.serverId,condensed:layoutManager.tv}),layoutManager.tv&&(events.on(this.guideInstance,"focus",this.boundonGuideFocus),guideContainer.addEventListener("focusout",this.boundonGuideFocusOut),this.view.querySelector(".guideSelectedInfo").classList.remove("hide")),options.refresh=!0),layoutManager.tv?this.view.classList.add("liveGuideTab-tv"):this.view.classList.remove("liveGuideTab-tv");guideContainer=this.getApiClient();let promise;return(promise=(promise=isNew&&layoutManager.tv?guideContainer.getItems(guideContainer.getCurrentUserId(),{IncludeItemTypes:"TvChannel",EnableTotalRecordCount:!1,Limit:1,SortBy:"DatePlayed",SortOrder:"Descending",Fields:"UserDataPlayCount",Recursive:!0,EnableImages:!1,AddCurrentProgram:!1}):promise)||Promise.resolve({Items:[]})).then(function(result){result=result.Items[0];return result?.UserData?.PlayCount&&(options.scrollToChannelId=result.Id,options.focusOnScroll=focusGuideOnLoad,options.scrollBehavior="instant"),options.resetScroll="true"!==options.previousViewInfo?.params?.asDialog,guideInstance.resume(options)})},GuideTab.prototype.enableFocusPreviewImage=function(){return!0},GuideTab.prototype.hideFocusPreviewElementUsingDisplay=function(){return!1},GuideTab.prototype.onPause=function(){BaseTab.prototype.onPause.apply(this,arguments);var guideInstance=this.guideInstance;guideInstance&&guideInstance.pause()},GuideTab.prototype.destroy=function(){var view=this.view,guideInstance=(BaseTab.prototype.destroy.apply(this,arguments),this.guideInstance);guideInstance&&(this.boundonGuideFocus&&(events.off(guideInstance,"focus",this.boundonGuideFocus),this.boundonGuideFocus=null),this.boundonGuideFocusOut&&(view?.removeEventListener("focusout",this.boundonGuideFocusOut),this.boundonGuideFocusOut=null),guideInstance.destroy()),this._lastFocusInfo=null,this.guideInstance=null};export default GuideTab;