define(["exports","./emby-apiclient/events.js","./emby-apiclient/connectionmanager.js","./common/globalize.js","./common/pluginmanager.js","./common/querystring.js","./layoutmanager.js","./skinmanager.js","./loading/loading.js","./common/servicelocator.js","./common/textencoding.js","./common/appsettings.js","./viewmanager/viewmanager.js","./backdrop/backdrop.js","./pagejs/page.js","./emby-apiclient/apiclient.js","./common/baseapprouter.js"],function(_exports,_events,_connectionmanager,_globalize,_pluginmanager,_querystring,_layoutmanager,_skinmanager,_loading,_servicelocator,_textencoding,_appsettings,_viewmanager,_backdrop,_page,_apiclient,_baseapprouter){function loadPlaybackManager(){return Emby.importModule("./modules/common/playback/playbackmanager.js")}function showAlertAndResolve(options){return function(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}(options).catch(function(){return Promise.resolve()})}function AppRouter(){_baseapprouter.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(AppRouter.prototype,_baseapprouter.default.prototype),AppRouter.prototype.showProfilePinPrompt=function(options){return Emby.importModule("./modules/profilepinprompt/profilepinprompt.js").then(function(PinPrompt){return(new PinPrompt).show(options)})};var firstConnectionResult,AllowSessionStorageUsage=_servicelocator.appHost.supports("sessionstorage");function getServerLoginRouteUrl(options){var params,url;return"manual"===options.loginType||options.username?(params={serverId:options.apiClient.serverId()},url="/startup/manuallogin.html?",options.username&&(params.user=options.username),url+_querystring.default.paramsToString(params)):"visual"===options.loginType?"/startup/login.html?serverId="+options.apiClient.serverId():void 0}function addressFormatToHtml(address){return''+_textencoding.default.htmlEncode(address)+""}function addressFormatToText(address){return _textencoding.default.htmlEncode(address)}function showWebAppConnectionError(server,addresses){var addressHtml,supportsLinks,html=[];return html.push('
'+_globalize.default.translate("MessageUnableToConnectToServer")+"
"),"https:"!==(window.location.protocol||"").toLowerCase()||function(addresses){for(var i=0,length=addresses.length;i"+_globalize.default.translate("IfTryingToConnectToHttp")+"",addressHtml=(addressHtml+="")+("- Use the web app built into your Emby Server at "+((supportsLinks=_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("targetblank"))?addresses.map(addressFormatToHtml):addresses.map(addressFormatToText)).join(" or ")+", depending on your current location.
"),addressHtml=supportsLinks?addressHtml+("- "+_globalize.default.translate("SetupHttpsForYourServer",'',""))+'
- Use the HTTP version of this app at http://app.emby.media instead.
':addressHtml+("- "+_globalize.default.translate("SetupHttpsForYourServer","",""))+"
- Use the HTTP versionof this app at http://app.emby.media instead.
",html.push(addressHtml=addressHtml+"- Use an installed Emby app such as Emby for Windows, Android, Apple, Amazon, Samsung, LG, etc.
"+"
"),showAlertAndResolve({html:html.join(""),title:server.Name?_globalize.default.translate("TitleUnableToReachName",_textencoding.default.htmlEncode(server.Name)):_globalize.default.translate("TitleUnableToReachServer"),centerText:!1}))}AppRouter.prototype.setPinValidated=function(userId){if(_baseapprouter.default.prototype.setPinValidated.apply(this,arguments),AllowSessionStorageUsage&&"undefined"!=typeof sessionStorage)try{userId?sessionStorage.setItem("pinvalidated",userId):sessionStorage.removeItem("pinvalidated")}catch(err){console.log("error setting sessionStorage")}},AppRouter.prototype.isPinValidated=function(userId){if(AllowSessionStorageUsage&&"undefined"!=typeof sessionStorage)try{return sessionStorage.getItem("pinvalidated")===userId}catch(err){console.log("error accessing sessionStorage")}return _baseapprouter.default.prototype.isPinValidated.apply(this,arguments)},AppRouter.prototype.showServerLogin=function(options){return options.loginType||options.username?show(getServerLoginRouteUrl(options)):_baseapprouter.default.prototype.showServerLogin.apply(this,arguments)},Object.assign(AppRouter.prototype,{showSelectServer:function(){return show(getRouteUrl("selectserver"))},showWelcome:function(){return _servicelocator.appHost.supports("multiserver")?show("/startup/welcome.html"):show("/startup/login.html?serverId="+_connectionmanager.default.currentApiClient().serverId())},showConnectLogin:function(){return show(getRouteUrl("connectlogin"))},showSettings:function(options){return show(getRouteUrl("settings",Object.assign({serverId:_connectionmanager.default.currentApiClient().serverId()},options||{})))},showUserMenu:function(options){return Emby.importModule("./modules/backmenu/backmenu.js").then(function(backMenu){return backMenu(options)})},showSearch:function(){return show(getRouteUrl("search"))},showGuide:function(){return show(this.getRouteUrl("livetv",{serverId:_connectionmanager.default.currentApiClient().serverId(),section:"guide"}))},showLiveTV:function(){return show(this.getRouteUrl("livetv",{serverId:_connectionmanager.default.currentApiClient().serverId()}))},showRecordedTV:function(){return show(this.getRouteUrl("recordedtv",{serverId:_connectionmanager.default.currentApiClient().serverId()}))},showFavorites:function(){return show("/home&tab=favorites")},showNowPlaying:function(){return showVideoOsd()}}),AppRouter.prototype.beginConnectionWizard=function(){_backdrop.default.clear(),_loading.default.show();var instance=this;return _servicelocator.appHost.supports("multiserver")?_connectionmanager.default.connect({}).then(function(result){return instance.handleConnectionResult(result,{allowWelcome:!0})}):this.showServerLogin({apiClient:_connectionmanager.default.currentApiClient()})},AppRouter.prototype.logout=function(apiClient){var instance=this;loadPlaybackManager().then(function(playbackManager){_loading.default.show(),playbackManager.stop(),_connectionmanager.default.logout(apiClient).then(instance.beginConnectionWizard.bind(instance))})},AppRouter.prototype.showConnectionErrorAlert=function(result,options){if(_servicelocator.appHost.supports("rejectinsecureaddresses")){var addresses=function(result){var list=[];return result.Address?list.push(result.Address):(result=result.Server||{})&&(result.ManualAddress&&!list.includes(result.ManualAddress)&&list.push(result.ManualAddress),result.LocalAddress&&!list.includes(result.LocalAddress)&&list.push(result.LocalAddress),result.RemoteAddress)&&!list.includes(result.RemoteAddress)&&list.push(result.RemoteAddress),list}(result);if(0