let numberToast=0,emptyInputFeedback="Can't leave empty";$('[data-toggle="tooltip"]').tooltip();let $add_configuration=$("#add_configuration"),addConfigurationModal=$("#addConfigurationModal");function showToast(a){$(".toastContainer").append(`
`),$(`#${numberToast}-toast`).toast("show"),$(`#${numberToast}-toast .toast-body`).html(a),$(`#${numberToast}-toast .toast-progressbar`).css("transition",`width ${$(`#${numberToast}-toast .toast-progressbar`).parent().data("delay")}ms cubic-bezier(0, 0, 0, 0)`),$(`#${numberToast}-toast .toast-progressbar`).css("width","0px"),numberToast++}function genKeyPair(){let a=window.wireguard.generateKeypair();$("#addConfigurationPrivateKey").val(a.privateKey).data("checked",!0)}function ajaxPostJSON(a,t,e){$.ajax({url:a,method:"POST",data:JSON.stringify(t),headers:{"Content-Type":"application/json"}}).done(function(a){e(a)})}function validInput(a){a.removeClass("is-invalid").addClass("is-valid").removeAttr("disabled").data("checked",!0)}function invalidInput(a,t,e){a.removeClass("is-valid").addClass("is-invalid").removeAttr("disabled").data("checked",!1),t.addClass("invalid-feedback").text(e)}function checkPort(a){let t=a;t.attr("disabled","disabled");let e=$("#addConfigurationListenPortFeedback");0==t.val().length?invalidInput(t,e,emptyInputFeedback):ajaxPostJSON("/api/addConfigurationPortCheck",{port:t.val()},function a(i){i.status?validInput(t):invalidInput(t,e,i.reason)})}function checkAddress(a){let t=a;t.attr("disabled","disabled");let e=$(".addConfigurationAvailableIPs"),i=$("#addConfigurationAddressFeedback");0==t.val().length?(invalidInput(t,i,emptyInputFeedback),e.html("N/A")):ajaxPostJSON("/api/addConfigurationAddressCheck",{address:t.val()},function a(n){n.status?(e.html(`${n.data}`),validInput(t)):(invalidInput(t,i,n.reason),e.html("N/A"))})}function checkName(a){let t=a,e=$("#addConfigurationNameFeedback");t.val(t.val().replace(/\s/g,"")).attr("disabled","disabled"),0===t.val().length?invalidInput(t,e,emptyInputFeedback):ajaxPostJSON("/api/addConfigurationNameCheck",{name:t.val()},function a(i){i.status?validInput(t):invalidInput(t,e,i.reason)})}addConfigurationModal.modal({keyboard:!1,backdrop:"static",show:!1}),addConfigurationModal.on("hidden.bs.modal",function(){$("#add_configuration_form").trigger("reset"),$("#add_configuration_form input").removeClass("is-valid").removeClass("is-invalid"),$(".addConfigurationAvailableIPs").text("N/A")}),$(".toggle--switch").on("change",function(){$(this).addClass("waiting").attr("disabled","disabled");let a=$(this).data("conf-id"),t=$(this).prop("checked"),e=$(this);$(this).siblings("label"),$.ajax({url:`/switch/${a}`}).done(function(i){let n=$(`div[data-conf-id="${a}"] .dot`);i.status?t?(n.removeClass("dot-stopped").addClass("dot-running"),n.siblings().text("Running"),showToast(`${a} is running.`)):(n.removeClass("dot-running").addClass("dot-stopped"),showToast(`${a} is stopped.`)):(e.parents().children(".card-message").html(`Configuration toggle failed. Please check the following error message:`),t?e.prop("checked",!1):e.prop("checked",!0)),e.removeClass("waiting").removeAttr("disabled")})}),$(".sb-home-url").addClass("active"),$(".card-body").on("click",function(a){"toggleLabel"!==$(a.target).attr("class")&&"toggle--switch"!==$(a.target).attr("class")&&window.open($(this).find("a").attr("href"),"_self")}),$("#reGeneratePrivateKey").on("click",function(){genKeyPair()}),$("#toggleAddConfiguration").on("click",function(){addConfigurationModal.modal("toggle"),genKeyPair()}),$("#addConfigurationPrivateKey").on("change",function(){$privateKey=$(this),$privateKeyFeedback=$("#addConfigurationPrivateKeyFeedback"),44!=$privateKey.val().length?invalidInput($privateKey,$privateKeyFeedback,"Invalid length"):validInput($privateKey)}),$("#addConfigurationListenPort").on("change",function(){checkPort($(this))}),$("#addConfigurationAddress").on("change",function(){checkAddress($(this))}),$("#addConfigurationName").on("change",function(){checkName($(this))}),$("#addConfigurationBtn").on("click",function(){$(this);let a=$("#add_configuration_form input"),t=!0;for(let e=0;e${i.message}