import layoutManager from"./layoutmanager.js";import dom from"./dom.js";import"./emby-elements/emby-button/emby-button.js";import"./emby-elements/emby-tabs/emby-tabs.js";import focusManager from"./focusmanager.js";let tabOwnerView,headerTabsContainer,tabsElem,headerTop,headerMiddle;function ensureElements(){headerTabsContainer=headerTabsContainer||document.querySelector(".headerMiddle")}function onViewTabsReady(){this.selectedIndex(this.readySelectedIndex),this.readySelectedIndex=null}function defaultGetTabContainersFn(){return[]}function setTabs(view,selectedIndex,getTabsFn,getTabContainersFn,onTabChange,setSelectedIndex){if(!view)return tabOwnerView&&(headerTabsContainer=headerTabsContainer||document.querySelector(".headerMiddle"),ensureElements(),headerTop&&headerTop.classList.remove("headerTop-withSectionTabs","headerTop-tv-withSectionTabs","headerTop-tv-withSectionTabs-hideTitle"),headerMiddle&&headerMiddle.classList.remove("headerMiddle-withSectionTabs"),document.documentElement.classList.remove("withHeaderTabs"),headerTabsContainer.innerHTML="",tabOwnerView=null),{tabsContainer:headerTabsContainer,replaced:!1};ensureElements();var tabsContainerElem=headerTabsContainer;if(tabOwnerView===view)return tabsElem=tabsElem||tabsContainerElem.querySelector('[is="emby-tabs"]'),tabOwnerView=view,{tabsContainer:tabsContainerElem,replaced:!1};{let index=0;var indexAttribute=null==selectedIndex?"":' data-index="'+selectedIndex+'"';let tabsClass="tabs-viewmenubar tabs-viewmenubar-backgroundcontainer emby-tabs padded-left padded-right",tabsSliderClass="tabs-viewmenubar-slider emby-tabs-slider";dom.allowBackdropFilter()&&(tabsClass+=" tabs-viewmenubar-backgroundcontainer-backdropfilter"),layoutManager.tv&&(tabsClass+=" tabs-viewmenubar-tv tabs-viewmenubar-backgroundcontainer-tv scrollFrameX",tabsSliderClass+=" tabs-viewmenubar-slider-tv scrollSliderX");indexAttribute='
'+getTabsFn().map(function(t){let tabClass="emby-button secondaryText emby-tab-button main-tab-button";layoutManager.tv&&(tabClass+=" emby-button-tv main-tab-button-tv"),!1===t.enabled&&(tabClass+=" hide");let tabHtml;return t.cssClass&&(tabClass+=" "+t.cssClass),tabHtml=t.href?'
'+t.name+"":'
",index++,tabHtml}).join("")+"
";return tabsContainerElem.innerHTML=indexAttribute,headerTop=headerTop||document.querySelector(".headerTop"),headerMiddle=headerMiddle||document.querySelector(".headerMiddle"),layoutManager.tv?headerTop.classList.add("headerTop-withSectionTabs","headerTop-tv-withSectionTabs","headerTop-tv-withSectionTabs-hideTitle"):headerTop.classList.add("headerTop-withSectionTabs"),headerMiddle.classList.add("headerMiddle-withSectionTabs"),document.documentElement.classList.add("withHeaderTabs"),tabOwnerView=view,tabsElem=tabsContainerElem.querySelector('[is="emby-tabs"]'),getTabContainersFn=getTabContainersFn||defaultGetTabContainersFn,tabsElem.addEventListener("beforetabchange",function(e){var tabContainers=getTabContainersFn(),previousPanel=(null!=e.detail.previousIndex&&(previousPanel=tabContainers[e.detail.previousIndex])&&previousPanel.classList.remove("is-active"),tabContainers[e.detail.selectedTabIndex]);previousPanel&&previousPanel.classList.add("is-active")}),onTabChange&&tabsElem.addEventListener("tabchange",onTabChange),!1!==setSelectedIndex&&(tabsElem.selectedIndex?tabsElem.selectedIndex(selectedIndex):(tabsElem.readySelectedIndex=selectedIndex,tabsElem.addEventListener("ready",onViewTabsReady))),{tabsContainer:tabsContainerElem,replaced:!0}}}function focus(){var btn;return headerMiddle?(btn=headerMiddle.querySelector(".emby-tab-button-active"))?(focusManager.focus(btn),btn):focusManager.autoFocus(headerMiddle):null}function selectedTabIndex(index){var tabsContainerElem=headerTabsContainer;tabsElem=tabsElem||tabsContainerElem.querySelector('[is="emby-tabs"]'),null!=index?tabsElem.selectedIndex(index):tabsElem.triggerTabChange()}function getTabsElement(){return headerMiddle?.querySelector(".tabs-viewmenubar")}function setTabVisible(index,visible){var tabsElem=getTabsElement();tabsElem&&(tabsElem=tabsElem.querySelector('.main-tab-button[data-index="'+index+'"]'))&&(visible?tabsElem.classList.remove("hide"):(index=document.activeElement===tabsElem,tabsElem.classList.add("hide"),index&&focus()))}export default{setTabs:setTabs,getTabsElement:getTabsElement,selectedTabIndex:selectedTabIndex,focus:focus,setTabVisible:setTabVisible};