import BaseSettingsView from"./../modules/viewmanager/basesettingsview.js";import loading from"./../modules/loading/loading.js";import globalize from"./../modules/common/globalize.js";import"./../modules/emby-elements/emby-input/emby-input.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../modules/emby-elements/emby-select/emby-select.js";import"./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js";import formHelper from"./../modules/common/responsehelper.js";function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onSubmit(e){let form=this,localAddress=form.querySelector(".txtLocalAddress").value,enableUpnp=form.querySelector(".chkEnableUpnp").checked;confirmSelections(localAddress,enableUpnp,function(){var validationResult=getValidationAlert(form);validationResult?showAlert(validationResult):validateHttps(form).then(function(){loading.show(),ApiClient.getServerConfiguration().then(function(config){config.LocalNetworkSubnets=form.querySelector(".txtLanNetworks").value.split(",").map(function(s){return s.trim()}).filter(function(s){return 0";for(let i=1;i<=50;i++)html+='";view.querySelector(".selectStreamLimit").innerHTML=html}function showFieldsBasedOnSystemInfo(view){ApiClient.getSystemInfo().then(function(systemInfo){!1!==systemInfo.SupportsLocalPortConfiguration?(view.querySelector(".fldlocalHttpPort").classList.remove("hide"),view.querySelector(".fldlocalHttpsPort").classList.remove("hide")):(view.querySelector(".fldlocalHttpPort").classList.add("hide"),view.querySelector(".fldlocalHttpsPort").classList.add("hide"))})}function onCertPathChange(){}function loadPage(page,config){page.querySelector(".txtPortNumber").value=config.HttpServerPortNumber,page.querySelector(".txtPublicPort").value=config.PublicPort,page.querySelector(".txtPublicHttpsPort").value=config.PublicHttpsPort,page.querySelector(".txtLocalAddress").value=config.LocalNetworkAddresses[0]||"",page.querySelector(".txtLanNetworks").value=(config.LocalNetworkSubnets||[]).join(", "),page.querySelector(".txtExternalAddressFilter").value=(config.RemoteIPFilter||[]).join(", "),page.querySelector(".txtRemoteClientBitrateLimit").value=config.RemoteClientBitrateLimit/1e6||"",page.querySelector(".selectExternalAddressFilterMode").value=config.IsRemoteIPFilterBlacklist?"blacklist":"whitelist",page.querySelector(".chkRemoteAccess").checked=null==config.EnableRemoteAccess||config.EnableRemoteAccess;var selectHttpsMode=page.querySelector(".selectHttpsMode"),selectHttpsMode=(config.IsBehindProxy?selectHttpsMode.value="proxy":config.RequireHttps?selectHttpsMode.value="required":config.EnableHttps?selectHttpsMode.value="enabled":selectHttpsMode.value="disabled",page.querySelector(".txtHttpsPort").value=config.HttpsPortNumber,page.querySelector(".txtDdns").value=config.WanDdns||"",page.querySelector(".txtCertificatePath"));selectHttpsMode.value=config.CertificatePath||"",page.querySelector(".txtCertPassword").value=config.CertificatePassword||"",page.querySelector(".chkEnableUpnp").checked=config.EnableUPnP,page.querySelector(".selectStreamLimit").value=config.SimultaneousStreamLimit||"0",page.querySelector(".selectProxyHeaderMode").value=config.ProxyHeaderMode||"AllAddresses",ApiClient.isMinServerVersion("4.8.0.42")?page.querySelector(".fldProxyHeaderMode").classList.remove("hide"):page.querySelector(".fldProxyHeaderMode").classList.add("hide"),page.querySelector(".selectProxyHeaderModeHelp").innerHTML=globalize.translate("ProxyHeaderModeHelp","X-Real-Ip","X-Forwarded-For"),onCertPathChange.call(selectHttpsMode),triggerChange(page.querySelector(".chkRemoteAccess")),loading.hide()}function determinePortMapperSupport(instance){return instance.portMapperDetermined?Promise.resolve():ApiClient.getInstalledPlugins().then(function(plugins){instance.portMapperDetermined=!0,plugins.filter(isPortMapperPlugin).length||(instance.portMapperSupported=!1)})}function View(view,params){BaseSettingsView.apply(this,arguments),this.portMapperSupported=!0,view.querySelector(".fldStreamLimit").classList.remove("hide"),fillStreamLimit(view),view.querySelector(".streamLimitPremiereInfo").innerHTML=globalize.translate("FeatureRequiresEmbyPremiere",'',"");let instance=this;view.querySelector(".chkRemoteAccess").addEventListener("change",function(){this.checked?(view.querySelector(".fldExternalAddressFilter").classList.remove("hide"),view.querySelector(".fldExternalAddressFilterMode").classList.remove("hide"),view.querySelector(".fldPublicPort").classList.remove("hide"),view.querySelector(".fldPublicHttpsPort").classList.remove("hide"),view.querySelector(".fldDdns").classList.remove("hide"),view.querySelector(".fldCertificatePath").classList.remove("hide"),view.querySelector(".fldCertPassword").classList.remove("hide"),view.querySelector(".fldHttpsMode").classList.remove("hide"),view.querySelector(".fldRemoteBitrate").classList.remove("hide"),instance.portMapperSupported?view.querySelector(".fldEnableUpnp").classList.remove("hide"):view.querySelector(".fldEnableUpnp").classList.add("hide")):(view.querySelector(".fldExternalAddressFilter").classList.add("hide"),view.querySelector(".fldExternalAddressFilterMode").classList.add("hide"),view.querySelector(".fldPublicPort").classList.add("hide"),view.querySelector(".fldPublicHttpsPort").classList.add("hide"),view.querySelector(".fldDdns").classList.add("hide"),view.querySelector(".fldCertificatePath").classList.add("hide"),view.querySelector(".fldCertPassword").classList.add("hide"),view.querySelector(".fldHttpsMode").classList.add("hide"),view.querySelector(".fldEnableUpnp").classList.add("hide"),view.querySelector(".fldRemoteBitrate").classList.add("hide"))}),view.querySelector(".btnSelectCertPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){let picker=new directoryBrowser;picker.show({includeFiles:!0,includeDirectories:!0,callback:function(path){path&&(view.querySelector(".txtCertificatePath").value=path),picker.close()},header:globalize.translate("HeaderSelectCertificatePath")})})}),view.querySelector(".dashboardHostingForm").addEventListener("submit",onSubmit),view.querySelector(".txtCertificatePath").addEventListener("change",onCertPathChange),showFieldsBasedOnSystemInfo(view)}Object.assign(View.prototype,BaseSettingsView.prototype),View.prototype.loadSettingsInternal=function(){loading.show();let view=this.view;return determinePortMapperSupport(this).then(function(){return ApiClient.getServerConfiguration().then(function(config){loadPage(view,config)})})};export default View;