-
Notifications
You must be signed in to change notification settings - Fork 2
/
app.js
1 lines (1 loc) · 65.4 KB
/
app.js
1
!function(){"use strict";var localApiClient,appMode=globalThis.appMode;function returnFirstDependency(obj){return obj}function returnFirstDependencyDefault(obj){var _obj;return(null==(_obj=obj=Array.isArray(obj)?obj[0]:obj)?void 0:_obj.default)||obj}function enableNativeGamepadKeyMapping(){return window.navigator&&"string"==typeof window.navigator.gamepadInputEmulation&&(window.navigator.gamepadInputEmulation="keyboard")}function loadPlugin(url){return Promise.all([importFromPath("./modules/common/pluginmanager.js")]).then(function(responses){var pluginManager=responses[0];return url.startsWith("./")&&url.endsWith(".js")?(console.log("Loading plugin module: "+url),getDynamicImport(url)().then(function(f){return pluginManager.loadPlugin(f,url)})):pluginManager.loadPluginFromUrl(url)})}function returnFalse(){return!1}function initializeApiClient(apiClient){"ios"!==appMode&&"android"!==appMode||(apiClient._getAvailablePlugins=apiClient.getAvailablePlugins,apiClient.getAvailablePlugins=function(){var promises=[this._getAvailablePlugins(),importFromPath("./modules/common/pluginmanager.js")];return Promise.all(promises).then(function(responses){var plugins=responses[0],pluginManager=responses[1];return plugins.filter(function(p){return pluginManager.allowPluginPages(p.guid)})})}.bind(apiClient)),Promise.all([importFromPath("./modules/browser.js")]).then(function(responses){responses[0].operaTv&&(apiClient.isWebSocketSupported=returnFalse)})}function onApiClientCreated(e,newApiClient){initializeApiClient(newApiClient),window.$&&(window.$.ajax=newApiClient.ajax)}function validateServerAddressWithEndpoint(connectionManager,ajax,url,endpoint){return ajax({url:connectionManager.getEmbyServerUrl(url,endpoint),timeout:2e4,type:"GET",dataType:"text"}).then(function(result){var srch=String.fromCharCode(106)+String.fromCharCode(101)+String.fromCharCode(108)+String.fromCharCode(108)+String.fromCharCode(121)+String.fromCharCode(102);return(result||"").toLowerCase().includes(srch)?Promise.reject():Promise.resolve()})}function validateServerAddress(connectionManager,ajax,url){return Promise.all([validateServerAddressWithEndpoint(connectionManager,ajax,url,"web/manifest.json"),validateServerAddressWithEndpoint(connectionManager,ajax,url,"web/index.html"),validateServerAddressWithEndpoint(connectionManager,ajax,url,"web/strings/en-US.json")])}function getCapabilities(){return Promise.all([importFromPath("./modules/common/servicelocator.js")]).then(function(responses){var appHost=responses[0].appHost;return(appHost.getSyncProfile?appHost.getSyncProfile():Promise.resolve(null)).then(function(deviceProfile){var caps={PlayableMediaTypes:["Audio","Video"],SupportedCommands:["MoveUp","MoveDown","MoveLeft","MoveRight","PageUp","PageDown","PreviousLetter","NextLetter","ToggleOsd","ToggleContextMenu","Select","Back","SendKey","SendString","GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","RefreshMediaSource","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode","SetSubtitleOffset","SetPlaybackRate","ChannelUp","ChannelDown","PlayMediaSource","PlayTrailers"],SupportsMediaControl:!0};return caps.DeviceProfile=deviceProfile,caps.IconUrl=appHost.deviceIconUrl?appHost.deviceIconUrl():null,caps.SupportsSync=appHost.supports("sync"),caps.SupportsContentUploading=appHost.supports("cameraupload"),caps=appHost.getPushTokenInfo?Object.assign(caps,appHost.getPushTokenInfo()):caps})})}function createConnectionManager(){return Promise.all([importFromPath("./modules/emby-apiclient/connectionmanager.js"),importFromPath("./modules/emby-apiclient/events.js"),importFromPath("./modules/common/querystring.js"),importFromPath("./modules/common/usersettings/usersettings.js"),importFromPath("./modules/common/servicelocator.js"),require(["apiclient"])]).then(function(outerResponses){var connectionManager=outerResponses[0],events=outerResponses[1],queryString=outerResponses[2],userSettings=outerResponses[3],serviceLocator=outerResponses[4],apiClientFactory=outerResponses[5][0],apphost=serviceLocator.appHost,outerResponses=(globalThis.Events=events,[]);return outerResponses.push(apphost.init()),Promise.all(outerResponses).then(function(responses){var accessToken,userId,params,index;connectionManager.initialize(apiClientFactory,apphost.appName(),apphost.appVersion(),apphost.deviceName(),apphost.deviceId(),getCapabilities,globalThis.devicePixelRatio),globalThis.ConnectionManager=connectionManager,function(connectionManager,events,userSettings,appHost){events.on(connectionManager,"apiclientcreated",onApiClientCreated),connectionManager.currentApiClient=function(){var server;return localApiClient||(server=connectionManager.getLastUsedServer())&&(localApiClient=connectionManager.getApiClient(server.Id)),localApiClient},connectionManager.onLocalUserSignedIn=function(serverId,userId){return localApiClient=connectionManager.getApiClient(serverId),globalThis.ApiClient=localApiClient,userSettings.setUserInfo(userId,localApiClient)},events.on(connectionManager,"localusersignedout",function(){userSettings.setUserInfo(null,null)}),appHost.supports("multiserver")&&(connectionManager.validateServerAddress=validateServerAddress)}(globalThis.ConnectionManager=connectionManager,events,userSettings,apphost),apphost.supports("multiserver")||(window.location.search&&(accessToken=(params=queryString.parse(window.location.search)).accessToken,userId=params.userId,accessToken&&userId&&1===params.e||(userId=accessToken=null)),console.log("creating ApiClient singleton"),connectionManager.validateServerIds=!1,params=window.location.href.toLowerCase(),index=-1!==(index=params.lastIndexOf("/web"))?params.substring(0,index):(index=(params=window.location).protocol+"//"+params.hostname,params.port&&(index+=":"+params.port),index),index=connectionManager.getApiClientFromServerInfo({ManualAddress:index,ManualAddressOnly:!0,IsLocalServer:!0,AccessToken:accessToken,UserId:userId},index),accessToken&&userId&&(window.location="index.html"),index.enableAutomaticNetworking=!1,globalThis.ApiClient=index,localApiClient=index,console.log("loaded ApiClient singleton"))})})}function getPluginPageContentPath(){return globalThis.ApiClient?globalThis.ApiClient.getUrl("web/ConfigurationPage"):null}function triggerWorkerTask(){require(["bgtaskregister"],function(bgtaskregister){try{bgtaskregister.triggerTask()}catch(err){console.error("Error firing ApplicationTrigger",err)}})}function getWindowsLocalSync(){return{sync:triggerWorkerTask,setProgressUpdatesEnabled:function(enabled){}}}function getDynamicImportWithoutExport(path){return function(){return require(["".concat(path)])}}function getDynamicImport(path){return function(){return require(["".concat(path)]).then(returnFirstDependencyDefault)}}function importFromPath(path){return getDynamicImport(path)()}function importFromPathWithoutExport(path){return getDynamicImportWithoutExport(path)()}function loadAppStorage(){var promise;if("winjs"===appMode)promise=require(["native/windows/appstorage"]);else try{localStorage.setItem("_test","0"),localStorage.removeItem("_test"),promise=getDynamicImport("./modules/emby-apiclient/appstorage-localstorage.js")()}catch(e){promise=getDynamicImport("./modules/emby-apiclient/appstorage-memory.js")()}return promise.then(function(appStorage){return((appStorage=returnFirstDependencyDefault(appStorage)).init?appStorage.init():Promise.resolve()).then(function(){return appStorage})})}function loadWebFullscreenManager(serviceLocator){return getDynamicImport("./modules/fullscreen/fullscreenmanager.js")().then(function(fullscreenManager){return serviceLocator.initialize({fullscreenManager:fullscreenManager}),fullscreenManager})}function loadFullscreenManager(fullscreenManager,serviceLocator){return serviceLocator.initialize({fullscreenManager:fullscreenManager}),fullscreenManager}function loadServiceLocator(){return require(["appStorage","apphost","shell","fullscreenManager","wakeOnLan","serverdiscovery"]).then(function(responses){var appStorage=responses[0],appHost=responses[1],shell=responses[2],wakeOnLan=responses[4],serverDiscovery=responses[5],responses=[getDynamicImport("./modules/common/servicelocator.js")()];return appHost.supports("sync")&&(responses.push(require(["filerepository"])),responses.push(require(["itemrepository"])),responses.push(require(["transfermanager"])),responses.push(require(["useractionrepository"])),responses.push(require(["localsync"]))),appHost.supports("cameraupload")&&responses.push(require(["cameraUpload"])),Promise.all(responses).then(function(responsesInner){var fileRepository,itemRepository,transferManager,userActionRepository,localSync,cameraUpload,index=0,serviceLocator=responsesInner[index];return index++,appHost.supports("sync")&&(fileRepository=responsesInner[index][0],itemRepository=responsesInner[++index][0],transferManager=responsesInner[++index][0],userActionRepository=responsesInner[++index][0],localSync=responsesInner[++index][0],index++),appHost.supports("cameraupload")&&(cameraUpload=responsesInner[index][0],index++),serviceLocator.initialize({appStorage:appStorage,appHost:appHost,shell:shell,wakeOnLan:wakeOnLan,serverDiscovery:serverDiscovery,fileRepository:fileRepository,itemRepository:itemRepository,transferManager:transferManager,userActionRepository:userActionRepository,cameraUpload:cameraUpload,localSync:localSync}),require(["iapManager"]).then(function(responses){var iapManager=responses[0];return getDynamicImport("./modules/common/servicelocator.js")().then(function(serviceLocator){serviceLocator.initialize({iapManager:iapManager})})})})})}function addJsExtIfNeeded(path){return path.endsWith(".js")||(path+=".js"),path}function getDummyCameraUpload(){return{start:function(){},setProgressUpdatesEnabled:function(){},getAvailableFolders:function(){return Promise.resolve([{Id:"541C6607-9C45-4875-A292-5F89F742B2B3/L0/040",Name:"TestFolder1"},{Id:"773DFE72-F38F-4220-8F2F-C4A472DBBA75/L0/040",Name:"TestFolder2"}])}}}function loadHeader(){return console.log("loadHeader"),Promise.all([importFromPath("./modules/appheader/appheader.js")]).then(function(responses){return responses[0].init()})}function onAppReady(){"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0),console.log("onAppReady");var promises=[importFromPath("./modules/common/servicelocator.js"),importFromPath("./modules/approuter.js"),importFromPath("./modules/browser.js")];return"ios"!==appMode&&"android"!==appMode||promises.push(importFromPath("./modules/registrationservices/registrationservices.js")),Promise.all(promises).then(function(responses){var appHost=responses[0].appHost,appRouter=responses[1],responses=responses[2];return promises=[],console.log("Loaded dependencies in onAppReady"),function(appRouter,appHost){console.log("Defining core routes"),appRouter.addRoute({path:"/startup/connectlogin.html",controller:"startup/connectlogin.js",controllerType:"module",anonymous:!0,startup:!0,defaultTitle:!0,clearBackdrop:!0,autoFocus:!1,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({path:"/startup/connectsignup.html",controller:"startup/connectsignup.js",controllerType:"module",anonymous:!0,startup:!0,defaultTitle:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({path:"/startup/welcome.html",controller:"startup/welcome.js",controllerType:"module",anonymous:!0,startup:!0,defaultTitle:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({path:"/startup/forgotpassword.html",controller:"startup/forgotpassword.js",controllerType:"module",anonymous:!0,startup:!0,defaultTitle:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({path:"/startup/forgotpasswordpin.html",controller:"startup/forgotpasswordpin.js",controllerType:"module",anonymous:!0,startup:!0,defaultTitle:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({path:"/home",contentPath:"/home/home.html",type:"home",defaultTitle:!0,controller:"home/home.js",controllerType:"module",autoFocus:!1,homeButton:!1,headerTabs:!0,backdropItemTypes:"Movie,Series,Game,Book",adjustHeaderForEmbeddedScroll:!0,enableMediaControlTV:!0}),appRouter.addRoute({path:"/home/home.html",contentPath:"/home/home.html",type:"home",defaultTitle:!0,controller:"home/home.js",controllerType:"module",autoFocus:!1,homeButton:!1,headerTabs:!0,backdropItemTypes:"Movie,Series,Game,Book",adjustHeaderForEmbeddedScroll:!0,enableMediaControlTV:!0}),appRouter.addRoute({path:"/home.html",contentPath:"/home/home.html",type:"home",defaultTitle:!0,controller:"home/home.js",controllerType:"module",autoFocus:!1,homeButton:!1,headerTabs:!0,backdropItemTypes:"Movie,Series,Game,Book",adjustHeaderForEmbeddedScroll:!0,enableMediaControlTV:!0}),appRouter.addRoute({path:"/home_horiz/home.html",type:"home",defaultTitle:!0,controller:"home_horiz/home.js",controllerType:"module",headerTabs:!0,autoFocus:!1,homeButton:!1,headerBackground:!1,backdropItemTypes:"Movie,Series,Game,Book",clearBackdrop:!0,enableMediaControlTV:!0}),appRouter.addRoute({path:"/list/list.html",controller:"list/list.js",controllerType:"module",autoFocus:!1,canRefresh:!0,adjustHeaderForEmbeddedScroll:!0,supportsThemeMedia:!0}),appRouter.addRoute({contentPath:"/item/item.html",path:"/item",autoFocus:!1,controller:"item/item.js",controllerType:"module",transparentHeader:!0,adjustHeaderForEmbeddedScroll:!0,supportsThemeMedia:!0,transition:!0}),appRouter.addRoute({contentPath:"/item/item.html",path:"/item/item.html",controller:"item/item.js",controllerType:"module",autoFocus:!1,transparentHeader:!0,adjustHeaderForEmbeddedScroll:!0,supportsThemeMedia:!0,transition:!0}),appRouter.addRoute({contentPath:"/livetv/livetv.html",path:"/livetv",controller:"livetv/livetv.js",title:"LiveTV",controllerType:"module",autoFocus:!1,headerTabs:!0,adjustHeaderForEmbeddedScroll:!0,enableMediaControlTV:!0}),appRouter.addRoute({path:"/startup/login.html",contentPath:"/list/list.html",controller:"startup/login.js",controllerType:"module",anonymous:!0,autoFocus:!1,startup:!0,defaultTitle:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({path:"/startup/manuallogin.html",controller:"startup/manuallogin.js",controllerType:"module",anonymous:!0,startup:!0,defaultTitle:!0,autoFocus:!1,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({contentPath:"/games/games.html",path:"/games",controller:"games/games.js",controllerType:"module",autoFocus:!1,headerTabs:!0,backdropItemTypes:"Game",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({contentPath:"/videos/videos.html",path:"/videos",controller:"videos/videos.js",controllerType:"module",autoFocus:!1,headerTabs:!0,backdropItemTypes:"Movie,Series,MusicVideo,Video",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({contentPath:"/music/music.html",path:"/music",controller:"music/music.js",controllerType:"module",autoFocus:!1,headerTabs:!0,backdropItemTypes:"MusicAlbum",adjustHeaderForEmbeddedScroll:!0,enableMediaControlTV:!0}),appRouter.addRoute({path:"/videoosd/videoosd.html",controller:"videoosd/videoosd.js",controllerType:"module",type:"video-osd",supportsThemeMedia:!0,enableMediaControl:!1,autoFocus:!1,headerBackground:!1,homeButton:!1,drawer:!1,dockedTabs:!1,backButton:!0,transparentHeader:!0}),appRouter.addRoute({contentPath:"/settings/settings.html",path:"/settings",controller:"settings/settings.js",controllerType:"module",title:"Settings",autoFocus:!1,clearBackdrop:!0,settingsTheme:!0,drawer:!1,adjustHeaderForEmbeddedScroll:!0}),appHost.supports("keyboardsettings")&&appRouter.addRoute({path:"/settings/keyboard.html",controller:"settings/keyboard.js",controllerType:"module",type:"settings",title:"HeaderKeyboardAndRemote",thumbImage:"",order:2,icon:"",clearBackdrop:!0,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,autoFocus:!1}),appRouter.addRoute({path:"/settings/notifications.html",contentPath:"/list/list.html",controller:"settings/notifications.js",controllerType:"module",type:"settings",title:"Notifications",category:"Playback",thumbImage:"",order:1001,icon:"",clearBackdrop:!0,settingsTheme:!0,settingsType:"user",adjustHeaderForEmbeddedScroll:!0,hideDrawerWithOtherUserIdParam:!0,featureId:"notifications",minServerVersion:"4.8.0.20"}),appRouter.addRoute({path:"/settings/playback.html",controller:"settings/playback.js",controllerType:"module",type:"settings",title:"Playback",category:"Playback",thumbImage:"",order:2,icon:"",clearBackdrop:!0,settingsTheme:!0,settingsType:"user",adjustHeaderForEmbeddedScroll:!0,hideDrawerWithOtherUserIdParam:!0}),appRouter.addRoute({path:"/settings/subtitles.html",controller:"settings/subtitles.js",controllerType:"module",type:"settings",title:"Subtitles",category:"Playback",thumbImage:"",order:3,icon:"",clearBackdrop:!0,settingsTheme:!0,settingsType:"user",adjustHeaderForEmbeddedScroll:!0,hideDrawerWithOtherUserIdParam:!0}),appRouter.addRoute({path:"/settings/display.html",controller:"settings/display.js",controllerType:"module",type:"settings",title:"Display",category:"General",thumbImage:"",order:0,icon:"",clearBackdrop:!0,settingsTheme:!0,settingsType:"user",adjustHeaderForEmbeddedScroll:!0,hideDrawerWithOtherUserIdParam:!0}),appRouter.addRoute({path:"/settings/homescreen.html",controller:"settings/homescreen.js",controllerType:"module",type:"settings",title:"HeaderHomeScreen",category:"General",thumbImage:"",order:1,icon:"",clearBackdrop:!0,settingsTheme:!0,settingsType:"user",adjustHeaderForEmbeddedScroll:!0,hideDrawerWithOtherUserIdParam:!0}),appHost.supports("fileinput")&&appRouter.addRoute({path:"/settings/profile.html",controller:"settings/profile.js",controllerType:"module",type:"settings",title:"Profile",icon:"person",clearBackdrop:!0,roles:"EnableUserPreferenceAccess",settingsTheme:!0,settingsType:"user",adjustHeaderForEmbeddedScroll:!0,hideDrawerWithOtherUserIdParam:!0}),appHost.supports("cameraupload")&&appRouter.addRoute({path:"/settings/cameraupload.html",autoFocus:!1,controller:"settings/cameraupload.js",controllerType:"module",type:"settings",icon:"photo",title:"HeaderCameraUpload",clearBackdrop:!0,settingsTheme:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159382-camera-upload",adjustHeaderForEmbeddedScroll:!0}),appHost.supports("sync")&&(appRouter.addRoute({path:"/settings/download.html",controller:"settings/download.js",controllerType:"module",type:"settings",icon:"download",title:"Downloads",clearBackdrop:!0,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/settings/managedownloads.html",controller:"settings/managedownloads.js",controllerType:"module",icon:"download",type:"settings",title:"HeaderManageDownloads",autoFocus:!1,clearBackdrop:!0,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0})),appRouter.addRoute({path:"/search",contentPath:"/search/search.html",controller:"search/search.js",controllerType:"module",title:"",autoFocus:!1,clearBackdrop:!0,searchButton:!1,adjustHeaderForEmbeddedScroll:!0,navMenuId:"search"}),appRouter.addRoute({path:"/startup/manualserver.html",controller:"startup/manualserver.js",controllerType:"module",anonymous:!0,startup:!0,defaultTitle:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1}),appRouter.addRoute({path:"/startup/selectserver.html",contentPath:"/list/list.html",autoFocus:!1,anonymous:!0,startup:!0,controller:"startup/selectserver.js",controllerType:"module",title:"HeaderSelectServer",clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,drawer:!1,helpUrl:"https://support.emby.media/support/solutions/articles/44001160340-emby-connect"}),appRouter.addRoute({contentPath:"/tv/tv.html",path:"/tv",controller:"tv/tv.js",controllerType:"module",autoFocus:!1,headerTabs:!0,backdropItemTypes:"Series",adjustHeaderForEmbeddedScroll:!0}),appHost.supports("serversetup")&&(appRouter.addRoute({contentPath:"/plugins/addplugin.html",path:"/plugins/install",autoFocus:!1,roles:"admin",controller:"plugins/addpluginpage.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159720-plugins",title:"Plugins"}),appRouter.addRoute({path:"/database",contentPath:"/server/database/database.html",roles:"admin",controller:"server/database/database.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,title:"Database",autoFocus:!1}),appRouter.addRoute({path:"/dashboard",contentPath:"/dashboard/dashboard.html",autoFocus:!1,roles:"admin",controller:"dashboard/dashboard.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,title:"Dashboard"}),appRouter.addRoute({path:"/dashboard.html",contentPath:"/dashboard/dashboard.html",autoFocus:!1,roles:"admin",controller:"dashboard/dashboard.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,title:"Dashboard"}),appRouter.addRoute({path:"/dashboard/settings",contentPath:"/dashboard/settings.html",controller:"dashboard/settings.js",controllerType:"module",autoFocus:!1,roles:"admin",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159322-server-settings",title:"Settings",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({contentPath:"/list/list.html",path:"/devices",autoFocus:!1,roles:"admin",controller:"devices/devices.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159497-devices",title:"Devices",adjustHeaderForEmbeddedScroll:!0,canRefresh:!0}),appRouter.addRoute({contentPath:"/network/network.html",path:"/network",autoFocus:!1,roles:"admin",controller:"network/network.js",controllerType:"module",title:"Network",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159601-hosting-settings",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/devices/device.html",autoFocus:!1,roles:"admin",controller:"devices/device.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159497-devices",title:"Devices",navMenuId:"devices",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/devices/cameraupload.html",autoFocus:!1,roles:"admin",controller:"devices/cameraupload.js",controllerType:"module",settingsTheme:!0,title:"HeaderCameraUpload",clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159382-camera-upload",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({contentPath:"/metadatamanager/metadatamanager.html",path:"/metadatamanager",controller:"metadatamanager/metadatamanager.js",controllerType:"module",autoFocus:!1,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,title:"MetadataManager"}),appRouter.addRoute({contentPath:"/transcoding/transcoding.html",path:"/transcoding",autoFocus:!1,roles:"admin",controller:"transcoding/transcoding.js",controllerType:"module",title:"Transcoding",settingsTheme:!0,headerTabs:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159897-transcoding",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({contentPath:"/list/list.html",path:"/librarysetup/libraries",autoFocus:!1,roles:"admin",settingsTheme:!0,controller:"librarysetup/library.js",controllerType:"module",clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159319-library-setup",title:"Library",navMenuId:"librarysetup"}),appRouter.addRoute({path:"/librarysetup/advanced",contentPath:"/librarysetup/advanced.html",autoFocus:!1,roles:"admin",controller:"librarysetup/advanced.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159319-library-setup",title:"Library",navMenuId:"librarysetup",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/livetvsetup",contentPath:"/livetvsetup/livetvsetup.html",controller:"livetvsetup/livetvsetup.js",controllerType:"module",autoFocus:!1,roles:"admin",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,headerTabs:!0,title:"LiveTV",helpUrl:"https://support.emby.media/support/solutions/articles/44001160415-live-tv-setup",navMenuId:"livetvsetup"}),appRouter.addRoute({path:"/livetvsetup/guideprovider.html",autoFocus:!1,roles:"admin",controller:"livetvsetup/guideprovider.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001160415-live-tv-setup",title:"LiveTV",navMenuId:"livetvsetup"}),appRouter.addRoute({path:"/livetvsetup/livetvtuner.html",autoFocus:!1,roles:"admin",controller:"livetvsetup/livetvtuner.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001160415-live-tv-setup",title:"HeaderTVSourceSetup",navMenuId:"livetvsetup"}),appRouter.addRoute({path:"/logs",contentPath:"/list/list.html",autoFocus:!1,roles:"admin",controller:"logs/logs.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,canRefresh:!0,title:"Logs"}),appRouter.addRoute({path:"/log",contentPath:"/list/list.html",autoFocus:!1,roles:"admin",controller:"logs/log.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,canRefresh:!0,navMenuId:"logs",title:"Logs"}),appRouter.addRoute({path:"/server/notifications/notificationsetting.html",autoFocus:!1,roles:"admin",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,controller:"server/notifications/notificationsetting.js",controllerType:"module",clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159719-notifications",title:"Notifications",navMenuId:"notifications"}),appRouter.addRoute({path:"/server/notifications/notificationsettings.html",controller:"server/notifications/notificationsettings.js",controllerType:"module",autoFocus:!1,roles:"admin",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159719-notifications",title:"Notifications",navMenuId:"notifications"}),appRouter.addRoute({path:"/plugins",contentPath:"/plugins/plugins.html",controller:"plugins/plugins.js",controllerType:"module",autoFocus:!1,roles:"admin",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,headerTabs:!0,title:"Plugins",helpUrl:"https://support.emby.media/support/solutions/articles/44001159720-plugins",navMenuId:"plugins"}),appRouter.addRoute({path:"/dashboard/releasenotes.html",autoFocus:!1,roles:"admin",controller:"dashboard/releasenotes.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/scheduledtasks",contentPath:"/scheduledtasks/scheduledtasks.html",roles:"admin",autoFocus:!1,controller:"scheduledtasks/scheduledtasks.js",controllerType:"module",title:"HeaderScheduledTasks",clearBackdrop:!0,settingsTheme:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159751-scheduled-tasks",navMenuId:"scheduledtasks",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/scheduledtask",contentPath:"/list/list.html",autoFocus:!1,roles:"admin",controller:"scheduledtasks/scheduledtask.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159751-scheduled-tasks",title:"HeaderScheduledTasks",navMenuId:"scheduledtasks",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/serveractivity",contentPath:"/list/list.html",autoFocus:!1,roles:"admin",controller:"dashboard/serveractivity.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,canRefresh:!0,navMenuId:"dashboard"}),appRouter.addRoute({path:"/apikeys",contentPath:"/list/list.html",autoFocus:!1,roles:"admin",controller:"apikeys/apikeys.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,adjustHeaderForEmbeddedScroll:!0,canRefresh:!0,title:"HeaderApiKeys"}),appRouter.addRoute({contentPath:"/embypremiere/embypremiere.html",path:"/embypremiere",controller:"embypremiere/embypremiere.js",controllerType:"module",autoFocus:!1,roles:"admin",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://emby.media/premiere",title:"Emby Premiere",adjustHeaderForEmbeddedScroll:!0}),appRouter.addRoute({path:"/serverdownloads",contentPath:"server/downloads/activity.html",autoFocus:!1,controller:"server/downloads/activity.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,title:"Downloads"}),appRouter.addRoute({path:"/conversions",contentPath:"server/downloads/activity.html",autoFocus:!1,controller:"server/downloads/activity.js",controllerType:"module",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,title:"Conversions"}),appRouter.addRoute({path:"/serverdownloadsettings",contentPath:"server/downloads/settings.html",autoFocus:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,controller:"server/downloads/settings.js",controllerType:"module"}),appRouter.addRoute({path:"/users/user",contentPath:"/users/user.html",controller:"users/user.js",controllerType:"module",autoFocus:!1,roles:"admin",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,headerTabs:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001160237-users",navMenuId:"users"}),appRouter.addRoute({path:"/users/new",contentPath:"/users/usernew.html",controller:"users/usernew.js",controllerType:"module",autoFocus:!1,roles:"admin",settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001160237-users",navMenuId:"users",title:"HeaderNewUser"}),appRouter.addRoute({path:"/users",contentPath:"/list/list.html",autoFocus:!1,roles:"admin",controller:"users/users.js",controllerType:"module",settingsTheme:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001160237-users",adjustHeaderForEmbeddedScroll:!0,canRefresh:!0,title:"Users"}),appRouter.addRoute({path:"/wizard/wizardagreement.html",anonymous:!0,controller:"wizard/wizardagreement.js",controllerType:"module",homeButton:!1,secondaryHeaderFeatures:!1,defaultTitle:!0,drawer:!1,dockedTabs:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0}),appRouter.addRoute({path:"/wizard/wizardremoteaccess.html",anonymous:!0,controller:"wizard/wizardremoteaccess.js",controllerType:"module",homeButton:!1,secondaryHeaderFeatures:!1,defaultTitle:!0,drawer:!1,dockedTabs:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0}),appRouter.addRoute({path:"/wizard/wizardfinish.html",anonymous:!0,controller:"wizard/wizardfinishpage.js",controllerType:"module",homeButton:!1,secondaryHeaderFeatures:!1,defaultTitle:!0,drawer:!1,dockedTabs:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0}),appRouter.addRoute({path:"/wizard/wizardlibrary.html",controller:"librarysetup/library.js",controllerType:"module",anonymous:!0,homeButton:!1,secondaryHeaderFeatures:!1,defaultTitle:!0,drawer:!1,dockedTabs:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0,helpUrl:"https://support.emby.media/support/solutions/articles/44001159319-library-setup"}),appRouter.addRoute({path:"/wizard/wizardsettings.html",anonymous:!0,controller:"wizard/wizardsettings.js",controllerType:"module",homeButton:!1,secondaryHeaderFeatures:!1,defaultTitle:!0,drawer:!1,dockedTabs:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0}),appRouter.addRoute({path:"/wizard/wizardstart.html",anonymous:!0,controller:"wizard/wizardstart.js",controllerType:"module",homeButton:!1,secondaryHeaderFeatures:!1,defaultTitle:!0,drawer:!1,dockedTabs:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0}),appRouter.addRoute({path:"/wizard/wizarduser.html",controller:"wizard/wizarduserpage.js",controllerType:"module",autoFocus:!1,anonymous:!0,homeButton:!1,secondaryHeaderFeatures:!1,defaultTitle:!0,drawer:!1,dockedTabs:!1,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0}),appRouter.addRoute({path:"/configurationpage",autoFocus:!1,enableCache:!1,enableContentQueryString:!0,roles:"admin",contentPath:appHost.supports("multiserver")?getPluginPageContentPath:null,settingsTheme:!0,windowScroll:3,requiresDynamicTitle:!0}),appRouter.addRoute({path:"/genericui",contentPath:"modules/genericui/genericui.html",autoFocus:!1,controller:"modules/genericui/genericui.js",controllerType:"module",enableContentQueryString:!0,settingsTheme:!0,adjustHeaderForEmbeddedScroll:!0,clearBackdrop:!0})),appRouter.addRoute({path:"/index.html",isDefaultRoute:!0,clearBackdrop:!0,autoFocus:!1}),appRouter.addRoute({path:"/",isDefaultRoute:!0,clearBackdrop:!0})}(appRouter,appHost),appRouter.start({click:!1,hashbang:!0}),document.dispatchEvent(new CustomEvent("appready",{})),appHost.supports("soundeffects")&&importFromPath("./modules/soundeffects/soundeffectsmanager.js"),importFromPathWithoutExport("./modules/thememediaplayer.js"),importFromPathWithoutExport("./modules/transparencymanagement.js"),!enableNativeGamepadKeyMapping()&&("ongamepadconnected"in window||navigator.getGamepads||navigator.webkitGetGamepads)&&importFromPathWithoutExport("./modules/input/gamepadtokey.js"),appHost.supports("windowstate")&&importFromPathWithoutExport("./modules/controlbox.js"),"android"===appMode?require(["native/android/mediasession","native/android/chromecast","native/android/appshortcuts","native/android/nativecredentials","native/android/nativesettings"]):"ios"===appMode?require(["native/ios/mediasession","native/ios/appshortcuts","native/ios/backgroundfetch","native/ios/nativecredentials","native/ios/nativesettings","native/ios/nativeplayerbridge"]):"windows"===appMode?require(["native/windows/mediasession","native/windows/nativesettings","native/windows/nativecredentials"]):globalThis.tizen&&(require(["native/tizen/input"]),require(["native/tizen/networkerror"]),responses.sdkVersion&&2.4<=responses.sdkVersion&&require(["native/tizen/preview"]),require(["native/tizen/screensavermanager"]),responses.tizenSideload=!1,responses.tizenSideload)&&require(["native/tizen/expiration"]),responses.tv||(importFromPathWithoutExport("./modules/autobackdrops.js"),importFromPathWithoutExport("./modules/notifications.js"),importFromPath("./modules/dockedtabs/dockedtabs.js")),importFromPathWithoutExport("./modules/nowplayingbar/nowplayingbar.js"),appHost.supports("remotecontrol")&&importFromPathWithoutExport("./modules/playback/remotecontrolautoplay.js"),navigator.mediaSession&&importFromPathWithoutExport("./modules/playback/mediasession.js"),importFromPath("./modules/input/mouse.js"),importFromPath("./modules/input/keyboard.js"),importFromPath("./modules/common/input/api.js"),appHost.supports("screensaver")&&importFromPath("./modules/screensavermanager.js"),appHost.supports("fullscreenchange")&&importFromPathWithoutExport("./modules/fullscreen/fullscreen-dc.js"),appHost.supports("multiserver")||globalThis.ApiClient&&require(["css!"+globalThis.ApiClient.getUrl("Branding/Css")]),"winjs"===appMode&&function(appHost){navigator.mediaSession||require(["native/windows/mediasession"]),navigator.connection&&navigator.connection.type||require(["native/windows/networkpolyfill"]),appHost.supports("sync")&&require(["bgtaskregister"],function(bgtaskregister){bgtaskregister.registerTask()})}(appHost),importFromPath("./modules/actionsheet/actionsheet.js"),require(["formDialogStyle"]),getDynamicImport("./modules/common/playback/playbackmanager.js")().then(function(playbackManager){window.addEventListener("beforeunload",function(e){try{playbackManager.onAppClose()}catch(err){console.log("error in onAppClose: "+err)}})}),Promise.all(promises)})}function loadFirstLevelPresentationDependencies(){return console.log("loadFirstLevelPresentationDependencies"),Promise.all([importFromPath("./modules/browser.js")]).then(function(responses){responses=responses[0],(appMode||responses.tv)&&(console.log=function(){}),responses.osx?document.documentElement.classList.add("html-osx"):"windows"!==appMode&&"winjs"!==appMode||document.documentElement.classList.add("html-maxfonttouch"),(responses.iOS||responses.osx)&&document.documentElement.classList.add("imgLazyAppleHack"),responses=[];return responses.push(require(["flexStyles"])),responses.push(require(["css!modules/layout"])),"container"in document.documentElement.style&&responses.push(require(["css!modules/layout_container"])),responses.push(require(["sectionsStyle"])),responses.push(require(["systemFontsCss"])),Promise.all(responses)})}function loadGlobalization(){return Promise.all([importFromPath("./modules/common/globalize.js"),importFromPath("./modules/common/servicelocator.js")]).then(function(responses){var globalize=responses[0],responses=responses[1].appHost,stringPromises=(globalThis.urlCacheParam&&globalize.setCacheParam(globalThis.urlCacheParam),[]);return responses.supports("serversetup")&&stringPromises.push(function(globalize){var translations=["ar","be-BY","bg-BG","ca","cs","da","de","el","en-GB","en-US","es","es-AR","es-MX","fa","fi","fr","fr-CA","gsw","he","hi-IN","hr","hu","id","it","ja","kk","ko","lt-LT","ms","nb","nl","no","pl","pt-BR","pt-PT","ro","ru","sk","sl-SI","sv","tr","uk","vi","zh-CN","zh-HK","zh-TW"].map(function(i){return{lang:i,path:"strings/"+i+".json"}});return globalize.loadStrings({name:"core",translations:translations})}(globalize)),stringPromises.push(function(globalize){var translations=["ar","bg-BG","ca","cs","da","de","el","en-GB","en-US","es","es-AR","es-MX","et-EE","fi","fr","fr-CA","gsw","he","hr","hu","id","it","ja","kk","ko","lt-LT","ms","nb","nl","pl","pt-BR","pt-PT","ro","ru","sk","sl-SI","sv","tr","uk","vi","zh-CN","zh-HK","zh-TW"].map(function(i){return{lang:i,path:"modules/common/strings/"+i+".json"}});return globalize.loadStrings({name:"sharedcomponents",translations:translations})}(globalize)),Promise.all(stringPromises)})}function loadThirdLevelPolyfills(){return Promise.all([importFromPath("./modules/browser.js")]).then(function(responses){var responses=responses[0],supportsSync=!0,supportsSync=("windows"===appMode?(define("transfermanager",[],getDynamicImport("./modules/sync/transfermanager.js")),define("filerepository",["native/windows/filerepository"],returnFirstDependency),define("localsync",["native/windows/localsync"],returnFirstDependency),define("itemrepository",["native/windows/itemrepository"],returnFirstDependency),define("useractionrepository",["native/windows/useractionrepository"],returnFirstDependency)):"winjs"!==appMode||responses.xboxOne?"ios"===appMode?(define("filerepository",["native/ios/filerepository"],returnFirstDependency),define("transfermanager",["filerepository"],returnFirstDependency),define("localsync",["native/ios/localsync"],returnFirstDependency),define("itemrepository",["native/ios/itemrepository"],returnFirstDependency),define("useractionrepository",["native/ios/useractionrepository"],returnFirstDependency)):"android"===appMode&&AndroidAppHost.supportsSync()?(define("transfermanager",[],getDynamicImport("./modules/sync/transfermanager.js")),define("filerepository",["native/android/filerepository"],returnFirstDependency),define("localsync",["native/android/localsync"],returnFirstDependency),define("itemrepository",["native/android/itemrepository"],returnFirstDependency),define("useractionrepository",["native/android/useractionrepository"],returnFirstDependency)):(define("transfermanager",[],getDynamicImport("./modules/sync/transfermanager.js")),define("filerepository",[],getDynamicImport("./modules/sync/filerepository.js")),define("localsync",[],getDynamicImport("./modules/sync/localsync.js")),define("itemrepository",[],getDynamicImport("./modules/localdatabase/itemrepository.js")),define("useractionrepository",[],getDynamicImport("./modules/localdatabase/useractionrepository.js")),supportsSync=!1):(define("bgtaskregister",["native/windows/bgtaskregister"],returnFirstDependency),define("transfermanager",["native/windows/transfermanager"],returnFirstDependency),define("filerepository",["native/windows/filerepository"],returnFirstDependency),define("localsync",[],getWindowsLocalSync),define("itemrepository",[],getDynamicImport("./modules/localdatabase/itemrepository.js")),define("useractionrepository",[],getDynamicImport("./modules/localdatabase/useractionrepository.js"))),supportsSync?define("apiclient",[],getDynamicImport("./modules/emby-apiclient/apiclientex.js")):define("apiclient",[],getDynamicImport("./modules/emby-apiclient/apiclient.js")),[]);return"customElements"in globalThis?"customElements"in globalThis&&!responses.iOS&&!responses.safari&&customElements.upgrade||supportsSync.push(require(["modules/polyfills/custom-elements-builtin"])):globalThis.MutationObserver&&globalThis.Reflect?supportsSync.push(require(["modules/polyfills/custom-elements"])):supportsSync.push(require(["modules/polyfills/document-register-element"])),globalThis.tizen&&supportsSync.push(require(["native/tizen/tizeninfo"])),(globalThis.webos||globalThis.PalmSystem)&&supportsSync.push(require(["native/webos/webosinfo"])),Promise.all(supportsSync)})}function loadSecondLevelPolyfills(){var list=[],promises=[];return globalThis.SpeechRecognition||(globalThis.SpeechRecognition=globalThis.webkitSpeechRecognition),"undefined"!=typeof AbortController&&"undefined"!=typeof AbortSignal&&("function"!=typeof globalThis.Request||globalThis.Request.prototype.hasOwnProperty("signal"))&&globalThis.AbortController||list.push("bower_components/abortcontroller-polyfill/umd-polyfill"),globalThis.Intl&&globalThis.Intl.NumberFormat||promises.push(importFromPathWithoutExport("./modules/polyfills/numberformat.js")),"function"==typeof Object.assign&&"function"==typeof Object.create||promises.push(importFromPathWithoutExport("./modules/polyfills/object.js")),"function"==typeof Promise.any&&"function"==typeof Promise.allSettled||promises.push(importFromPathWithoutExport("./modules/polyfills/promise.js")),String.prototype.includes&&String.prototype.startsWith&&String.prototype.endsWith&&String.prototype.replaceAll||promises.push(importFromPathWithoutExport("./modules/polyfills/string.js")),Array.prototype.filter&&Array.prototype.includes&&Array.prototype.some&&Array.isArray&&Array.from||promises.push(importFromPathWithoutExport("./modules/polyfills/array.js")),Element.prototype.matches&&Element.prototype.closest&&Element.prototype.remove||promises.push(importFromPathWithoutExport("./modules/polyfills/element.js")),HTMLFormElement.prototype.requestSubmit||promises.push(importFromPathWithoutExport("./modules/polyfills/form.js")),Function.prototype.bind||promises.push(importFromPathWithoutExport("./modules/polyfills/bind.js")),"undefined"==typeof Map&&list.push("modules/polyfills/map"),"undefined"==typeof WeakMap&&promises.push(importFromPathWithoutExport("./modules/polyfills/weakmap.js")),"undefined"==typeof Set&&promises.push(importFromPathWithoutExport("./modules/polyfills/set.js")),globalThis.crypto&&crypto.randomUUID||promises.push(importFromPathWithoutExport("./modules/polyfills/crypto.js")),globalThis.CSS&&CSS.supports||promises.push(importFromPathWithoutExport("./modules/polyfills/css.js")),promises.push(require(list)),Promise.all(promises)}function start(startInfo){if(enableNativeGamepadKeyMapping(),"undefined"!=typeof Windows&&Windows.UI){try{Windows.UI.ViewManagement.ApplicationViewScaling.trySetDisableLayoutScaling(!0)}catch(err){}try{Windows.UI.ViewManagement.ApplicationView.getForCurrentView().setDesiredBoundsMode(Windows.UI.ViewManagement.ApplicationViewBoundsMode.useCoreWindow)}catch(err){}}var customPaths,supportsTizenWasmSockets,v,baseRoute;return startInfo=startInfo||globalThis.appStartInfo||{},customPaths=startInfo.paths||{},define("itemShortcuts",[],getDynamicImport("./modules/shortcuts.js")),define("pageJs",[],getDynamicImport("./modules/pagejs/page.js")),define("medialibraryeditor",[],getDynamicImport("./components/medialibraryeditor/medialibraryeditor.js")),define("medialibrarycreator",[],getDynamicImport("./components/medialibrarycreator/medialibrarycreator.js")),define("howler",[],getDynamicImport("./modules/howlerjs/howler.core.js")),define("skinManager",[],getDynamicImport("./modules/skinmanager.js")),define("flvjs",[],getDynamicImport("./modules/flvjs/flv.js")),define("playQueueManager",[],getDynamicImport("./modules/common/playback/playqueuemanager.js")),define("focusManager",[],getDynamicImport("./modules/focusmanager.js")),define("browserdeviceprofile",[],getDynamicImport("./modules/browserdeviceprofile.js")),define("inputManager",["serviceLocator"],getDynamicImport("./modules/common/inputmanager.js")),define("inputmanager",["inputManager"],returnFirstDependency),define("events",[],getDynamicImport("./modules/emby-apiclient/events.js")),define("connectionManager",[],getDynamicImport("./modules/emby-apiclient/connectionmanager.js")),define("loading",[],getDynamicImport("./modules/loading/loading.js")),define("taskButton",[],getDynamicImport("./components/taskbutton.js")),customPaths.fullscreenmanager?define("fullscreenManager",[customPaths.fullscreenmanager,"serviceLocator"],loadFullscreenManager):define("fullscreenManager",["serviceLocator"],loadWebFullscreenManager),customPaths.shell?define("shell",[addJsExtIfNeeded(customPaths.shell)],returnFirstDependency):"android"===appMode?define("shell",["native/android/shell"],returnFirstDependency):define("shell",[],getDynamicImport("./modules/shell.js")),define("webvtt",[],getDynamicImport("./modules/webvtt/vtt.js")),define("humanedate",[],getDynamicImport("./modules/humanedate/humanedate.js")),define("serviceLocator",[],getDynamicImport("./modules/common/servicelocator.js")),define("globalize",[],getDynamicImport("./modules/common/globalize.js")),define("datetime",[],getDynamicImport("./modules/common/datetime.js")),define("qualityOptions",[],getDynamicImport("./modules/common/qualityoptions.js")),define("pluginManager",[],getDynamicImport("./modules/common/pluginmanager.js")),define("itemHelper",[],getDynamicImport("./modules/common/itemhelper.js")),define("itemManager",[],getDynamicImport("./modules/common/itemmanager/itemmanager.js")),define("recordingHelper",[],getDynamicImport("./modules/common/recordinghelper.js")),define("deleteHelper",[],getDynamicImport("./modules/common/deletehelper.js")),define("imageLoader",[],getDynamicImport("./modules/imageloader/imageloader.js")),define("backdrop",[],getDynamicImport("./modules/backdrop/backdrop.js")),define("gamepadtokey",[],getDynamicImportWithoutExport("./modules/input/gamepadtokey.js")),define("virtual-scroller",[],getDynamicImport("./modules/virtual-scroller/virtual-scroller.js")),define("commandProcessor",[],getDynamicImport("./modules/commandprocessor.js")),customPaths.filesystem?define("filesystem",[addJsExtIfNeeded(customPaths.filesystem)],returnFirstDependency):define("filesystem",[],getDynamicImport("./modules/common/filesystem.js")),define("cssVars",[],getDynamicImport("./modules/css-vars-ponyfill/css-vars-ponyfill.js")),define("hlsjs",["modules/hlsjs/hls.min"],returnFirstDependency),define("connectionManagerResolver",["connectionManager"],returnFirstDependency),define("browser",[],getDynamicImport("./modules/browser.js")),define("backMenu",[],getDynamicImport("./modules/backmenu/backmenu.js")),define("soundEffectsManager",[],getDynamicImport("./modules/soundeffects/soundeffectsmanager.js")),define("soundEffectsPlayer",[],getDynamicImport("./modules/soundeffects/soundeffectsplayer.js")),define("mediaSession",[],getDynamicImportWithoutExport("./modules/playback/mediasession.js")),define("libjass",["bower_components/libjass/libjass","css!bower_components/libjass/libjass"],returnFirstDependency),define("SubtitlesOctopus",["bower_components/javascriptsubtitlesoctopus/dist/subtitles-octopus"],returnFirstDependency),define("tunerPicker",["components/tunerpicker"],returnFirstDependency),define("mainTabsManager",[],getDynamicImport("./modules/maintabsmanager.js")),define("dragDropTouch",[],getDynamicImportWithoutExport("./modules/polyfills/dragdroptouch.js")),define("appHeader",[],getDynamicImport("./modules/appheader/appheader.js")),define("chromecastHelper",[],getDynamicImport("./modules/chromecast/chromecasthelpers.js")),define("directorybrowser",[],getDynamicImport("./modules/directorybrowser/directorybrowser.js")),define("metadataEditor",[],getDynamicImport("./modules/metadataeditor/metadataeditor.js")),define("personEditor",[],getDynamicImport("./modules/metadataeditor/personeditor.js")),define("playerSelectionMenu",[],getDynamicImport("./modules/playback/playerselection.js")),define("playerSettingsMenu",[],getDynamicImport("./modules/playback/playersettingsmenu.js")),define("emby-collapse",[],getDynamicImport("./modules/emby-elements/emby-collapse/emby-collapse.js")),define("emby-button",[],getDynamicImport("./modules/emby-elements/emby-button/emby-button.js")),define("emby-linkbutton",["emby-button"],returnFirstDependency),define("emby-itemscontainer",[],getDynamicImport("./modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js")),define("alphaNumericShortcuts",[],getDynamicImport("./modules/alphanumericshortcuts/alphanumericshortcuts.js")),define("emby-scroller",[],getDynamicImport("./modules/emby-elements/emby-scroller/emby-scroller.js")),define("emby-tabs",[],getDynamicImport("./modules/emby-elements/emby-tabs/emby-tabs.js")),define("emby-scrollbuttons",[],getDynamicImport("./modules/emby-elements/emby-scrollbuttons/emby-scrollbuttons.js")),define("emby-progressring",[],getDynamicImport("./modules/emby-elements/emby-progressring/emby-progressring.js")),define("emby-itemrefreshindicator",[],getDynamicImport("./modules/emby-elements/emby-itemrefreshindicator/emby-itemrefreshindicator.js")),define("multiSelect",[],getDynamicImport("./modules/multiselect/multiselect.js")),define("alphaPicker",[],getDynamicImport("./modules/alphapicker/alphapicker.js")),define("paper-icon-button-light",[],getDynamicImport("./modules/emby-elements/emby-button/paper-icon-button-light.js")),define("tabbedView",[],getDynamicImport("./modules/tabbedview/tabbedview.js")),define("foldersTab",[],getDynamicImport("./modules/tabbedview/folderstab.js")),define("seriesTab",[],getDynamicImport("./modules/tabbedview/seriestab.js")),define("videosTab",[],getDynamicImport("./modules/tabbedview/videostab.js")),define("artistsTab",[],getDynamicImport("./modules/tabbedview/artiststab.js")),define("playlistsTab",[],getDynamicImport("./modules/tabbedview/playliststab.js")),define("tagsTab",[],getDynamicImport("./modules/tabbedview/tagstab.js")),define("genresTab",[],getDynamicImport("./modules/tabbedview/genrestab.js")),define("collectionsTab",[],getDynamicImport("./modules/tabbedview/collectionstab.js")),define("itemsTab",[],getDynamicImport("./modules/tabbedview/itemstab.js")),define("baseView",[],getDynamicImport("./modules/viewmanager/baseview.js")),define("baseTab",[],getDynamicImport("./modules/tabbedview/basetab.js")),define("ListPage",[],getDynamicImport("./list/list.js")),define("formHelper",[],getDynamicImport("./modules/formhelper.js")),define("connectHelper",[],getDynamicImport("./modules/emby-connect/connecthelper.js")),define("addToList",[],getDynamicImport("./modules/addtolist/addtolist.js")),define("ItemAccessDialog",[],getDynamicImport("./modules/itemaccessdialog/itemaccessdialog.js")),define("emby-input",[],getDynamicImport("./modules/emby-elements/emby-input/emby-input.js")),define("emby-select",[],getDynamicImport("./modules/emby-elements/emby-select/emby-select.js")),define("emby-multilineselect",[],getDynamicImport("./modules/emby-elements/emby-multilineselect/emby-multilineselect.js")),define("emby-slider",[],getDynamicImport("./modules/emby-elements/emby-slider/emby-slider.js")),define("emby-checkbox",[],getDynamicImport("./modules/emby-elements/emby-checkbox/emby-checkbox.js")),define("emby-progressbar",[],getDynamicImport("./modules/emby-elements/emby-progressbar/emby-progressbar.js")),define("embyProgressBarStyle",["css!modules/emby-elements/emby-progressbar/emby-progressbar"],returnFirstDependency),define("emby-radio",[],getDynamicImport("./modules/emby-elements/emby-radio/emby-radio.js")),define("emby-toggle",[],getDynamicImport("./modules/emby-elements/emby-toggle/emby-toggle.js")),define("emby-textarea",[],getDynamicImport("./modules/emby-elements/emby-textarea/emby-textarea.js")),define("serverRestartDialog",[],getDynamicImport("./modules/serverrestartdialog/serverrestartdialog.js")),define("channelRecordingCreator",[],getDynamicImport("./modules/recordingcreator/channelrecordingcreator.js")),define("recordingCreator",[],getDynamicImport("./modules/recordingcreator/recordingcreator.js")),define("recordingEditor",[],getDynamicImport("./modules/recordingcreator/recordingeditor.js")),define("seriesRecordingEditor",[],getDynamicImport("./modules/recordingcreator/seriesrecordingeditor.js")),define("recordingFields",[],getDynamicImport("./modules/recordingcreator/recordingfields.js")),define("recordingButton",[],getDynamicImport("./modules/recordingcreator/recordingbutton.js")),define("subtitleEditor",[],getDynamicImport("./modules/subtitleeditor/subtitleeditor.js")),define("itemIdentifier",[],getDynamicImport("./modules/itemidentifier/itemidentifier.js")),define("imageEditor",[],getDynamicImport("./modules/imageeditor/imageeditor.js")),define("imageDownloader",[],getDynamicImport("./modules/imagedownloader/imagedownloader.js")),define("itemContextMenu",[],getDynamicImport("./modules/itemcontextmenu.js")),define("dom",[],getDynamicImport("./modules/dom.js")),define("textEncoding",[],getDynamicImport("./modules/common/textencoding.js")),define("playerStats",[],getDynamicImport("./modules/playerstats/playerstats.js")),define("subtitleOffsetOverlay",[],getDynamicImport("./modules/subtitleoffsetoverlay/subtitleoffsetoverlay.js")),define("subtitleAppearanceHelper",[],getDynamicImport("./modules/common/subtitleappearancehelper.js")),define("playbackManager",["fullscreenManager"],getDynamicImport("./modules/common/playback/playbackmanager.js")),define("homeSections",[],getDynamicImport("./modules/homesections/homesections.js")),define("refreshDialog",[],getDynamicImport("./modules/refreshdialog/refreshdialog.js")),define("cardStyle",["css!modules/cardbuilder/card"],returnFirstDependency),define("cardBuilder",[],getDynamicImport("./modules/cardbuilder/cardbuilder.js")),define("mouseManager",[],getDynamicImport("./modules/input/mouse.js")),define("keyboardManager",[],getDynamicImport("./modules/input/keyboard.js")),define("flexStyles",["css!modules/flexstyles"],returnFirstDependency),define("tvguide",[],getDynamicImport("./modules/emby-elements/guide/guide.js")),define("programStyles",["css!modules/emby-elements/guide/programs"],returnFirstDependency),define("guide-settings-dialog",[],getDynamicImport("./modules/emby-elements/guide/guide-settings.js")),define("loadingDialog",[],getDynamicImport("./modules/loadingdialog/loadingdialog.js")),define("syncDialog",[],getDynamicImport("./modules/sync/sync.js")),define("syncJobEditor",[],getDynamicImport("./modules/sync/syncjobeditor.js")),define("syncJobList",[],getDynamicImport("./modules/sync/syncjoblist.js")),define("morphdom",[],getDynamicImport("./modules/morphdom/morphdom.js")),define("viewManager",[],getDynamicImport("./modules/viewmanager/viewmanager.js")),customPaths.apphost?define("apphost",[addJsExtIfNeeded(customPaths.apphost)],returnFirstDependency):"ios"===appMode?define("apphost",["native/ios/apphost"],returnFirstDependency):"android"===appMode?define("apphost",["native/android/apphost"],returnFirstDependency):"windows"===appMode?define("apphost",["native/windows/apphost"],returnFirstDependency):define("apphost",[],getDynamicImport("./modules/apphost.js")),globalThis.tizen&&globalThis.tizen.systeminfo&&(v=!(supportsTizenWasmSockets=(v=globalThis.tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version"))&&parseFloat(v)>=parseFloat("6.0"))&&v&&parseFloat(v)>=parseFloat("2.4")),customPaths.serverdiscovery?define("serverdiscovery",[addJsExtIfNeeded(customPaths.serverdiscovery)],returnFirstDependency):"windows"===appMode||"winjs"===appMode?define("serverdiscovery",["native/windows/serverdiscovery"],returnFirstDependency):globalThis.tizen&&(v||supportsTizenWasmSockets)?define("serverdiscovery",["native/tizen/serverdiscovery"],returnFirstDependency):"android"===appMode?define("serverdiscovery",["native/android/serverdiscovery"],returnFirstDependency):"ios"===appMode?define("serverdiscovery",["native/ios/serverdiscovery"],returnFirstDependency):define("serverdiscovery",[],getDynamicImport("./modules/emby-apiclient/serverdiscovery.js")),customPaths.wakeonlan?define("wakeOnLan",[addJsExtIfNeeded(customPaths.wakeonlan)],returnFirstDependency):"windows"===appMode||"winjs"===appMode?define("wakeOnLan",["native/windows/wakeonlan"],returnFirstDependency):globalThis.tizen&&(v||supportsTizenWasmSockets)?define("wakeOnLan",["native/tizen/wakeonlan"],returnFirstDependency):"ios"===appMode?define("wakeOnLan",["native/ios/wakeonlan"],returnFirstDependency):"android"===appMode?define("wakeOnLan",["native/android/wakeonlan"],returnFirstDependency):define("wakeOnLan",[],getDynamicImport("./modules/emby-apiclient/wakeonlan.js")),define("appStorage",[],loadAppStorage),customPaths={urlArgs:globalThis.urlCacheParam,renameJsExtension:globalThis.Emby.jsExtension},"android"!==appMode&&((baseRoute=(baseRoute=globalThis.location.href.split("?")[0].replace("/index.html","")).split("#")[0]).lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting require baseUrl to "+baseRoute),customPaths.baseUrl=baseRoute),require.config(customPaths),define("slideshow",[],getDynamicImport("./modules/slideshow/slideshow.js")),define("clearButtonStyle",[],returnFirstDependency),define("emby-downloadbutton",[],getDynamicImport("./modules/emby-elements/sync/emby-downloadbutton.js")),define("listView",[],getDynamicImport("./modules/listview/listview.js")),define("listViewStyle",["css!modules/listview/listview"],returnFirstDependency),define("formDialogStyle",["css!modules/formdialog"],returnFirstDependency),define("sectionsStyle",["css!modules/sections"],returnFirstDependency),define("indicators",[],getDynamicImport("./modules/indicators/indicators.js")),define("mediaInfo",[],getDynamicImport("./modules/mediainfo/mediainfo.js")),define("emby-playstatebutton",[],getDynamicImport("./modules/emby-elements/userdatabuttons/emby-playstatebutton.js")),define("emby-ratingbutton",[],getDynamicImport("./modules/emby-elements/userdatabuttons/emby-ratingbutton.js")),define("viewSettings",[],getDynamicImport("./modules/viewsettings/viewsettings.js")),define("filterMenu",[],getDynamicImport("./modules/filtermenu/filtermenu.js")),define("genericedit",[],getDynamicImport("./modules/genericedit/genericedit.js")),define("registrationServices",[],getDynamicImport("./modules/registrationservices/registrationservices.js")),define("serversync",[],getDynamicImport("./modules/sync/serversync.js")),define("multiserversync",[],getDynamicImport("./modules/sync/multiserversync.js")),define("mediasync",["modules/sync/mediasync"],returnFirstDependency),define("scroller",[],getDynamicImport("./modules/scroller/smoothscroller.js")),define("scrollStyles",["css!modules/scrollstyles"],returnFirstDependency),define("toast",[],getDynamicImport("./modules/toast/toast.js")),define("layoutManager",[],getDynamicImport("./modules/layoutmanager.js")),define("appSettings",["appStorage"],getDynamicImport("./modules/common/appsettings.js")),define("appsettings",["appSettings"],returnFirstDependency),define("userSettings",[],getDynamicImport("./modules/common/usersettings/usersettings.js")),define("userSettingsBuilder",[],getDynamicImport("./modules/common/usersettings/usersettingsbuilder.js")),define("material-icons",["css!modules/fonts/material-icons/style"],returnFirstDependency),define("systemFontsCss",["css!modules/fonts/fonts"],returnFirstDependency),define("imageUploader",[],getDynamicImport("./modules/imageuploader/imageuploader.js")),define("dockedTabs",[],getDynamicImport("./modules/dockedtabs/dockedtabs.js")),define("navdrawer",[],getDynamicImport("./modules/navdrawer/navdrawer.js")),define("navDrawerContent",[],getDynamicImport("./modules/navdrawer/navdrawercontent.js")),define("queryString",[],getDynamicImport("./modules/common/querystring.js")),define("alert",[],getDynamicImport("./modules/common/dialogs/alert.js")),define("confirm",[],getDynamicImport("./modules/common/dialogs/confirm.js")),define("dialog",[],getDynamicImport("./modules/dialog/dialog.js")),define("dialogHelper",[],getDynamicImport("./modules/dialoghelper/dialoghelper.js")),define("dialogTemplateHtml",["text!modules/dialog/dialog.template.html"],returnFirstDependency),define("prompt",[],getDynamicImport("./modules/prompt/prompt.js")),define("jQuery",["https://code.jquery.com/jquery-3.7.0.slim.min.js"],function(){return globalThis.ApiClient&&(globalThis.jQuery.ajax=globalThis.ApiClient.ajax),globalThis.jQuery}),define("screensaverManager",[],getDynamicImport("./modules/screensavermanager.js")),define("serverNotifications",[],getDynamicImport("./modules/common/input/api.js")),define("apiInput",["serverNotifications"],returnFirstDependency),define("headroom",[],getDynamicImport("./modules/headroom/headroom.js")),define("appFooter",[],getDynamicImport("./modules/appfooter/appfooter.js")),define("apiClientResolver",["connectionManager"],function(connectionManager){return function(){return connectionManager.currentApiClient()}}),define("appRouter",[],getDynamicImport("./modules/approuter.js")),define("embyRouter",["appRouter"],returnFirstDependency),define("actionsheet",[],getDynamicImport("./modules/actionsheet/actionsheet.js")),define("webActionSheet",["actionsheet"],returnFirstDependency),globalThis.tizen&&v&&define("sockets",["native/tizen/naclSockets/sockets"],returnFirstDependency),globalThis.tizen&&supportsTizenWasmSockets&&define("sockets",["native/tizen/wasmSockets/sockets"],returnFirstDependency),"android"===appMode?define("iapManager",["native/android/iap"],returnFirstDependency):"ios"===appMode?define("iapManager",["native/ios/iap"],returnFirstDependency):define("iapManager",[],getDynamicImport("./modules/iap.js")),define("multi-download",[],getDynamicImport("./modules/multidownload.js")),define("videoosd_infotab",[],getDynamicImport("./videoosd/infotab.js")),define("videoosd_chapterstab",[],getDynamicImport("./videoosd/chapterstab.js")),define("videoosd_peopletab",[],getDynamicImport("./videoosd/peopletab.js")),define("videoosd_onnowtab",[],getDynamicImport("./videoosd/onnowtab.js")),define("videoosd_guidetab",[],getDynamicImport("./videoosd/guidetab.js")),define("localassetmanager",[],getDynamicImport("./modules/localdatabase/localassetmanager.js")),"ios"===appMode?define("cameraUpload",["native/ios/cameraupload"],returnFirstDependency):"android"===appMode?define("cameraUpload",["native/android/cameraupload"],returnFirstDependency):define("cameraUpload",[],getDummyCameraUpload),define("detailtablecss",[],returnFirstDependency),baseRoute=[],globalThis.Emby.requiresClassesPolyfill&&baseRoute.push(require(["modules/babelhelpers"])),globalThis.ResizeObserver||baseRoute.push(importFromPathWithoutExport("./modules/polyfills/resizeobserver.js")),globalThis.IntersectionObserver||baseRoute.push(require(["modules/polyfills/intersection-observer"])),"undefined"==typeof fetch&&baseRoute.push(require(["bower_components/fetch/fetch"])),Promise.all(baseRoute).then(loadSecondLevelPolyfills,loadSecondLevelPolyfills).then(loadThirdLevelPolyfills,loadThirdLevelPolyfills).then(loadServiceLocator).then(createConnectionManager).then(loadGlobalization).then(loadFirstLevelPresentationDependencies).then(function(){console.log("loadPlugins");var startInfo=this;return Promise.all([importFromPath("./modules/common/servicelocator.js"),importFromPath("./modules/browser.js"),importFromPath("./modules/approuter.js")]).then(function(responses){var appHost=responses[0].appHost,responses=responses[1],externalPlugins=(appHost.supports("windowstate")&&(document.querySelector(".skinHeader").insertAdjacentHTML("beforeend",'<div class="windowDragRegion hide-mouse-idle-tv"></div>'),require(["css!modules/windowdrag.css"])),startInfo.plugins||[]),list=(console.log("Loading installed plugins"),["./modules/common/playback/playbackvalidation.js","./modules/common/playback/playaccessvalidation.js","./modules/common/playback/experimentalwarnings.js"]);appHost.supports("soundeffects")&&list.push("./modules/soundeffects/defaultsoundeffects/plugin.js"),appHost.supports("screensaver")&&(list.push("./modules/logoscreensaver/plugin.js"),list.push("./modules/backdropscreensaver/plugin.js"),list.push("./modules/photoscreensaver/plugin.js")),"android"===appMode?(list.push("native/android/mpvvideoplayer"),list.push("native/android/mpvaudioplayer")):"ios"===appMode?(list.push("native/ios/mpvaudioplayer"),list.push("native/ios/mpvvideoplayer")):"windows"===appMode&&(list.push("native/windows/mpvvideoplayer"),list.push("native/windows/nativeaudioplayer")),list.push("./modules/htmlaudioplayer/plugin.js"),"ios"===appMode&&list.push("native/ios/chromecast"),"android"===appMode&&(list.push("native/android/externalplayer"),list.push("native/android/chromecast")),globalThis.webapis&&webapis.avplay?list.push("native/tizen/tizenavplayer/plugin"):list.push("./modules/htmlvideoplayer/plugin.js"),list.push("./modules/photoplayer/plugin.js"),appHost.supports("remotecontrol")&&(list.push("./modules/sessionplayer.js"),!globalThis.chrome||responses.edge||responses.electron||"android"===appMode||list.push("./modules/chromecast/chromecastplayer.js")),(appHost.supports("youtube")||responses.electron)&&list.push("winjs"===appMode?"native/windows/youtubeplayer/plugin":"./modules/youtubeplayer/plugin.js");for(var i=0,length=externalPlugins.length;i<length;i++)list.push(externalPlugins[i]);return responses.electron&&list.push("./modules/externalplayer/plugin.js"),list.push("./modules/confirmstillplaying/plugin.js"),list.push("./modules/CustomCssJS.js"),Promise.all(list.map(loadPlugin))})}.bind(startInfo)).then(function(){return console.log("loadExternalScripts"),require(this.scripts||[])}.bind(startInfo)).then(loadHeader).then(onAppReady)}globalThis.Emby||(globalThis.Emby={}),globalThis.Emby.importModule=importFromPath,globalThis.Emby.App={start:start},-1===globalThis.location.href.toString().toLowerCase().indexOf("autostart=false")&&start()}();