import BaseView from"./../modules/viewmanager/basesettingsview.js";import{appHost}from"./../modules/common/servicelocator.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import currentUserSettings from"./../modules/common/usersettings/usersettings.js";import userSettingsBuilder from"./../modules/common/usersettings/usersettingsbuilder.js";import loading from"./../modules/loading/loading.js";import globalize from"./../modules/common/globalize.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-select/emby-select.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-input/emby-input.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.js";import layoutManager from"./../modules/layoutmanager.js";import appSettings from"./../modules/common/appsettings.js";import qualityOptions from"./../modules/common/qualityoptions.js";import browser from"./../modules/browser.js";function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function fillSkipLengths(select){select.innerHTML=[5,10,15,20,25,30].map(function(option){return{name:globalize.translate("ValueSeconds",option),value:1e3*option}}).map(function(o){return'"}).join("")}function fillResumeRewindSeconds(select){select.innerHTML=[0,5,10,15,20].map(function(option){return{name:globalize.translate("ValueSeconds",option),value:option}}).map(function(o){return'"}).join("")}function setMaxBitrateIntoField(select,isInNetwork,mediatype){var options="Audio"===mediatype?qualityOptions.getAudioQualityOptions({currentMaxBitrate:appSettings.maxStreamingBitrate(isInNetwork,mediatype),isAutomaticBitrateEnabled:appSettings.enableAutomaticBitrateDetection(isInNetwork,mediatype),enableAuto:!0}):qualityOptions.getVideoQualityOptions({currentMaxBitrate:appSettings.maxStreamingBitrate(isInNetwork,mediatype),isAutomaticBitrateEnabled:appSettings.enableAutomaticBitrateDetection(isInNetwork,mediatype),enableAuto:!0});select.innerHTML=options.map(function(i){return'"}).join(""),appSettings.enableAutomaticBitrateDetection(isInNetwork,mediatype)?select.value="":select.value=appSettings.maxStreamingBitrate(isInNetwork,mediatype)}function fillChromecastQuality(select){var options=qualityOptions.getVideoQualityOptions({currentMaxBitrate:appSettings.maxChromecastBitrate(),isAutomaticBitrateEnabled:!appSettings.maxChromecastBitrate(),enableAuto:!0});select.innerHTML=options.map(function(i){return'"}).join("")}function setMaxBitrateFromField(select,isInNetwork,mediatype,value){select.value?(appSettings.maxStreamingBitrate(isInNetwork,mediatype,select.value),appSettings.enableAutomaticBitrateDetection(isInNetwork,mediatype,!1)):appSettings.enableAutomaticBitrateDetection(isInNetwork,mediatype,!0)}function showHideFields(context,user,apiClient){var userId=user.Id,loggedInUserId=apiClient.getCurrentUserId();layoutManager.tv||browser.tv||!screen.orientation?.lock?context.querySelector(".fldOrientationLock").classList.add("hide"):context.querySelector(".fldOrientationLock").classList.remove("hide"),appHost.supports("backgroundvideo")?context.querySelector(".fldBackgroundVideo").classList.remove("hide"):context.querySelector(".fldBackgroundVideo").classList.add("hide"),appHost.supports("externalplayerintent")&&userId===loggedInUserId?context.querySelector(".fldExternalPlayer").classList.remove("hide"):context.querySelector(".fldExternalPlayer").classList.add("hide"),userId===loggedInUserId?(context.querySelector(".videoQualitySection").classList.remove("hide"),appHost.supports("chromecast")?context.querySelector(".fldChromecastQuality").classList.remove("hide"):context.querySelector(".fldChromecastQuality").classList.add("hide")):(context.querySelector(".videoQualitySection").classList.add("hide"),context.querySelector(".fldChromecastQuality").classList.add("hide")),appHost.supports("changerefreshrate")?(context.querySelector(".fldEnableRefreshRate").classList.remove("hide"),context.querySelector(".fldEnableResolutionSwitch").classList.remove("hide")):(context.querySelector(".fldEnableRefreshRate").classList.add("hide"),context.querySelector(".fldEnableResolutionSwitch").classList.add("hide")),"554ae9ea56b94c1c82cc628f6de52d85"===apiClient.serverId()?context.querySelector(".fldEnableNextVideoOverlay").classList.add("hide"):context.querySelector(".fldEnableNextVideoOverlay").classList.remove("hide"),appHost.supports("multiserver")?(context.querySelector(".fldVideoInNetworkQuality").classList.remove("hide"),context.querySelector(".fldVideoInternetQuality").classList.remove("hide"),user.Policy.EnableAudioPlaybackTranscoding?context.querySelector(".musicQualitySection").classList.remove("hide"):context.querySelector(".musicQualitySection").classList.add("hide")):apiClient.getEndpointInfo().then(function(endpointInfo){endpointInfo.IsInNetwork?(context.querySelector(".fldVideoInNetworkQuality").classList.remove("hide"),context.querySelector(".fldVideoInternetQuality").classList.add("hide"),context.querySelector(".musicQualitySection").classList.add("hide")):(context.querySelector(".fldVideoInNetworkQuality").classList.add("hide"),context.querySelector(".fldVideoInternetQuality").classList.remove("hide"),user.Policy.EnableAudioPlaybackTranscoding?context.querySelector(".musicQualitySection").classList.remove("hide"):context.querySelector(".musicQualitySection").classList.add("hide"))})}function showOrHideEpisodesField(context,user,apiClient){"554ae9ea56b94c1c82cc628f6de52d85"===apiClient.serverId()?context.querySelector(".fldEpisodeAutoPlay").classList.add("hide"):context.querySelector(".fldEpisodeAutoPlay").classList.remove("hide")}function onSubmit(e){return e.preventDefault(),!1}function loadData(options){let context=options.element,userId=(loading.show(),options.userId),apiClient=connectionManager.getApiClient(options.serverId),userSettings=options.userSettings;return apiClient.getUser(userId).then(function(user){return options.user=user,(userId===apiClient.getCurrentUserId()?Promise.resolve():userSettings.setUserInfo(userId,apiClient)).then(function(){showHideFields(context,user,apiClient),fillChromecastQuality(context.querySelector(".selectChromecastVideoQuality")),showOrHideEpisodesField(context,user,apiClient),loading.hide()})})}function onTrackSelectionsCleared(){loading.hide()}function onClearSavedTrackSelectionsClick(e){let options=this;let mode=e.target.closest("button").getAttribute("data-mode");return showConfirm({title:globalize.translate("HeaderClearTrackSelections"),text:globalize.translate("QuestionClearSavedTracks"),confirmText:globalize.translate("HeaderClearTrackSelections"),primary:"cancel"}).then(function(){return loading.show(),connectionManager.getApiClient(options.serverId).clearUserTrackSelections(options.userId,mode).then(onTrackSelectionsCleared,onTrackSelectionsCleared)})}function onSelectVideoUnderUIChange(e){var form=this.closest("form");layoutManager.tv&&"stop"===this.value?form.querySelector(".fldHideMediaTransport").classList.remove("hide"):form.querySelector(".fldHideMediaTransport").classList.add("hide")}function getAudioLanguages(query){var apiClient=connectionManager.getApiClient(this.settingsOptions.serverId);let instance=this;return apiClient.getCultures().then(function(cultures){let selectedValues=instance.settingsOptions.element.querySelector(".selectAudioLanguage").values,items=(Array.isArray(selectedValues)||(selectedValues=selectedValues?.split?selectedValues.split(","):[]),cultures.map(function(c){return{Name:c.DisplayName,Id:c.TwoLetterISOLanguageName,Type:"GenericListItem",CanReorder:-1!==selectedValues.indexOf(c.TwoLetterISOLanguageName)&&1query.Limit&&(items.length=Math.min(items.length,query.Limit)),{TotalRecordCount:cultures,Items:items}})}function View(view,params){BaseView.apply(this,arguments);var apiClient=connectionManager.getApiClient(params.serverId),params=params.userId||apiClient.getCurrentUserId(),userSettings=params===apiClient.getCurrentUserId()?currentUserSettings:new userSettingsBuilder,apiClient={serverId:apiClient.serverId(),userId:params,element:view.querySelector(".settingsContainer"),userSettings:userSettings};(this.settingsOptions=apiClient).element.querySelector("form").addEventListener("submit",onSubmit.bind(apiClient)),apiClient.element.querySelector(".btnClearTrackSelections").addEventListener("click",onClearSavedTrackSelectionsClick.bind(apiClient)),apiClient.element.querySelector(".selectVideoUnderUI").addEventListener("change",onSelectVideoUnderUIChange),fillResumeRewindSeconds(view.querySelector(".selectResumeRewind")),fillSkipLengths(view.querySelector(".selectSkipForwardLength")),fillSkipLengths(view.querySelector(".selectSkipBackLength")),apiClient.element.querySelector(".selectAudioLanguage").getItems=getAudioLanguages.bind(this)}function getUserConfiguration(options){return Promise.resolve({key:"userconfiguration",value:options.user.Configuration})}Object.assign(View.prototype,BaseView.prototype),View.prototype.loadSettingsInternal=function(){let instance=this;return loadData(instance.settingsOptions).then(function(){return instance.loadAutoSettings()})},View.prototype.getAutoSettingsObjectsPromises=function(){var list=BaseView.prototype.getAutoSettingsObjectsPromises.apply(this,arguments);return list.push(getUserConfiguration(this.settingsOptions)),list},View.prototype.loadAutoSetting=function(elem){if(elem.classList.contains("selectVideoInNetworkQuality"))setMaxBitrateIntoField(elem,!0,"Video");else if(elem.classList.contains("selectVideoInternetQuality"))setMaxBitrateIntoField(elem,!1,"Video");else{if(!elem.classList.contains("selectMusicInternetQuality"))return BaseView.prototype.loadAutoSetting.apply(this,arguments);setMaxBitrateIntoField(elem,!1,"Audio")}},View.prototype.getSettingValueFromOwner=function(owner,memberInfo){return"enableVideoUnderUI"!==memberInfo.member?BaseView.prototype.getSettingValueFromOwner.apply(this,arguments):BaseView.prototype.getSettingValueFromOwner.apply(this,arguments)?"play":"stop"},View.prototype.getNamedSettingsOwner=function(owner){switch(owner){case"usersettings":return this.settingsOptions.userSettings;case"userconfiguration":return this.settingsOptions.user.Configuration;default:return BaseView.prototype.getNamedSettingsOwner.apply(this,arguments)}},View.prototype.getUserConfigurationUserId=function(){return this.settingsOptions.userId},View.prototype.saveAutoSettingIntoOwner=function(elem,owner,memberInfo,value){if("enableVideoUnderUI"===memberInfo.member)return BaseView.prototype.saveAutoSettingIntoOwner.call(this,elem,owner,memberInfo,value="play"===value);if("selectVideoInNetworkQuality"===memberInfo.member)setMaxBitrateFromField(elem,!0,"Video");else if("selectVideoInternetQuality"===memberInfo.member)setMaxBitrateFromField(elem,!1,"Video");else{if("selectMusicInternetQuality"!==memberInfo.member)return BaseView.prototype.saveAutoSettingIntoOwner.apply(this,arguments);setMaxBitrateFromField(elem,!1,"Audio")}},View.prototype.destroy=function(){BaseView.prototype.destroy.apply(this,arguments),this.settingsOptions=null};export default View;