import connectionManager from"./../emby-apiclient/connectionmanager.js";import events from"./../emby-apiclient/events.js";import globalize from"./../common/globalize.js";import appRouter from"./../approuter.js";import"./../emby-elements/emby-tabs/emby-tabs.js";import layoutManager from"./../layoutmanager.js";import itemManager from"./../common/itemmanager/itemmanager.js";import{appHost}from"./../common/servicelocator.js";import appFooter from"./../appfooter/appfooter.js";import viewManager from"./../viewmanager/viewmanager.js";import inputManager from"./../common/inputmanager.js";require(["css!modules/dockedtabs/dockedtabs.css"]);let instance,hiddenMode=0,libraryMode=2,currentMode=hiddenMode,headerHomeButton,headerSearchButton,headerMenuButton,userSignedIn=!1,currentServerId,currentTabsList=[];function onLocalUserSignedIn(e,serverId,userId){currentMode=hiddenMode,currentServerId=serverId,userSignedIn=!0}function onLocalUserSignedOut(e){userSignedIn=!1}function updateHomeButton(tabsEnabled){(tabsEnabled||headerHomeButton)&&(headerHomeButton=headerHomeButton||document.querySelector(".headerHomeButton"),tabsEnabled?headerHomeButton.classList.add("hiddenWhenBottomNavVisible"):headerHomeButton.classList.remove("hiddenWhenBottomNavVisible"))}function updateSearchButton(tabsEnabled){(tabsEnabled||headerSearchButton)&&(headerSearchButton=headerSearchButton||document.querySelector(".headerSearchButton"),tabsEnabled?headerSearchButton.classList.add("hiddenWhenBottomNavVisible"):headerSearchButton.classList.remove("hiddenWhenBottomNavVisible"))}function updateMenuButton(tabsEnabled){(tabsEnabled||headerMenuButton)&&(headerMenuButton=headerMenuButton||document.querySelector(".headerMenuButton"))}function setMode(e,mode){var tabs;mode===currentMode?mode!==hiddenMode&&setSelected(e):(tabs=instance)&&((currentMode=mode)===libraryMode&&setLibraryTabs(e,getElement(tabs)),mode===hiddenMode?(tabs.hide(),updateHomeButton(!1),updateSearchButton(!1),updateMenuButton(!1)):(tabs.show(),updateHomeButton(!0),updateSearchButton(!0),updateMenuButton(!0)))}function setLibraryTabs(e,parentElement){let tabs=[];connectionManager.getApiClient(currentServerId).getUserViews().then(function(result){tabs.push({name:globalize.translate("Home"),icon:"",href:appRouter.getRouteUrl("home"),fillIcon:!0}),tabs.push({name:globalize.translate("Search"),icon:"",href:"#",onclick:"search",navMenuId:"search"}),appHost.supports("sync")&&tabs.push({name:globalize.translate("Downloads"),icon:"",href:appRouter.getRouteUrl("downloads")});for(let i=0,length=result.Items.length;i '+tab.icon+"
"+tab.name+"
"}).join(""),parentElement.innerHTML=tabs):parentElement.innerHTML="",parentElement.onTabsChanged()}function setSelected(e){var navMenuId=e.detail.navMenuId;if(navMenuId){var element=instance.element;if(element){var url=e.detail.url?.toLowerCase();for(let i=0,length=currentTabsList.length;i'),appFooter.element.querySelector(".dockedtabs")}function onTabsClick(e){var button=e.target.closest(".dockedtabs-tab-button");button&&(button=button.getAttribute("data-navmenuid"))&&"search"===button&&(inputManager.trigger("search",{sourceElement:viewManager.currentView(),originalEvent:e}),e.preventDefault())}function getElement(instance){let element=instance.element;return element||(element=instance.element=render()).addEventListener("click",onTabsClick),element}function DockedTabs(){instance=this,events.on(connectionManager,"localusersignedin",onLocalUserSignedIn),events.on(connectionManager,"localusersignedout",onLocalUserSignedOut),document.addEventListener("viewshow",onViewShow);var apiClient=connectionManager.currentApiClient();apiClient?.isLoggedIn()&&onLocalUserSignedIn({},apiClient.serverId(),apiClient.getCurrentUserId())}DockedTabs.prototype.destroy=function(){document.removeEventListener("viewshow",onViewShow);this.element=null},DockedTabs.prototype.show=function(){getElement(this).classList.remove("hide"),appFooter.setWithContent50w(!0)},DockedTabs.prototype.hide=function(){var element=this.element;element&&(element.classList.add("hide"),element.innerHTML="",appFooter.setWithContent50w(!1))};export default new DockedTabs;