define(["exports","./../dom.js","./../common/inputmanager.js","./../common/usersettings/usersettings.js","./../common/globalize.js","./../common/datetime.js","./../common/appsettings.js","./../common/playback/playbackmanager.js","./../emby-apiclient/events.js","./../emby-apiclient/connectionmanager.js","./../layoutmanager.js","./../approuter.js","./../maintabsmanager.js","./../viewmanager/viewmanager.js","./../backdrop/backdrop.js","./../common/servicelocator.js","./../navdrawer/navdrawer.js","./../navdrawer/navdrawercontent.js","./../common/input/api.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-button/emby-button.js","./../common/methodtimer.js","./appheadercontent.js","./../common/textencoding.js"],function(_exports,_dom,_inputmanager,_usersettings,_globalize,_datetime,_appsettings,_playbackmanager,_events,_connectionmanager,_layoutmanager,_approuter,_maintabsmanager,_viewmanager,_backdrop,_servicelocator,_navdrawer,_navdrawercontent,_api,_paperIconButtonLight,_embyButton,_methodtimer,_appheadercontent,_textencoding){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","css!modules/appheader/appheader.css","css!!tv|modules/appheader/appheader_nontv.css","css!tv|modules/appheader/appheader_tv.css"]);var headerLeft,headerHomeButton,headerMenuButton,headerBackButton,headerCastButton,headerHelpButton,headerSearchButton,headerSettingsButton,headerUserButton,selectedPlayerText,headerRight,currentServerId,isUserAdmin,headerMiddle,currentDrawerState,appFooter,bottomTabsLoaded,currentViewEvent,boundLayoutModeChangeFn,skinHeaderElement=document.querySelector(".skinHeader"),hasPhysicalBackButton=_servicelocator.appHost.supports("physicalbackbutton"),supportsFullscreenMediaQueries=_servicelocator.appHost.supports("fullscreenmediaqueries"),backgroundContainer=document.querySelector(".backgroundContainer"),decodingAttribute=_dom.default.supportsAsyncDecodedImages()?' decoding="async"':"",TranslateProperty=CSS.supports("translate","40px 100px")?"translate":CSS.supports("transform","scale(1)")?"transform":"-webkit-transform",docElem=document.documentElement,userSignedIn=!1,SupportsExternalLinks=_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("targetblank");function updateClock(){var clock=this.clockElement;clock&&(clock.innerHTML=_datetime.default.getDisplayTime(new Date).toLowerCase())}function onLocalUserSignedOut(e){userSignedIn=!1,headerSearchButton.classList.add("hide"),updateUserInHeader(null),setRemoteControlVisibility()}function ensureHeaderSettingsButton(){headerUserButton=headerUserButton||document.querySelector(".headerUserButton"),headerSettingsButton=headerSettingsButton||document.querySelector(".headerSettingsButton")}function updateUserInHeader(user){var userImageUrl;ensureHeaderSettingsButton(),user&&user.PrimaryImageTag&&(userImageUrl=function(user,apiClient,options){return(options=options||{}).type="Primary",user.PrimaryImageTag?(options.tag=user.PrimaryImageTag,apiClient.getUserImageUrl(user.Id,options)):null}(user,_connectionmanager.default.getApiClient(user.ServerId),{height:Math.round(.56*skinHeaderElement.offsetHeight)})),headerUserButton.innerHTML=userImageUrl?'':'',isUserAdmin=user?(headerUserButton.classList.remove("hide"),_layoutmanager.default.tv?headerSettingsButton.classList.add("hide"):headerSettingsButton.classList.remove("hide"),user.Policy.IsAdministrator):(headerUserButton.classList.add("hide"),headerSettingsButton.classList.add("hide"),!1)}function onUserUpdated(e,apiClient,data){apiClient.getCurrentUserId()===data.Id&&apiClient.serverId()===currentServerId&&updateUserInHeader(data)}function resetPremiereButton(){_servicelocator.appHost.supports("premiereinheader")&&_connectionmanager.default.currentApiClient()&&_connectionmanager.default.currentApiClient().serverId()&&userSignedIn&&Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){registrationServices.validateFeature("themes",{viewOnly:!0,showDialog:!1}).then(removePremiereButton,addPremiereButton)})}function onPremiereButtonClick(){Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){registrationServices.validateFeature("themes",{viewOnly:!0}).then(resetPremiereButton)})}function addPremiereButton(){var html='";document.querySelector(".btnHeaderPremiere")||(document.querySelector(".headerRight").insertAdjacentHTML("afterbegin",html),document.querySelector(".btnHeaderPremiere").addEventListener("click",onPremiereButtonClick))}function removePremiereButton(){var btn=document.querySelector(".btnHeaderPremiere");btn&&btn.remove()}function onLocalUserSignedIn(e,serverId,userId){currentServerId=serverId,userSignedIn=!0,_connectionmanager.default.getApiClient(serverId).getUser(userId).then(updateUserInHeader),resetPremiereButton(),setRemoteControlVisibility(),setSearchVisibility({})}function onHeaderMenuButtonClick(){_navdrawer.default.open()}function onHomeClick(){_approuter.default.goHome()}function onBackClick(e){_inputmanager.default.trigger("back",{sourceElement:_viewmanager.default.currentView(),originalEvent:e})}function onSearchClick(e){_inputmanager.default.trigger("search",{sourceElement:_viewmanager.default.currentView(),originalEvent:e})}function onUserButtonClick(){_approuter.default.showUserMenu({positionTo:this,positionY:"bottom",positionX:"right",transformOrigin:"right top"})}function onSettingsButtonClick(){var manageServerRouteUrl=_approuter.default.getRouteUrl("manageserver");if(!isUserAdmin||!_approuter.default.getRouteInfo(manageServerRouteUrl))return onUserButtonClick.call(this);_approuter.default.show(manageServerRouteUrl)}function onCastButtonClick(){var btn=this;Emby.importModule("./modules/playback/playerselection.js").then(function(playerSelectionMenu){playerSelectionMenu.show(btn)})}function updateFontSize(){var fontSize=parseInt(_appsettings.default.fontSize()||"0");fontSize&&_layoutmanager.default.tv?document.documentElement.style.fontSize=2.5+.2*fontSize+"vh":document.documentElement.style.removeProperty("font-size")}function onLayoutModeChange(){var detail;updateFontSize(),!_layoutmanager.default.tv&&_dom.default.allowBackdropFilter()?skinHeaderElement.classList.add("skinHeader-withbackdropfilter"):skinHeaderElement.classList.remove("skinHeader-withbackdropfilter"),ensureHeaderSettingsButton(),_layoutmanager.default.tv||headerUserButton.classList.contains("hide")?headerSettingsButton.classList.add("hide"):headerSettingsButton.classList.remove("hide"),_layoutmanager.default.tv?headerRight.classList.add("secondaryText"):(headerRight.classList.remove("secondaryText"),bottomTabsLoaded||(bottomTabsLoaded=!0,Emby.importModule("./modules/dockedtabs/dockedtabs.js"))),headerMiddle=headerMiddle||document.querySelector(".headerMiddle"),this.destroyClock(),this.loadClock(),setRemoteControlVisibility(),currentViewEvent&&(updateDrawerLayout(detail=currentViewEvent.detail,allowDrawer(detail)),_navdrawer.default.onViewShow(currentViewEvent))}function updateCastIcon(){var info,btnCast=headerCastButton;btnCast&&((info=_playbackmanager.default.getPlayerInfo())&&!info.isLocalPlayer?(btnCast.innerHTML="",selectedPlayerText.innerHTML=info.deviceName||info.name):(btnCast.innerHTML="",selectedPlayerText.innerHTML=""))}function onNewPlayQueueStart(e,player,state){!function(state){return _layoutmanager.default.tv&&state.NowPlayingItem&&"Audio"===state.NowPlayingItem.MediaType}(state)||state.IsBackgroundPlayback||_approuter.default.showNowPlaying()}function setRemoteControlVisibility(){_servicelocator.appHost.supports("remotecontrol")&&userSignedIn&&(!_layoutmanager.default.tv||_appsettings.default.enableRemoteControlInTVMode())?(headerCastButton.classList.remove("hide"),selectedPlayerText.classList.remove("hide")):(headerCastButton.classList.add("hide"),selectedPlayerText.classList.add("hide"))}function onAppSettingsChange(e,name){switch(name){case"enableRemoteControlInTVMode":setRemoteControlVisibility();break;case"fontSize":updateFontSize()}}function setSearchVisibility(viewDetail){null!=currentDrawerState&&(!userSignedIn||!1===viewDetail.searchButton||"search"===(null==(viewDetail=viewDetail.params)?void 0:viewDetail.type)||!_layoutmanager.default.tv&&[1,2,3].includes(currentDrawerState)?headerSearchButton.classList.add("hide"):headerSearchButton.classList.remove("hide"))}function allowDrawer(detail){if(!1===detail.drawer)return!1;if(!userSignedIn)return!1;if(detail.hideDrawerWithOtherUserIdParam){detail=detail.params;if(detail&&detail.userId&&detail.serverId){var apiClient=_connectionmanager.default.getApiClient(detail.serverId);if(apiClient&&apiClient.getCurrentUserId()!==detail.userId)return!1}}return!0}function onNavDrawerStateChange(e,drawerState){currentDrawerState=drawerState,appFooter=appFooter||document.querySelector(".appfooter"),3===drawerState?(headerHomeButton.classList.add("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.add("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.add("backgroundContainer-withdockeddrawer"),_viewmanager.default.addViewClass("page-withMiniDrawer","page-withDockedDrawer"),_viewmanager.default.removeViewClass("page-withFullDrawer"),docElem.classList.remove("withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer"),skinHeaderElement.classList.add("skinHeader-withminidrawer"),headerLeft.classList.add("headerLeft-withdockeddrawer"),appFooter&&(appFooter.classList.add("appfooter-withMiniDrawer"),appFooter.classList.remove("appfooter-withFullDrawer"))):2===drawerState?(headerHomeButton.classList.add("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.add("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.add("backgroundContainer-withdockeddrawer"),docElem.classList.add("withFullDrawer"),_viewmanager.default.addViewClass("page-withFullDrawer","page-withDockedDrawer"),_viewmanager.default.removeViewClass("page-withMiniDrawer"),skinHeaderElement.classList.add("skinHeader-withfulldrawer"),headerLeft.classList.add("headerLeft-withdockeddrawer"),skinHeaderElement.classList.remove("skinHeader-withminidrawer"),appFooter&&(appFooter.classList.add("appfooter-withFullDrawer"),appFooter.classList.remove("appfooter-withMiniDrawer"))):1===drawerState?3===_navdrawer.default.closeState?(headerHomeButton.classList.add("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.add("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.add("backgroundContainer-withdockeddrawer"),docElem.classList.remove("withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer"),_viewmanager.default.removeViewClass("page-withFullDrawer"),_viewmanager.default.addViewClass("page-withMiniDrawer","page-withDockedDrawer"),skinHeaderElement.classList.add("skinHeader-withminidrawer"),headerLeft.classList.add("headerLeft-withdockeddrawer"),appFooter&&(appFooter.classList.remove("appfooter-withFullDrawer"),appFooter.classList.add("appfooter-withMiniDrawer"))):(headerHomeButton.classList.remove("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.remove("headerMenuButton-withdockeddrawer"),backgroundContainer.classList.remove("backgroundContainer-withdockeddrawer"),docElem.classList.remove("withFullDrawer"),_viewmanager.default.removeViewClass("page-withMiniDrawer","page-withDockedDrawer","page-withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer","skinHeader-withminidrawer"),headerLeft.classList.remove("headerLeft-withdockeddrawer"),appFooter&&appFooter.classList.remove("appfooter-withMiniDrawer","appfooter-withFullDrawer")):(docElem.classList.remove("withFullDrawer"),_viewmanager.default.removeViewClass("page-withMiniDrawer","page-withDockedDrawer","page-withFullDrawer"),skinHeaderElement.classList.remove("skinHeader-withfulldrawer","skinHeader-withminidrawer"),headerLeft.classList.remove("headerLeft-withdockeddrawer"),backgroundContainer.classList.remove("backgroundContainer-withdockeddrawer"),headerHomeButton.classList.remove("headerHomeButton-withdockeddrawer"),headerMenuButton.classList.remove("headerMenuButton-withdockeddrawer"),appFooter&&appFooter.classList.remove("appfooter-withMiniDrawer","appfooter-withFullDrawer"));drawerState=_viewmanager.default.currentViewInfo();drawerState&&setSearchVisibility(drawerState)}function updateDrawerLayout(detail,drawerAllowed){drawerAllowed&&!_layoutmanager.default.tv&&("docked"===(drawerAllowed=detail.settingsTheme?"docked":_usersettings.default.drawerStyle())||"docked-mini"===drawerAllowed)?(_layoutmanager.default.tv&&(drawerAllowed="docked-mini"),detail.drawerInline=!0,_navdrawer.default.open(!0,"docked-mini"===drawerAllowed)):(_navdrawer.default.closeState=null,_navdrawer.default.close())}function onViewShow(e){var _detail$params,detail=(currentViewEvent=e).detail;"true"!==(null==(_detail$params=detail.params)?void 0:_detail$params.asDialog)&&(detail.clearBackdrop&&_backdrop.default.clear(),updateDrawerLayout(detail,_detail$params=allowDrawer(detail)),function(detail){var backButtonConfig=detail.backButton;!1===(backButtonConfig=null==backButtonConfig&&detail.headerTabs?!1:backButtonConfig)||!_approuter.default.canGoBack()||hasPhysicalBackButton&&!0!==backButtonConfig&&!_layoutmanager.default.tv?headerBackButton.classList.add("hide"):!supportsFullscreenMediaQueries||!0===backButtonConfig||_layoutmanager.default.tv?headerBackButton.classList.remove("headerBackButton-showfullscreen","hide"):(headerBackButton.classList.add("headerBackButton-showfullscreen"),headerBackButton.classList.remove("hide"))}(detail),function(detail){userSignedIn&&!1!==detail.homeButton?headerHomeButton.classList.remove("hide"):headerHomeButton.classList.add("hide")}(detail),setSearchVisibility(detail),function(drawerAllowed){!_layoutmanager.default.tv&&userSignedIn&&drawerAllowed?headerMenuButton.classList.remove("hide"):headerMenuButton.classList.add("hide")}(_detail$params),function(detail){(detail=detail.helpUrl)&&SupportsExternalLinks?(headerHelpButton.href=detail,headerHelpButton.classList.remove("hide")):headerHelpButton.classList.add("hide")}(detail),function(detail){!_layoutmanager.default.tv&&detail.adjustHeaderForEmbeddedScroll?skinHeaderElement.classList.add("adjustHeaderForEmbeddedScroll"):skinHeaderElement.classList.remove("adjustHeaderForEmbeddedScroll")}(detail),function(detail){!1===detail.secondaryHeaderFeatures?headerRight.classList.add("hide"):headerRight.classList.remove("hide")}(detail,e.target),function(header,detail){detail.defaultTitle?header.setDefaultTitle():null!=(detail=detail.title)&&header.setTitle(_globalize.default.translate(detail))}(this,detail,e.target),(_detail$params=(_detail$params=this).pageTitleElement)&&(_layoutmanager.default.tv?_detail$params.classList.add("pageTitle-marginstart"):_detail$params.classList.remove("pageTitle-marginstart")),_navdrawer.default.onViewShow(e))}function removeTransformFromHeader(){skinHeaderElement.style[TranslateProperty]="none"}function onViewBeforeShow(e){var _detail$params2,e=e.detail;"true"!==(null==(_detail$params2=e.params)?void 0:_detail$params2.asDialog)&&(e.headerTabs||_maintabsmanager.default.setTabs(null),!1===e.headerBackground?skinHeaderElement.classList.remove("skinHeader-withBackground"):skinHeaderElement.classList.add("skinHeader-withBackground"),e.adjustHeaderForEmbeddedScroll||removeTransformFromHeader(),this.setTransparent(e.transparentHeader))}function shouldShowLeftNav(e){var _viewManager$currentV;return!1!==(null==(_viewManager$currentV=_viewmanager.default.currentViewInfo())?void 0:_viewManager$currentV.drawer)&&(null==(_viewManager$currentV=e.detail)||null==(_viewManager$currentV=_viewManager$currentV.originalEvent)||!_viewManager$currentV.repeat)}function onHeaderCommand(e){switch(e.detail.command){case"moveleftedge":"rtl"!==document.dir&&shouldShowLeftNav(e)&&(_navdrawer.default.openIfClosed(),e.preventDefault());break;case"moverightedge":"rtl"===document.dir&&shouldShowLeftNav(e)&&(_navdrawer.default.openIfClosed(),e.preventDefault())}}function render(instance){var Back,Home,Menu,Help;instance.element=skinHeaderElement,headerLeft=skinHeaderElement.querySelector(".headerLeft"),Menu=_globalize.default.translate("Menu"),Home=_globalize.default.translate("Home"),Back=_globalize.default.translate("Back"),Help=_globalize.default.translate("Help"),headerLeft.innerHTML='\n \n \n \n