Files
WGDashboard/src/static/dist/WGDashboardAdmin/assets/peerAddModal-OeLCdC_5.js
T
2026-06-26 20:22:50 +08:00

2 lines
21 KiB
JavaScript

import{_ as k,h as y,c as d,f as i,a as e,m as h,b as o,e as w,y as f,n as b,W as $,D as I,v as A,w as E,F as C,i as O,t as S,T as j,I as F,d as g,G as D,r as L,$ as B,g as V,L as G,E as R,q as T,H as q,u as W,j as K,z as J}from"./index-DM7YJCOo.js";import{L as p}from"./localeText-BJvnc1lF.js";const z={name:"endpointAllowedIps",components:{LocaleText:p},props:{data:Object,saving:Boolean},setup(){const l=$(),t=I();return{store:l,dashboardStore:t}},data(){return{endpointAllowedIps:JSON.parse(JSON.stringify(this.data.endpoint_allowed_ip)),error:!1}},methods:{checkAllowedIP(){let l=this.endpointAllowedIps.split(",").map(t=>t.replaceAll(" ",""));for(let t in l)if(!this.store.checkCIDR(l[t])){this.error||this.dashboardStore.newMessage("WGDashboard","Endpoint Allowed IPs format is incorrect","danger"),this.data.endpoint_allowed_ip="",this.error=!0;return}this.error=!1,this.data.endpoint_allowed_ip=this.endpointAllowedIps}},watch:{endpointAllowedIps(){this.checkAllowedIP()}}},H={for:"peer_endpoint_allowed_ips",class:"form-label"},Q={class:"text-muted"},Y=["disabled"];function Z(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",null,[e("label",H,[e("small",Q,[o(s,{t:"Endpoint Allowed IPs"}),t[2]||(t[2]=w()),e("code",null,[o(s,{t:"(Required)"})])])]),h(e("input",{type:"text",class:b(["form-control form-control-sm rounded-3",{"is-invalid":r.error}]),disabled:this.saving,"onUpdate:modelValue":t[0]||(t[0]=a=>this.endpointAllowedIps=a),onBlur:t[1]||(t[1]=a=>this.checkAllowedIP()),id:"peer_endpoint_allowed_ips"},null,42,Y),[[f,this.endpointAllowedIps]])])}const X=k(z,[["render",Z]]),ee={name:"allowedIPsInput",components:{LocaleText:p},props:{data:Object,saving:Boolean,bulk:Boolean,availableIp:void 0},data(){return{allowedIp:[],availableIpSearchString:"",customAvailableIp:"",allowedIpFormatError:!1}},setup(l){const t=$(),n=I(),u=L("");return Object.keys(l.availableIp).length>0&&(u.value=Object.keys(l.availableIp)[0]),{store:t,dashboardStore:n,selectedSubnet:u}},computed:{searchAvailableIps(){return this.availableIpSearchString?this.availableIp[this.selectedSubnet].filter(l=>l.includes(this.availableIpSearchString)&&!this.data.allowed_ips.includes(l)):this.availableIp[this.selectedSubnet].filter(l=>!this.data.allowed_ips.includes(l))},inputGetLocale(){return D("Enter IP Address/CIDR")}},methods:{addAllowedIp(l){let t=l.split(",");for(let n=0;n<t.length;n++){let u=t[n].trim();if(this.store.checkCIDR(u))this.data.allowed_ips.push(u);else return this.allowedIpFormatError=!0,this.dashboardStore.newMessage("WGDashboard",`This Allowed IP address is invalid: ${u}`,"danger"),!1}return this.customAvailableIp="",!0}},watch:{customAvailableIp(){this.allowedIpFormatError=!1}},mounted(){if(this.availableIp!==void 0&&Object.keys(this.availableIp).length>0&&this.data.allowed_ips.length===0)for(let l in this.availableIp)this.availableIp[l].length>0&&this.addAllowedIp(this.availableIp[l][0])}},te={class:"d-flex flex-column flex-md-row mb-2"},se={for:"peer_allowed_ip_textbox",class:"form-label mb-0"},ae={class:"text-muted"},le={class:"form-check form-switch ms-md-auto"},oe={class:"form-check-label",for:"disableIPValidation"},ie={class:"d-flex"},de=["onClick"],ne={class:"d-flex gap-2 align-items-center"},re={class:"input-group"},ue=["placeholder","disabled"],ce=["disabled"],pe={class:"text-muted"},he={class:"dropdown flex-grow-1"},be=["disabled"],me={key:0,class:"dropdown-menu mt-2 shadow w-100 dropdown-menu-end rounded-3 pb-0",style:{width:"300px !important"}},_e={class:"px-3 d-flex gap-3 align-items-center"},ve={class:"px-3 overflow-x-scroll d-flex overflow-x-scroll overflow-y-hidden align-items-center gap-2"},fe=["onClick"],ke={class:"overflow-y-scroll",style:{height:"270px"}},ye=["onClick"],ge={class:"me-auto"},we={key:0,class:"px-3 py-2"},xe={key:0,class:"text-muted"},$e={key:1,class:"text-muted"};function Ie(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",{class:b({inactiveField:this.bulk})},[e("div",te,[e("label",se,[e("small",ae,[o(s,{t:"Allowed IPs"}),t[5]||(t[5]=w()),e("code",null,[o(s,{t:"(Required)"})])])]),e("div",le,[h(e("input",{class:"form-check-input",type:"checkbox","onUpdate:modelValue":t[0]||(t[0]=a=>this.data.allowed_ips_validation=a),role:"switch",id:"disableIPValidation"},null,512),[[A,this.data.allowed_ips_validation]]),e("label",oe,[e("small",null,[o(s,{t:"Allowed IPs Validation"})])])])]),e("div",ie,[e("div",{class:b(["d-flex gap-2 flex-wrap",{"mb-2":this.data.allowed_ips.length>0}])},[o(j,{name:"list"},{default:E(()=>[(i(!0),d(C,null,O(this.data.allowed_ips,(a,c)=>(i(),d("span",{class:"badge rounded-pill text-bg-success",key:a},[w(S(a)+" ",1),e("a",{role:"button",onClick:P=>this.data.allowed_ips.splice(c,1)},[...t[6]||(t[6]=[e("i",{class:"bi bi-x-circle-fill ms-1"},null,-1)])],8,de)]))),128))]),_:1})],2)]),e("div",ne,[e("div",re,[h(e("input",{type:"text",class:b(["form-control form-control-sm rounded-start-3",{"is-invalid":this.allowedIpFormatError}]),placeholder:this.inputGetLocale,onKeyup:t[1]||(t[1]=F(a=>this.customAvailableIp?this.addAllowedIp(this.customAvailableIp):void 0,["enter"])),"onUpdate:modelValue":t[2]||(t[2]=a=>r.customAvailableIp=a),id:"peer_allowed_ip_textbox",disabled:n.bulk},null,42,ue),[[f,r.customAvailableIp]]),e("button",{class:b(["btn btn-sm rounded-end-3",[this.customAvailableIp?"btn-success":"btn-outline-success"]]),disabled:n.bulk||!this.customAvailableIp,onClick:t[3]||(t[3]=a=>this.addAllowedIp(this.customAvailableIp)),type:"button",id:"button-addon2"},[...t[7]||(t[7]=[e("i",{class:"bi bi-plus-lg"},null,-1)])],10,ce)]),e("small",pe,[o(s,{t:"or"})]),e("div",he,[e("button",{class:"btn btn-outline-secondary btn-sm dropdown-toggle rounded-3 w-100",disabled:!n.availableIp||n.bulk,"data-bs-auto-close":"outside",type:"button","data-bs-toggle":"dropdown","aria-expanded":"false"},[t[8]||(t[8]=e("i",{class:"bi bi-filter-circle me-2"},null,-1)),o(s,{t:"Pick Available IP"})],8,be),this.availableIp?(i(),d("ul",me,[e("li",null,[e("div",_e,[t[9]||(t[9]=e("label",{for:"availableIpSearchString",class:"text-muted"},[e("i",{class:"bi bi-search"})],-1)),h(e("input",{id:"availableIpSearchString",class:"form-control form-control-sm rounded-3","onUpdate:modelValue":t[4]||(t[4]=a=>this.availableIpSearchString=a)},null,512),[[f,this.availableIpSearchString]])]),t[11]||(t[11]=e("hr",{class:"my-2"},null,-1)),e("div",ve,[t[10]||(t[10]=e("small",{class:"text-muted"},"Subnet",-1)),(i(!0),d(C,null,O(Object.keys(this.availableIp),a=>(i(),d("button",{key:a,onClick:c=>this.selectedSubnet=a,class:b([{"bg-primary-subtle":this.selectedSubnet===a},"btn btn-sm text-primary-emphasis rounded-3"])},S(a),11,fe))),128))]),t[12]||(t[12]=e("hr",{class:"mt-2 mb-0"},null,-1))]),e("li",null,[e("div",ke,[(i(!0),d(C,null,O(this.searchAvailableIps,a=>(i(),d("div",{style:{},key:a},[e("a",{class:"dropdown-item d-flex",role:"button",onClick:c=>this.addAllowedIp(a)},[e("span",ge,[e("small",null,S(a),1)])],8,ye)]))),128)),this.searchAvailableIps.length===0?(i(),d("div",we,[this.availableIpSearchString?(i(),d("small",xe,[o(s,{t:"No available IP containing"}),w('"'+S(this.availableIpSearchString)+'"',1)])):(i(),d("small",$e,[o(s,{t:"No more IP address available in this subnet"})]))])):g("",!0)])])])):g("",!0)])])],2)}const Ae=k(ee,[["render",Ie],["__scopeId","data-v-ed72944d"]]),Pe={name:"dnsInput",components:{LocaleText:p},props:{data:Object,saving:Boolean},data(){return{error:!1,dns:JSON.parse(JSON.stringify(this.data.DNS))}},setup(){const l=$(),t=I();return{store:l,dashboardStore:t}},methods:{checkDNS(){if(this.dns){let l=this.dns.split(",").map(t=>t.replaceAll(" ",""));for(let t in l)if(!this.store.regexCheckIP(l[t])){this.error||this.dashboardStore.newMessage("WGDashboard","DNS format is incorrect","danger"),this.error=!0,this.data.DNS="";return}this.error=!1,this.data.DNS=this.dns}}},watch:{dns(){this.checkDNS()}}},Se={for:"peer_DNS_textbox",class:"form-label"},Ke={class:"text-muted"},Ce=["disabled"];function Le(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",null,[e("label",Se,[e("small",Ke,[o(s,{t:"DNS"})])]),h(e("input",{type:"text",class:b(["form-control form-control-sm rounded-3",{"is-invalid":this.error}]),disabled:this.saving,"onUpdate:modelValue":t[0]||(t[0]=a=>this.dns=a),id:"peer_DNS_textbox"},null,10,Ce),[[f,this.dns]])])}const Oe=k(Pe,[["render",Le]]),Ne={name:"nameInput",components:{LocaleText:p},props:{bulk:Boolean,data:Object,saving:Boolean}},Be={for:"peer_name_textbox",class:"form-label"},Te={class:"text-muted"},De=["disabled"];function Ve(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",{class:b({inactiveField:this.bulk})},[e("label",Be,[e("small",Te,[o(s,{t:"Name"})])]),h(e("input",{type:"text",class:"form-control form-control-sm rounded-3",disabled:this.saving||this.bulk,"onUpdate:modelValue":t[0]||(t[0]=a=>this.data.name=a),id:"peer_name_textbox",placeholder:""},null,8,De),[[f,this.data.name]])],2)}const Me=k(Ne,[["render",Ve]]),Ue={name:"privatePublicKeyInput",components:{LocaleText:p},props:{data:Object,saving:Boolean,bulk:Boolean},setup(){const l=I(),t=$();return{dashboardStore:l,wgStore:t}},data(){return{keypair:{publicKey:"",privateKey:"",presharedKey:""},view:!1,editKey:!1,error:!1}},methods:{genKeyPair(){this.editKey=!1,this.keypair=window.wireguard.generateKeypair(),this.data.private_key=this.keypair.privateKey,this.data.public_key=this.keypair.publicKey},testKey(l){return/^[A-Za-z0-9+/]{43}=?=?$/.test(l)},checkMatching(){try{this.keypair.privateKey&&this.wgStore.checkWGKeyLength(this.keypair.privateKey)&&(this.keypair.publicKey=window.wireguard.generatePublicKey(this.keypair.privateKey),window.wireguard.generatePublicKey(this.keypair.privateKey)!==this.keypair.publicKey?(this.error=!0,this.dashboardStore.newMessage("WGDashboard","Private key does not match with the public key","danger")):(this.data.private_key=this.keypair.privateKey,this.data.public_key=this.keypair.publicKey))}catch{this.error=!0,this.data.private_key="",this.data.public_key=""}}},mounted(){this.genKeyPair()},watch:{keypair:{deep:!0,handler(){this.error=!1,this.checkMatching()}}}},Ee={for:"peer_private_key_textbox",class:"form-label d-flex align-items-center"},je={class:"text-muted"},Fe={class:"input-group"},Ge=["type","disabled"],Re=["disabled"],qe={class:"d-flex flex-column flex-md-row mb-2"},We={for:"public_key",class:"form-label mb-0"},Je={class:"text-muted"},ze={class:"form-check form-switch ms-md-auto"},He=["disabled"],Qe={class:"form-check-label",for:"enablePublicKeyEdit"},Ye=["disabled","type"];function Ze(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",{class:b(["d-flex gap-2 flex-column",{inactiveField:this.bulk}])},[e("div",null,[e("label",Ee,[e("small",je,[o(s,{t:"Private Key"}),t[7]||(t[7]=w()),e("code",null,[o(s,{t:"(Required for QR Code and Download)"})])]),e("a",{role:"button",class:"ms-auto text-decoration-none text-body",onClick:t[0]||(t[0]=a=>this.view=!this.view)},[e("small",null,[e("i",{class:b(["bi me-2",[this.view?"bi-eye-slash-fill":"bi-eye-fill"]])},null,2),o(s,{t:this.view?"Hide Keys":"Show Keys"},null,8,["t"])])])]),e("div",Fe,[h(e("input",{type:this.view?"text":"password",class:b(["form-control form-control-sm rounded-start-3",{"is-invalid":this.error,"rounded-3":!this.view}]),"onUpdate:modelValue":t[1]||(t[1]=a=>this.keypair.privateKey=a),disabled:!this.editKey||this.bulk,onBlur:t[2]||(t[2]=a=>this.checkMatching()),id:"peer_private_key_textbox"},null,42,Ge),[[B,this.keypair.privateKey]]),this.view?(i(),d("button",{key:0,class:"btn btn-outline-info btn-sm rounded-end-3",onClick:t[3]||(t[3]=a=>this.genKeyPair()),disabled:this.bulk,type:"button",id:"button-addon2"},[...t[8]||(t[8]=[e("i",{class:"bi bi-arrow-repeat"},null,-1)])],8,Re)):g("",!0)])]),e("div",null,[e("div",qe,[e("label",We,[e("small",Je,[o(s,{t:"Public Key"}),t[9]||(t[9]=w()),e("code",null,[o(s,{t:"(Required)"})])])]),e("div",ze,[h(e("input",{class:"form-check-input",type:"checkbox",role:"switch",disabled:this.bulk,id:"enablePublicKeyEdit","onUpdate:modelValue":t[4]||(t[4]=a=>this.editKey=a)},null,8,He),[[A,this.editKey]]),e("label",Qe,[e("small",null,[o(s,{t:"Use your own Private and Public Key"})])])])]),h(e("input",{class:b(["form-control-sm form-control rounded-3",{"is-invalid":this.error}]),"onUpdate:modelValue":t[5]||(t[5]=a=>this.keypair.publicKey=a),onBlur:t[6]||(t[6]=a=>this.checkMatching()),disabled:!this.editKey||this.bulk,type:this.view?"text":"password",id:"public_key"},null,42,Ye),[[B,this.keypair.publicKey]])])],2)}const Xe=k(Ue,[["render",Ze]]),et={name:"bulkAdd",components:{LocaleText:p},props:{saving:Boolean,data:Object,availableIp:void 0},data(){return{numberOfAvailableIPs:null}},computed:{bulkAddGetLocale(){return D("How many peers you want to add?")},getNumberOfAvailableIPs(){return this.numberOfAvailableIPs?Object.values(this.numberOfAvailableIPs).reduce((l,t)=>l+t):"..."}},watch:{"data.bulkAdd":{immediate:!0,handler(l){l&&V("/api/getNumberOfAvailableIPs/"+this.$route.params.id,{},t=>{t.status&&(this.numberOfAvailableIPs=t.data)})}}}},tt={class:"form-check form-switch"},st=["disabled"],at={class:"form-check-label me-2",for:"bulk_add"},lt={class:"text-muted d-block"},ot={key:0,class:"form-group"},it=["max","placeholder"],dt={class:"text-muted"};function nt(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",null,[e("div",tt,[h(e("input",{class:"form-check-input",type:"checkbox",role:"switch",disabled:!this.availableIp,id:"bulk_add","onUpdate:modelValue":t[0]||(t[0]=a=>this.data.bulkAdd=a)},null,8,st),[[A,this.data.bulkAdd]]),e("label",at,[e("small",null,[e("strong",null,[o(s,{t:"Bulk Add"})])])])]),e("p",{class:b({"mb-0":!this.data.bulkAdd})},[e("small",lt,[o(s,{t:"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP."})])],2),this.data.bulkAdd?(i(),d("div",ot,[h(e("input",{class:"form-control form-control-sm rounded-3 mb-1",type:"number",min:"1",id:"bulk_add_count",max:this.availableIp.length,"onUpdate:modelValue":t[1]||(t[1]=a=>this.data.bulkAddAmount=a),placeholder:this.bulkAddGetLocale},null,8,it),[[f,this.data.bulkAddAmount]]),e("small",dt,[o(s,{t:"You can add up to "+_.getNumberOfAvailableIPs+" peers"},null,8,["t"])])])):g("",!0)])}const rt=k(et,[["render",nt]]),ut={name:"presharedKeyInput",components:{LocaleText:p},props:{data:Object,saving:Boolean,defaultEnabled:Boolean},data(){return{enable:!1}},mounted(){(!!(this.data&&this.data.preshared_key&&this.data.preshared_key.length>0)||this.defaultEnabled)&&(this.enable=!0)},watch:{enable(){this.enable?this.data.preshared_key||(this.data.preshared_key=window.wireguard.generateKeypair().presharedKey):this.data.preshared_key=""}}},ct={class:"d-flex align-items-start"},pt={for:"peer_preshared_key_textbox",class:"form-label"},ht={class:"text-muted"},bt={class:"form-check form-switch ms-auto"},mt=["disabled"];function _t(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",null,[e("div",ct,[e("label",pt,[e("small",ht,[o(s,{t:"Pre-Shared Key"})])]),e("div",bt,[h(e("input",{class:"form-check-input",type:"checkbox",role:"switch","onUpdate:modelValue":t[0]||(t[0]=a=>this.enable=a),id:"peer_preshared_key_switch"},null,512),[[A,this.enable]])])]),h(e("input",{type:"text",class:"form-control form-control-sm rounded-3",disabled:this.saving||!this.enable,"onUpdate:modelValue":t[1]||(t[1]=a=>this.data.preshared_key=a),id:"peer_preshared_key_textbox"},null,8,mt),[[f,this.data.preshared_key]])])}const vt=k(ut,[["render",_t]]),ft={name:"mtuInput",components:{LocaleText:p},props:{data:Object,saving:Boolean}},kt={for:"peer_mtu",class:"form-label"},yt={class:"text-muted"},gt=["disabled"];function wt(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",null,[e("label",kt,[e("small",yt,[o(s,{t:"MTU"})])]),h(e("input",{type:"number",class:"form-control form-control-sm rounded-3",disabled:this.saving,"onUpdate:modelValue":t[0]||(t[0]=a=>this.data.mtu=a),min:"0",id:"peer_mtu"},null,8,gt),[[f,this.data.mtu]])])}const xt=k(ft,[["render",wt]]),$t={name:"persistentKeepAliveInput",components:{LocaleText:p},props:{data:Object,saving:Boolean}},It={for:"peer_keep_alive",class:"form-label"},At={class:"text-muted"},Pt=["disabled"];function St(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",null,[e("label",It,[e("small",At,[o(s,{t:"Persistent Keepalive"})])]),h(e("input",{type:"number",class:"form-control form-control-sm rounded-3",disabled:this.saving,"onUpdate:modelValue":t[0]||(t[0]=a=>this.data.keepalive=a),id:"peer_keep_alive"},null,8,Pt),[[f,this.data.keepalive]])])}const Kt=k($t,[["render",St]]),Ct={name:"notesInput",components:{LocaleText:p},props:{bulk:Boolean,data:Object,saving:Boolean}},Lt={for:"peer_notes_textbox",class:"form-label"},Ot={class:"text-muted"},Nt=["disabled"];function Bt(l,t,n,u,r,_){const s=y("LocaleText");return i(),d("div",{class:b({inactiveField:this.bulk})},[e("label",Lt,[e("small",Ot,[o(s,{t:"Notes"})])]),h(e("input",{type:"text",class:"form-control form-control-sm rounded-3",disabled:this.saving||this.bulk,"onUpdate:modelValue":t[0]||(t[0]=a=>this.data.notes=a),id:"peer_notes_textbox",placeholder:""},null,8,Nt),[[f,this.data.notes]])],2)}const Tt=k(Ct,[["render",Bt]]),Dt={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll",ref:"editConfigurationContainer"},Vt={class:"container d-flex h-100 w-100"},Mt={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"1000px"}},Ut={class:"card rounded-3 shadow flex-grow-1"},Et={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4"},jt={class:"mb-0"},Ft={class:"card-body px-4 pb-4"},Gt={class:"d-flex flex-column gap-2"},Rt={class:"accordion mb-3",id:"peerAddModalAccordion"},qt={class:"accordion-item"},Wt={class:"accordion-header"},Jt={class:"accordion-button collapsed rounded-3",type:"button","data-bs-toggle":"collapse","data-bs-target":"#peerAddModalAccordionAdvancedOptions"},zt={id:"peerAddModalAccordionAdvancedOptions",class:"accordion-collapse collapse collapsed","data-bs-parent":"#peerAddModalAccordion"},Ht={class:"accordion-body rounded-bottom-3"},Qt={class:"d-flex flex-column gap-2"},Yt={class:"row gy-3"},Zt={key:0,class:"col-sm"},Xt={class:"col-sm"},es={class:"col-sm"},ts={key:1,class:"col-12"},ss={class:"form-check form-switch"},as={class:"form-check-label",for:"bullAdd_PresharedKey_Switch"},ls={class:"fw-bold"},os={class:"d-flex mt-2"},is=["disabled"],ds={key:0,class:"bi bi-plus-circle-fill me-2"},us={__name:"peerAddModal",emits:["close","addedPeers"],async setup(l,{emit:t}){let n,u;const r=I(),_=$(),s=L({bulkAdd:!1,bulkAddAmount:0,name:"",allowed_ips:[],private_key:"",public_key:"",DNS:r.Configuration.Peers.peer_global_dns,endpoint_allowed_ip:r.Configuration.Peers.peer_endpoint_allowed_ip,notes:"",keepalive:parseInt(r.Configuration.Peers.peer_keep_alive),mtu:parseInt(r.Configuration.Peers.peer_mtu),preshared_key:"",preshared_key_bulkAdd:!!r.Configuration.Peers.peer_preshared_key_default,allowed_ips_validation:!0}),a=L([]),c=L(!1),P=G();[n,u]=R(()=>V("/api/getAvailableIPs/"+P.params.id,{},v=>{v.status&&(a.value=v.data)})),await n,u();const N=t;T(()=>_.Configurations.find(v=>v.Name===P.params.id).Protocol);const M=T(()=>{let v=!0;return s.value.bulkAdd?(s.value.bulkAddAmount.length===0||s.value.bulkAddAmount>a.value.length)&&(v=!1):["allowed_ips","private_key","public_key","endpoint_allowed_ip","keepalive","mtu"].forEach(x=>{s.value[x].length===0&&(v=!1)}),v}),U=()=>{c.value=!0,J("/api/addPeers/"+P.params.id,s.value,v=>{v.status?(r.newMessage("Server","Peer created successfully","success"),N("addedPeers")):r.newMessage("Server",v.message,"danger"),c.value=!1})};return q(()=>s.value.bulkAddAmount,()=>{s.value.bulkAddAmount>a.value.length&&(s.value.bulkAddAmount=a.value.length)}),(v,m)=>(i(),d("div",Dt,[e("div",Vt,[e("div",Mt,[e("div",Ut,[e("div",Et,[e("h4",jt,[o(p,{t:"Add Peers"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:m[0]||(m[0]=x=>N("close"))})]),e("div",Ft,[e("div",Gt,[o(rt,{saving:c.value,data:s.value,availableIp:a.value},null,8,["saving","data","availableIp"]),s.value.bulkAdd?g("",!0):(i(),d(C,{key:0},[m[3]||(m[3]=e("hr",{class:"mb-0 mt-2"},null,-1)),o(Me,{saving:c.value,data:s.value},null,8,["saving","data"]),o(Tt,{saving:c.value,data:s.value},null,8,["saving","data"]),o(Xe,{saving:c.value,data:s.value},null,8,["saving","data"]),o(Ae,{availableIp:a.value,saving:c.value,data:s.value},null,8,["availableIp","saving","data"])],64))]),m[5]||(m[5]=e("hr",null,null,-1)),e("div",Rt,[e("div",qt,[e("h2",Wt,[e("button",Jt,[o(p,{t:"Advanced Options"})])]),e("div",zt,[e("div",Ht,[e("div",Qt,[o(Oe,{saving:c.value,data:s.value},null,8,["saving","data"]),o(X,{saving:c.value,data:s.value},null,8,["saving","data"]),e("div",Yt,[s.value.bulkAdd?g("",!0):(i(),d("div",Zt,[o(vt,{saving:c.value,data:s.value,bulk:s.value.bulkAdd,defaultEnabled:!!W(r).Configuration.Peers.peer_preshared_key_default},null,8,["saving","data","bulk","defaultEnabled"])])),e("div",Xt,[o(xt,{saving:c.value,data:s.value},null,8,["saving","data"])]),e("div",es,[o(Kt,{saving:c.value,data:s.value},null,8,["saving","data"])]),s.value.bulkAdd?(i(),d("div",ts,[e("div",ss,[h(e("input",{class:"form-check-input",type:"checkbox",role:"switch","onUpdate:modelValue":m[1]||(m[1]=x=>s.value.preshared_key_bulkAdd=x),id:"bullAdd_PresharedKey_Switch",checked:""},null,512),[[A,s.value.preshared_key_bulkAdd]]),e("label",as,[e("small",ls,[o(p,{t:"Pre-Shared Key"}),m[4]||(m[4]=w()),s.value.preshared_key_bulkAdd?(i(),K(p,{key:0,t:"Enabled"})):(i(),K(p,{key:1,t:"Disabled"}))])])])])):g("",!0)])])])])])]),e("div",os,[e("button",{class:"ms-auto btn btn-dark btn-brand rounded-3 px-3 py-2 shadow",disabled:!M.value||c.value,onClick:m[2]||(m[2]=x=>U())},[c.value?g("",!0):(i(),d("i",ds)),c.value?(i(),K(p,{key:1,t:"Adding..."})):(i(),K(p,{key:2,t:"Add"}))],8,is)])])])])])],512))}};export{us as default};