import appSettings from"./../appsettings.js";import events from"./../../emby-apiclient/events.js";function onSaveTimeout(){this.saveTimeout=null,this.currentApiClient.updateDisplayPreferences(this.displayPrefs,this.currentUserId)}function saveServerPreferences(instance,name,value){var obj;instance.supportsPartialSave?((obj={})[name]=value,instance.currentApiClient.updatePartialDisplayPreferences(obj,instance.currentUserId)):(instance.saveTimeout&&clearTimeout(instance.saveTimeout),instance.saveTimeout=setTimeout(onSaveTimeout.bind(instance),50))}function UserSettings(){}function getHomeSection(instance,index){let section=instance.get("homesection"+index)||instance.getDefaultHomeScreenSection(index);return"folders"===section?section=instance.getDefaultHomeScreenSection(0):"onnow"===section?section="livetv":"librarytiles"!==section&&"smalllibrarytiles-automobile"!==section&&"librarytiles-automobile"!==section||(section="smalllibrarytiles"),section}UserSettings.prototype.setUserInfo=function(userId,apiClient){if(this.saveTimeout&&clearTimeout(this.saveTimeout),this.currentUserId=userId,this.currentApiClient=apiClient,this.supportsPartialSave=apiClient?.isMinServerVersion("4.9.0.23"),!userId)return this.displayPrefs=null,Promise.resolve();let self=this;return apiClient.getDisplayPreferences(userId).then(function(result){self.displayPrefs=result,events.trigger(self,"load")})},UserSettings.prototype.getData=function(){return this.displayPrefs},UserSettings.prototype.importFrom=function(instance){this.displayPrefs=instance.getData()},UserSettings.prototype.set=function(name,value,enableOnServer){var currentValue,userId=this.currentUserId;if(userId)return currentValue=this.get(name,enableOnServer),userId=appSettings.set(name,value=null==value?null:value,userId),!1!==enableOnServer&&this.displayPrefs&&(enableOnServer=null==value?value:value.toString(),this.displayPrefs[name]=enableOnServer,saveServerPreferences(this,name,enableOnServer)),currentValue!==value&&events.trigger(this,"change",[name,value]),userId;throw new Error("userId cannot be null")},UserSettings.prototype.remove=function(name,enableOnServer){return this.set(name,null,enableOnServer)},UserSettings.prototype.get=function(name,enableOnServer){var userId=this.currentUserId;return userId?!1!==enableOnServer&&this.displayPrefs?this.displayPrefs[name]:appSettings.get(name,userId):null},UserSettings.prototype.serverConfig=function(config){var apiClient=this.currentApiClient;return config?apiClient.updateUserConfiguration(this.currentUserId,config):apiClient.getUser(this.currentUserId).then(function(user){return user.Configuration})},UserSettings.prototype.enableCinemaMode=function(val){return null!=val?this.set("enableCinemaMode",val.toString(),!1):!(val=this.get("enableCinemaMode",!1))||"false"!==val},UserSettings.prototype.enableNextVideoInfoOverlay=function(val){return null!=val?this.set("enableNextVideoInfoOverlay",val.toString()):"false"!==(val=this.get("enableNextVideoInfoOverlay"))},UserSettings.prototype.getEnableLogoAsTitle=function(displayLanguage){var val=this.get("enableLogoAsTitle");return val?"true"===val:displayLanguage&&displayLanguage.toLowerCase().startsWith("en")},UserSettings.prototype.setEnableLogoAsTitle=function(val){return this.set("enableLogoAsTitle",val.toString())},UserSettings.prototype.enableThemeSongs=function(val){return null!=val?this.set("enableThemeSongs",val.toString(),!1):"false"!==(val=this.get("enableThemeSongs",!1))},UserSettings.prototype.groupCollectionItems=function(val){return null!=val?this.set("groupCollectionItems",val.toString(),!0):"false"!==(val=this.get("groupCollectionItems",!0))},UserSettings.prototype.enableThemeVideos=function(val){return null!=val?this.set("enableThemeVideos",val.toString(),!1):!!(val=this.get("enableThemeVideos",!1))&&"false"!==val},UserSettings.prototype.hideMediaTransportButtons=function(val){return null!=val?this.set("hideMediaTransportButtons",val.toString(),!1):this.get("hideMediaTransportButtons",!1)||"auto"},UserSettings.prototype.enableHomescreenFocusPreviews=function(val){return null!=val?this.set("enableHomescreenFocusPreviews",val.toString(),!0):"true"===(val=this.get("enableHomescreenFocusPreviews",!0))},UserSettings.prototype.enableBackdrops=function(val){return null!=val?this.set("enableBackdrops",val.toString(),!1):!!(val=this.get("enableBackdrops",!1))&&"false"!==val},UserSettings.prototype.genreLimitForListsOnDetails=function(val){return null!=val?this.set("genreLimitForListsOnDetails",val.toString(),!0):parseInt(this.get("genreLimitForListsOnDetails",!0)||"3")},UserSettings.prototype.genreLimitOnDetails=function(val){return null!=val?this.set("genreLimitOnDetails",val.toString(),!0):parseInt(this.get("genreLimitOnDetails",!0)||"1")},UserSettings.prototype.showDetailPoster=function(isTvLayout,val){var key="showDetailPoster"+(isTvLayout?"tv":"");if(null!=val)return this.set(key,val.toString(),!0);switch(val=this.get(key,!0)){case"true":return!0;case"false":return!1;default:return!isTvLayout}},UserSettings.prototype.showEndsAtOnDetails=function(val){return null!=val?this.set("showEndsAtOnDetails",val.toString(),!0):"false"!==(val=this.get("showEndsAtOnDetails",!0))},UserSettings.prototype.enableRatingInfoOnPlaybackStart=function(val){return null!=val?this.set("enableRatingInfoOnPlaybackStart",val.toString(),!0):"false"!==(val=this.get("enableRatingInfoOnPlaybackStart",!0))},UserSettings.prototype.language=function(val){return null!=val?this.set("language",val.toString(),!1):this.get("language",!1)},UserSettings.prototype.dateTimeLocale=function(val){return null!=val?this.set("datetimelocale",val.toString(),!1):this.get("datetimelocale",!1)},UserSettings.prototype.skipBackLength=function(val){return null!=val?this.set("skipBackLength",val.toString()):parseInt(this.get("skipBackLength")||"10000")},UserSettings.prototype.skipForwardLength=function(val){return null!=val?this.set("skipForwardLength",val.toString()):parseInt(this.get("skipForwardLength")||"10000")},UserSettings.prototype.settingsTheme=function(val){return null!=val?this.set("settingsTheme",val,!1):this.get("settingsTheme",!1)},UserSettings.prototype.theme=function(val){return null!=val?this.set("appTheme",val,!1):this.get("appTheme",!1)||null},UserSettings.prototype.accentColor=function(val){return null!=val?this.set("accentColor",val,!0):this.get("accentColor",!0)||"emby"},UserSettings.prototype.useSystemAccentColor=function(val){return null!=val?this.set("useSystemAccentColor",val.toString(),!1):"true"===this.get("useSystemAccentColor",!1)},UserSettings.prototype.screensaver=function(val){return null!=val?this.set("screensaver",val,!1):this.get("screensaver",!1)||null},UserSettings.prototype.soundEffects=function(val){return null!=val?this.set("soundeffects",val,!1):this.get("soundeffects",!1)||null},UserSettings.prototype.osdContentSection=function(val){return null!=val?this.set("osdcontentsection",val,!1):this.get("osdcontentsection",!1)},UserSettings.prototype.drawerStyle=function(val){return null!=val?this.set("drawerstyle",val,!1):this.get("drawerstyle",!1)||"docked"},UserSettings.prototype.settingsDrawerStyle=function(val){return null!=val?this.set("settingsdrawerstyle",val,!1):this.get("settingsdrawerstyle",!1)||"docked"},UserSettings.prototype.nowPlayingAudioBackgroundStyle=function(val){return null!=val?this.set("nowPlayingAudioBackgroundStyle",val,!0):this.get("nowPlayingAudioBackgroundStyle",!0)||"blur"},UserSettings.prototype.nowPlayingVideoBackgroundStyle=function(val){return null!=val?this.set("nowPlayingVideoBackgroundStyle",val,!0):this.get("nowPlayingVideoBackgroundStyle",!0)||"backdrop"},UserSettings.prototype.stillWatchingTimeMs=function(val){return null!=val?this.set("stillwatchingms",val,!0):parseInt(this.get("stillwatchingms",!0)||"14400000")},UserSettings.prototype.tvHome=function(val){return null!=val?this.set("tvhome",val,!0):this.get("tvhome",!0)||"vertical"},UserSettings.prototype.itemSortBy=function(itemId,val){itemId="sortitems-"+itemId+"-by";return null!=val?this.set(itemId,val,!1):this.get(itemId,!1)||""},UserSettings.prototype.itemSortOrder=function(itemId,val){itemId="sortitems-"+itemId+"-order";return null!=val?this.set(itemId,val,!1):this.get(itemId,!1)||"Ascending"},UserSettings.prototype.enableStillWatching=function(val){return null!=val?this.stillWatchingTimeMs(val?144e5:0):0