Files
WGDashboard/src/static/dist/WGDashboardAdmin/assets/peerAddModal-YydN5PG2.js
Donald Zou 627065e793 Push
2025-09-15 01:06:38 +08:00

2 lines
20 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 m,W as $,D as I,v as A,w as j,F as C,i as O,t as S,T as E,E as F,d as g,G as V,r as L,a1 as N,g as B,L as G,I as R,q as T,H as q,j as K,z as W}from"./index-Dt7tGGS0.js";import{L as p}from"./localeText-wOCLkpUd.js";const J={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()}}},z={for:"peer_endpoint_allowed_ips",class:"form-label"},H={class:"text-muted"},Q=["disabled"];function Y(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",null,[e("label",z,[e("small",H,[o(s,{t:"Endpoint Allowed IPs"}),t[2]||(t[2]=w()),e("code",null,[o(s,{t:"(Required)"})])])]),h(e("input",{type:"text",class:m(["form-control form-control-sm rounded-3",{"is-invalid":u.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,Q),[[f,this.endpointAllowedIps]])])}const Z=k(J,[["render",Y]]),X={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(),r=L("");return Object.keys(l.availableIp).length>0&&(r.value=Object.keys(l.availableIp)[0]),{store:t,dashboardStore:n,selectedSubnet:r}},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 V("Enter IP Address/CIDR")}},methods:{addAllowedIp(l){let t=l.split(",");for(let n=0;n<t.length;n++){let r=t[n].trim();if(this.store.checkCIDR(r))this.data.allowed_ips.push(r);else return this.allowedIpFormatError=!0,this.dashboardStore.newMessage("WGDashboard",`This Allowed IP address is invalid: ${r}`,"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])}},ee={class:"d-flex flex-column flex-md-row mb-2"},te={for:"peer_allowed_ip_textbox",class:"form-label mb-0"},se={class:"text-muted"},ae={class:"form-check form-switch ms-md-auto"},le={class:"form-check-label",for:"disableIPValidation"},oe={class:"d-flex"},ie=["onClick"],de={class:"d-flex gap-2 align-items-center"},ne={class:"input-group"},re=["placeholder","disabled"],ue=["disabled"],ce={class:"text-muted"},pe={class:"dropdown flex-grow-1"},he=["disabled"],be={key:0,class:"dropdown-menu mt-2 shadow w-100 dropdown-menu-end rounded-3 pb-0",style:{width:"300px !important"}},me={class:"px-3 d-flex gap-3 align-items-center"},_e={class:"px-3 overflow-x-scroll d-flex overflow-x-scroll overflow-y-hidden align-items-center gap-2"},ve=["onClick"],fe={class:"overflow-y-scroll",style:{height:"270px"}},ke=["onClick"],ye={class:"me-auto"},ge={key:0,class:"px-3 py-2"},we={key:0,class:"text-muted"},xe={key:1,class:"text-muted"};function $e(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",{class:m({inactiveField:this.bulk})},[e("div",ee,[e("label",te,[e("small",se,[o(s,{t:"Allowed IPs"}),t[5]||(t[5]=w()),e("code",null,[o(s,{t:"(Required)"})])])]),e("div",ae,[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",le,[e("small",null,[o(s,{t:"Allowed IPs Validation"})])])])]),e("div",oe,[e("div",{class:m(["d-flex gap-2 flex-wrap",{"mb-2":this.data.allowed_ips.length>0}])},[o(E,{name:"list"},{default:j(()=>[(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,ie)]))),128))]),_:1})],2)]),e("div",de,[e("div",ne,[h(e("input",{type:"text",class:m(["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=>u.customAvailableIp=a),id:"peer_allowed_ip_textbox",disabled:n.bulk},null,42,re),[[f,u.customAvailableIp]]),e("button",{class:m(["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,ue)]),e("small",ce,[o(s,{t:"or"})]),e("div",pe,[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,he),this.availableIp?(i(),d("ul",be,[e("li",null,[e("div",me,[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",_e,[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:m([{"bg-primary-subtle":this.selectedSubnet===a},"btn btn-sm text-primary-emphasis rounded-3"])},S(a),11,ve))),128))]),t[12]||(t[12]=e("hr",{class:"mt-2 mb-0"},null,-1))]),e("li",null,[e("div",fe,[(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",ye,[e("small",null,S(a),1)])],8,ke)]))),128)),this.searchAvailableIps.length===0?(i(),d("div",ge,[this.availableIpSearchString?(i(),d("small",we,[o(s,{t:"No available IP containing"}),w('"'+S(this.availableIpSearchString)+'"',1)])):(i(),d("small",xe,[o(s,{t:"No more IP address available in this subnet"})]))])):g("",!0)])])])):g("",!0)])])],2)}const Ie=k(X,[["render",$e],["__scopeId","data-v-ed72944d"]]),Ae={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()}}},Pe={for:"peer_DNS_textbox",class:"form-label"},Se={class:"text-muted"},Ke=["disabled"];function Ce(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",null,[e("label",Pe,[e("small",Se,[o(s,{t:"DNS"})])]),h(e("input",{type:"text",class:m(["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,Ke),[[f,this.dns]])])}const Le=k(Ae,[["render",Ce]]),Oe={name:"nameInput",components:{LocaleText:p},props:{bulk:Boolean,data:Object,saving:Boolean}},De={for:"peer_name_textbox",class:"form-label"},Ne={class:"text-muted"},Te=["disabled"];function Ve(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",{class:m({inactiveField:this.bulk})},[e("label",De,[e("small",Ne,[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,Te),[[f,this.data.name]])],2)}const Be=k(Oe,[["render",Ve]]),Me={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()}}}},Ue={for:"peer_private_key_textbox",class:"form-label d-flex align-items-center"},je={class:"text-muted"},Ee={class:"input-group"},Fe=["type","disabled"],Ge=["disabled"],Re={class:"d-flex flex-column flex-md-row mb-2"},qe={for:"public_key",class:"form-label mb-0"},We={class:"text-muted"},Je={class:"form-check form-switch ms-md-auto"},ze=["disabled"],He={class:"form-check-label",for:"enablePublicKeyEdit"},Qe=["disabled","type"];function Ye(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",{class:m(["d-flex gap-2 flex-column",{inactiveField:this.bulk}])},[e("div",null,[e("label",Ue,[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:m(["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",Ee,[h(e("input",{type:this.view?"text":"password",class:m(["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,Fe),[[N,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,Ge)):g("",!0)])]),e("div",null,[e("div",Re,[e("label",qe,[e("small",We,[o(s,{t:"Public Key"}),t[9]||(t[9]=w()),e("code",null,[o(s,{t:"(Required)"})])])]),e("div",Je,[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,ze),[[A,this.editKey]]),e("label",He,[e("small",null,[o(s,{t:"Use your own Private and Public Key"})])])])]),h(e("input",{class:m(["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,Qe),[[N,this.keypair.publicKey]])])],2)}const Ze=k(Me,[["render",Ye]]),Xe={name:"bulkAdd",components:{LocaleText:p},props:{saving:Boolean,data:Object,availableIp:void 0},data(){return{numberOfAvailableIPs:null}},computed:{bulkAddGetLocale(){return V("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&&B("/api/getNumberOfAvailableIPs/"+this.$route.params.id,{},t=>{t.status&&(this.numberOfAvailableIPs=t.data)})}}}},et={class:"form-check form-switch"},tt=["disabled"],st={class:"form-check-label me-2",for:"bulk_add"},at={class:"text-muted d-block"},lt={key:0,class:"form-group"},ot=["max","placeholder"],it={class:"text-muted"};function dt(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",null,[e("div",et,[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,tt),[[A,this.data.bulkAdd]]),e("label",st,[e("small",null,[e("strong",null,[o(s,{t:"Bulk Add"})])])])]),e("p",{class:m({"mb-0":!this.data.bulkAdd})},[e("small",at,[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",lt,[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,ot),[[f,this.data.bulkAddAmount]]),e("small",it,[o(s,{t:"You can add up to "+v.getNumberOfAvailableIPs+" peers"},null,8,["t"])])])):g("",!0)])}const nt=k(Xe,[["render",dt]]),rt={name:"presharedKeyInput",components:{LocaleText:p},props:{data:Object,saving:Boolean},data(){return{enable:!1}},watch:{enable(){this.enable?this.data.preshared_key=window.wireguard.generateKeypair().presharedKey:this.data.preshared_key=""}}},ut={class:"d-flex align-items-start"},ct={for:"peer_preshared_key_textbox",class:"form-label"},pt={class:"text-muted"},ht={class:"form-check form-switch ms-auto"},bt=["disabled"];function mt(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",null,[e("div",ut,[e("label",ct,[e("small",pt,[o(s,{t:"Pre-Shared Key"})])]),e("div",ht,[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,bt),[[f,this.data.preshared_key]])])}const _t=k(rt,[["render",mt]]),vt={name:"mtuInput",components:{LocaleText:p},props:{data:Object,saving:Boolean}},ft={for:"peer_mtu",class:"form-label"},kt={class:"text-muted"},yt=["disabled"];function gt(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",null,[e("label",ft,[e("small",kt,[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,yt),[[f,this.data.mtu]])])}const wt=k(vt,[["render",gt]]),xt={name:"persistentKeepAliveInput",components:{LocaleText:p},props:{data:Object,saving:Boolean}},$t={for:"peer_keep_alive",class:"form-label"},It={class:"text-muted"},At=["disabled"];function Pt(l,t,n,r,u,v){const s=y("LocaleText");return i(),d("div",null,[e("label",$t,[e("small",It,[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,At),[[f,this.data.keepalive]])])}const St=k(xt,[["render",Pt]]),Kt={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll",ref:"editConfigurationContainer"},Ct={class:"container d-flex h-100 w-100"},Lt={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"1000px"}},Ot={class:"card rounded-3 shadow flex-grow-1"},Dt={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4"},Nt={class:"mb-0"},Tt={class:"card-body px-4 pb-4"},Vt={class:"d-flex flex-column gap-2"},Bt={class:"accordion mb-3",id:"peerAddModalAccordion"},Mt={class:"accordion-item"},Ut={class:"accordion-header"},jt={class:"accordion-button collapsed rounded-3",type:"button","data-bs-toggle":"collapse","data-bs-target":"#peerAddModalAccordionAdvancedOptions"},Et={id:"peerAddModalAccordionAdvancedOptions",class:"accordion-collapse collapse collapsed","data-bs-parent":"#peerAddModalAccordion"},Ft={class:"accordion-body rounded-bottom-3"},Gt={class:"d-flex flex-column gap-2"},Rt={class:"row gy-3"},qt={key:0,class:"col-sm"},Wt={class:"col-sm"},Jt={class:"col-sm"},zt={key:1,class:"col-12"},Ht={class:"form-check form-switch"},Qt={class:"form-check-label",for:"bullAdd_PresharedKey_Switch"},Yt={class:"fw-bold"},Zt={class:"d-flex mt-2"},Xt=["disabled"],es={key:0,class:"bi bi-plus-circle-fill me-2"},as={__name:"peerAddModal",emits:["close","addedPeers"],async setup(l,{emit:t}){let n,r;const u=I(),v=$(),s=L({bulkAdd:!1,bulkAddAmount:0,name:"",allowed_ips:[],private_key:"",public_key:"",DNS:u.Configuration.Peers.peer_global_dns,endpoint_allowed_ip:u.Configuration.Peers.peer_endpoint_allowed_ip,keepalive:parseInt(u.Configuration.Peers.peer_keep_alive),mtu:parseInt(u.Configuration.Peers.peer_mtu),preshared_key:"",preshared_key_bulkAdd:!1,advanced_security:"off",allowed_ips_validation:!0}),a=L([]),c=L(!1),P=G();[n,r]=R(()=>B("/api/getAvailableIPs/"+P.params.id,{},_=>{_.status&&(a.value=_.data)})),await n,r();const D=t;T(()=>v.Configurations.find(_=>_.Name===P.params.id).Protocol);const M=T(()=>{let _=!0;return s.value.bulkAdd?(s.value.bulkAddAmount.length===0||s.value.bulkAddAmount>a.value.length)&&(_=!1):["allowed_ips","private_key","public_key","endpoint_allowed_ip","keepalive","mtu"].forEach(x=>{s.value[x].length===0&&(_=!1)}),_}),U=()=>{c.value=!0,W("/api/addPeers/"+P.params.id,s.value,_=>{_.status?(u.newMessage("Server","Peer created successfully","success"),D("addedPeers")):u.newMessage("Server",_.message,"danger"),c.value=!1})};return q(()=>s.value.bulkAddAmount,()=>{s.value.bulkAddAmount>a.value.length&&(s.value.bulkAddAmount=a.value.length)}),(_,b)=>(i(),d("div",Kt,[e("div",Ct,[e("div",Lt,[e("div",Ot,[e("div",Dt,[e("h4",Nt,[o(p,{t:"Add Peers"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:b[0]||(b[0]=x=>D("close"))})]),e("div",Tt,[e("div",Vt,[o(nt,{saving:c.value,data:s.value,availableIp:a.value},null,8,["saving","data","availableIp"]),s.value.bulkAdd?g("",!0):(i(),d(C,{key:0},[b[3]||(b[3]=e("hr",{class:"mb-0 mt-2"},null,-1)),o(Be,{saving:c.value,data:s.value},null,8,["saving","data"]),o(Ze,{saving:c.value,data:s.value},null,8,["saving","data"]),o(Ie,{availableIp:a.value,saving:c.value,data:s.value},null,8,["availableIp","saving","data"])],64))]),b[5]||(b[5]=e("hr",null,null,-1)),e("div",Bt,[e("div",Mt,[e("h2",Ut,[e("button",jt,[o(p,{t:"Advanced Options"})])]),e("div",Et,[e("div",Ft,[e("div",Gt,[o(Le,{saving:c.value,data:s.value},null,8,["saving","data"]),o(Z,{saving:c.value,data:s.value},null,8,["saving","data"]),e("div",Rt,[s.value.bulkAdd?g("",!0):(i(),d("div",qt,[o(_t,{saving:c.value,data:s.value,bulk:s.value.bulkAdd},null,8,["saving","data","bulk"])])),e("div",Wt,[o(wt,{saving:c.value,data:s.value},null,8,["saving","data"])]),e("div",Jt,[o(St,{saving:c.value,data:s.value},null,8,["saving","data"])]),s.value.bulkAdd?(i(),d("div",zt,[e("div",Ht,[h(e("input",{class:"form-check-input",type:"checkbox",role:"switch","onUpdate:modelValue":b[1]||(b[1]=x=>s.value.preshared_key_bulkAdd=x),id:"bullAdd_PresharedKey_Switch",checked:""},null,512),[[A,s.value.preshared_key_bulkAdd]]),e("label",Qt,[e("small",Yt,[o(p,{t:"Pre-Shared Key"}),b[4]||(b[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",Zt,[e("button",{class:"ms-auto btn btn-dark btn-brand rounded-3 px-3 py-2 shadow",disabled:!M.value||c.value,onClick:b[2]||(b[2]=x=>U())},[c.value?g("",!0):(i(),d("i",es)),c.value?(i(),K(p,{key:1,t:"Adding..."})):(i(),K(p,{key:2,t:"Add"}))],8,Xt)])])])])])],512))}};export{as as default};