import dom from"./../dom.js";import browser from"./../browser.js";import globalize from"./../common/globalize.js";import events from"./../emby-apiclient/events.js";import navDrawerContent from"./navdrawercontent.js";import userSettings from"./../common/usersettings/usersettings.js";import"./../emby-elements/emby-scroller/emby-scroller.js";import focusManager from"./../focusmanager.js";import inputManager from"./../common/inputmanager.js";import viewManager from"./../viewmanager/viewmanager.js";import layoutManager from"./../layoutmanager.js";import{appHost}from"./../common/servicelocator.js";require(["css!modules/navdrawer/navdrawer.css"]);let instance,mask,navDrawerElement=document.querySelector(".mainDrawer"),allowBackdropFilter=dom.allowBackdropFilter(),DrawerStates={Closed:0,Open:1,Docked:2,DockedMini:3},previousFocusedElement;function closeOnNavCommand(instance){switch(instance.drawerState){case DrawerStates.Open:instance.close(),previousFocusedElement?(focusManager.focus(previousFocusedElement),previousFocusedElement=null):viewManager.autoFocusCurrentView({skipIfNotEnabled:!1});break;case DrawerStates.Docked:case DrawerStates.DockedMini:previousFocusedElement?(focusManager.focus(previousFocusedElement),previousFocusedElement=null):viewManager.autoFocusCurrentView({skipIfNotEnabled:!1})}}function onInputCommand(e){var command=e.detail.command;switch(command){case"back":layoutManager.tv&&viewManager.currentViewController()?.enableBackMenu&&appHost.supports("exit")&&!browser.electron?appHost.exit():closeOnNavCommand(this),e.preventDefault();break;case"left":"rtl"!==document.dir||e.target.closest("input")&&!inputManager.allowLeftOrRightNav(e.target,command)||(closeOnNavCommand(this),e.preventDefault());break;case"right":"rtl"===document.dir||e.target.closest("input")&&!inputManager.allowLeftOrRightNav(e.target,command)||(closeOnNavCommand(this),e.preventDefault())}}function onMainDrawerClick(e){e.target.closest(".btnPinNavDrawer")&&(instance.drawerState===DrawerStates.Open?(userSettings.drawerStyle("docked"),instance.open(!0)):(instance.closeState=null,userSettings.drawerStyle("closed"),instance.close()));e=e.target.closest(".btnToggleNavDrawer");e&&(instance.drawerState===DrawerStates.Docked?(userSettings.drawerStyle("docked-mini"),instance.open(!0,!0)):instance.drawerState!==DrawerStates.DockedMini&&instance.closeState!==DrawerStates.DockedMini||(instance.closeState=null,userSettings.drawerStyle("closed"),instance.close()))}function createMask(instance){var mask=document.createElement("div");return mask.className="drawer-backdrop"+(layoutManager.tv?" drawer-backdrop-tv":""),dom.addEventListener(mask,dom.whichAnimationEvent(),onMaskTransitionEnd,{passive:!0,capture:!0}),dom.addEventListener(mask,"click",instance.close.bind(instance),{passive:!0}),document.body.appendChild(mask),mask}function setPinIcon(icon,hidden,hoverShow){var btnPinNavDrawerIcon=navDrawerElement.querySelector(".btnPinNavDrawerIcon"),btnPinNavDrawerIcon=(btnPinNavDrawerIcon&&(btnPinNavDrawerIcon.innerHTML=icon),navDrawerElement.querySelector(".btnPinNavDrawer"));if(btnPinNavDrawerIcon){let title;"close"===icon?(title=globalize.translate("Close"),btnPinNavDrawerIcon.classList.remove("btnPinNavDrawer-iconpin"),btnPinNavDrawerIcon.classList.add("btnPinNavDrawer-hovershow")):(title=globalize.translate("HeaderPinSidebar"),btnPinNavDrawerIcon.classList.add("btnPinNavDrawer-iconpin"),btnPinNavDrawerIcon.classList.remove("btnPinNavDrawer-hovershow")),btnPinNavDrawerIcon.title=title,btnPinNavDrawerIcon.setAttribute("aria-label",title),hidden?btnPinNavDrawerIcon.classList.add("hide"):btnPinNavDrawerIcon.classList.remove("hide")}hidden=navDrawerElement.querySelector(".btnToggleNavDrawer");hidden&&("close"===icon?hidden.classList.remove("hide"):hidden.classList.add("hide"))}function onOpenRequested(){this.closeState=this.drawerState===DrawerStates.DockedMini?DrawerStates.DockedMini:null,this.open()}function onNavigated(){this.drawerState===DrawerStates.Open&&closeOnNavCommand(this)}function setRtlClasses(){"rtl"===document.dir?navDrawerElement.classList.add("mainDrawer-rtl"):navDrawerElement.classList.remove("mainDrawer-rtl")}function NavDrawer(){instance=this,dom.addEventListener(navDrawerElement,"click",onMainDrawerClick,{passive:!0}),dom.addEventListener(navDrawerElement,dom.whichTransitionEvent(),onNavDrawerTransitionEnd,{passive:!0,capture:!0}),events.on(navDrawerContent,"open-requested",onOpenRequested.bind(this)),events.on(navDrawerContent,"navigated",onNavigated.bind(this)),this.onInputCommandFn=onInputCommand.bind(this);var onInputCommandFn=this.onInputCommandFn;onInputCommandFn&&inputManager.on(navDrawerElement,onInputCommandFn),setRtlClasses()}events.on(userSettings,"change",function(e,name){"language"===name&&setRtlClasses()});let _scrollingElement;function getScrollingElement(){let elem=_scrollingElement;return elem||(elem=document.scrollingElement||document.documentElement,_scrollingElement=elem),elem}function expandAllCollapsibles(){var elems=navDrawerElement.querySelectorAll(".navDrawerCollapseSection");for(let i=0,length=elems.length;i