WGDashboard/src/static/app/dist/assets/peerAddModal-BxnQ89lp.js
Donald Zou 417fa437b7 Update
2025-04-21 17:25:12 +08:00

2 lines
21 KiB
JavaScript

import{_ as g,W as A,D as I,k as w,a as i,c as d,b as e,d as o,f as $,m as b,y as f,n as m,r as C,G as V,v as P,w as G,F as O,h as L,t as K,T as E,C as F,e as y,g as B,J as R,O as q,q as D,H as W,i as x,a5 as T,A as J}from"./index-CUmHRwBw.js";import{L as r}from"./localeText-DvaqSAco.js";const z={name:"endpointAllowedIps",components:{LocaleText:r},props:{data:Object,saving:Boolean},setup(){const l=A(),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,c,v){const s=w("LocaleText");return i(),d("div",null,[e("label",H,[e("small",Q,[o(s,{t:"Endpoint Allowed IPs"}),t[2]||(t[2]=$()),e("code",null,[o(s,{t:"(Required)"})])])]),b(e("input",{type:"text",class:m(["form-control form-control-sm rounded-3",{"is-invalid":c.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=g(z,[["render",Z]]),ee={name:"allowedIPsInput",components:{LocaleText:r},props:{data:Object,saving:Boolean,bulk:Boolean,availableIp:void 0},data(){return{allowedIp:[],availableIpSearchString:"",customAvailableIp:"",allowedIpFormatError:!1}},setup(l){const t=A(),n=I(),u=C("");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 V("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"},be={class:"dropdown flex-grow-1"},he=["disabled"],_e={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"},ve={class:"px-3 overflow-x-scroll d-flex overflow-x-scroll overflow-y-hidden align-items-center gap-2"},fe=["onClick"],ye={class:"overflow-y-scroll",style:{height:"270px"}},ke=["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 Ae(l,t,n,u,c,v){const s=w("LocaleText");return i(),d("div",{class:m({inactiveField:this.bulk})},[e("div",te,[e("label",se,[e("small",ae,[o(s,{t:"Allowed IPs"}),t[5]||(t[5]=$()),e("code",null,[o(s,{t:"(Required)"})])])]),e("div",le,[b(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),[[P,this.data.allowed_ips_validation]]),e("label",oe,[e("small",null,[o(s,{t:"Allowed IPs Validation"})])])])]),e("div",ie,[e("div",{class:m(["d-flex gap-2 flex-wrap",{"mb-2":this.data.allowed_ips.length>0}])},[o(E,{name:"list"},{default:G(()=>[(i(!0),d(O,null,L(this.data.allowed_ips,(a,p)=>(i(),d("span",{class:"badge rounded-pill text-bg-success",key:a},[$(K(a)+" ",1),e("a",{role:"button",onClick:S=>this.data.allowed_ips.splice(p,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,[b(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=>c.customAvailableIp=a),id:"peer_allowed_ip_textbox",disabled:n.bulk},null,42,ue),[[f,c.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,ce)]),e("small",pe,[o(s,{t:"or"})]),e("div",be,[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",_e,[e("li",null,[e("div",me,[t[9]||(t[9]=e("label",{for:"availableIpSearchString",class:"text-muted"},[e("i",{class:"bi bi-search"})],-1)),b(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(O,null,L(Object.keys(this.availableIp),a=>(i(),d("button",{key:a,onClick:p=>this.selectedSubnet=a,class:m([{"bg-primary-subtle":this.selectedSubnet===a},"btn btn-sm text-primary-emphasis rounded-3"])},K(a),11,fe))),128))]),t[12]||(t[12]=e("hr",{class:"mt-2 mb-0"},null,-1))]),e("li",null,[e("div",ye,[(i(!0),d(O,null,L(this.searchAvailableIps,a=>(i(),d("div",{style:{},key:a},[e("a",{class:"dropdown-item d-flex",role:"button",onClick:p=>this.addAllowedIp(a)},[e("span",ge,[e("small",null,K(a),1)])],8,ke)]))),128)),this.searchAvailableIps.length===0?(i(),d("div",we,[this.availableIpSearchString?(i(),d("small",xe,[o(s,{t:"No available IP containing"}),$('"'+K(this.availableIpSearchString)+'"',1)])):(i(),d("small",$e,[o(s,{t:"No more IP address available in this subnet"})]))])):y("",!0)])])])):y("",!0)])])],2)}const Ie=g(ee,[["render",Ae],["__scopeId","data-v-ed72944d"]]),Pe={name:"dnsInput",components:{LocaleText:r},props:{data:Object,saving:Boolean},data(){return{error:!1,dns:JSON.parse(JSON.stringify(this.data.DNS))}},setup(){const l=A(),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 Oe(l,t,n,u,c,v){const s=w("LocaleText");return i(),d("div",null,[e("label",Se,[e("small",Ke,[o(s,{t:"DNS"})])]),b(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,Ce),[[f,this.dns]])])}const Le=g(Pe,[["render",Oe]]),Ne={name:"nameInput",components:{LocaleText:r},props:{bulk:Boolean,data:Object,saving:Boolean}},De={for:"peer_name_textbox",class:"form-label"},Te={class:"text-muted"},Ve=["disabled"];function Be(l,t,n,u,c,v){const s=w("LocaleText");return i(),d("div",{class:m({inactiveField:this.bulk})},[e("label",De,[e("small",Te,[o(s,{t:"Name"})])]),b(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,Ve),[[f,this.data.name]])],2)}const Me=g(Ne,[["render",Be]]),Ue={name:"privatePublicKeyInput",components:{LocaleText:r},props:{data:Object,saving:Boolean,bulk:Boolean},setup(){const l=I(),t=A();return{dashboardStore:l,wgStore:t}},data(){return{keypair:{publicKey:"",privateKey:"",presharedKey:""},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()}}}},je={for:"peer_private_key_textbox",class:"form-label"},Ge={class:"text-muted"},Ee={class:"input-group"},Fe=["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"];function Ze(l,t,n,u,c,v){const s=w("LocaleText");return i(),d("div",{class:m(["d-flex gap-2 flex-column",{inactiveField:this.bulk}])},[e("div",null,[e("label",je,[e("small",Ge,[o(s,{t:"Private Key"}),t[6]||(t[6]=$()),e("code",null,[o(s,{t:"(Required for QR Code and Download)"})])])]),e("div",Ee,[b(e("input",{type:"text",class:m(["form-control form-control-sm rounded-start-3",{"is-invalid":this.error}]),"onUpdate:modelValue":t[0]||(t[0]=a=>this.keypair.privateKey=a),disabled:!this.editKey||this.bulk,onBlur:t[1]||(t[1]=a=>this.checkMatching()),id:"peer_private_key_textbox"},null,42,Fe),[[f,this.keypair.privateKey]]),e("button",{class:"btn btn-outline-info btn-sm rounded-end-3",onClick:t[2]||(t[2]=a=>this.genKeyPair()),disabled:this.bulk,type:"button",id:"button-addon2"},t[7]||(t[7]=[e("i",{class:"bi bi-arrow-repeat"},null,-1)]),8,Re)])]),e("div",null,[e("div",qe,[e("label",We,[e("small",Je,[o(s,{t:"Public Key"}),t[8]||(t[8]=$()),e("code",null,[o(s,{t:"(Required)"})])])]),e("div",ze,[b(e("input",{class:"form-check-input",type:"checkbox",role:"switch",disabled:this.bulk,id:"enablePublicKeyEdit","onUpdate:modelValue":t[3]||(t[3]=a=>this.editKey=a)},null,8,He),[[P,this.editKey]]),e("label",Qe,[e("small",null,[o(s,{t:"Use your own Private and Public Key"})])])])]),b(e("input",{class:m(["form-control-sm form-control rounded-3",{"is-invalid":this.error}]),"onUpdate:modelValue":t[4]||(t[4]=a=>this.keypair.publicKey=a),onBlur:t[5]||(t[5]=a=>this.checkMatching()),disabled:!this.editKey||this.bulk,type:"text",id:"public_key"},null,42,Ye),[[f,this.keypair.publicKey]])])],2)}const Xe=g(Ue,[["render",Ze]]),et={name:"bulkAdd",components:{LocaleText:r},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)})}}}},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,c,v){const s=w("LocaleText");return i(),d("div",null,[e("div",tt,[b(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),[[P,this.data.bulkAdd]]),e("label",at,[e("small",null,[e("strong",null,[o(s,{t:"Bulk Add"})])])])]),e("p",{class:m({"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,[b(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 "+v.getNumberOfAvailableIPs+" peers"},null,8,["t"])])])):y("",!0)])}const rt=g(et,[["render",nt]]),ut={name:"presharedKeyInput",components:{LocaleText:r},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=""}}},ct={class:"d-flex align-items-start"},pt={for:"peer_preshared_key_textbox",class:"form-label"},bt={class:"text-muted"},ht={class:"form-check form-switch ms-auto"},_t=["disabled"];function mt(l,t,n,u,c,v){const s=w("LocaleText");return i(),d("div",null,[e("div",ct,[e("label",pt,[e("small",bt,[o(s,{t:"Pre-Shared Key"})])]),e("div",ht,[b(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),[[P,this.enable]])])]),b(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,_t),[[f,this.data.preshared_key]])])}const vt=g(ut,[["render",mt]]),ft={name:"mtuInput",components:{LocaleText:r},props:{data:Object,saving:Boolean}},yt={for:"peer_mtu",class:"form-label"},kt={class:"text-muted"},gt=["disabled"];function wt(l,t,n,u,c,v){const s=w("LocaleText");return i(),d("div",null,[e("label",yt,[e("small",kt,[o(s,{t:"MTU"})])]),b(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=g(ft,[["render",wt]]),$t={name:"persistentKeepAliveInput",components:{LocaleText:r},props:{data:Object,saving:Boolean}},At={for:"peer_keep_alive",class:"form-label"},It={class:"text-muted"},Pt=["disabled"];function St(l,t,n,u,c,v){const s=w("LocaleText");return i(),d("div",null,[e("label",At,[e("small",It,[o(s,{t:"Persistent Keepalive"})])]),b(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=g($t,[["render",St]]),Ct={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll",ref:"editConfigurationContainer"},Ot={class:"container d-flex h-100 w-100"},Lt={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"1000px"}},Nt={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"},Tt={class:"mb-0"},Vt={class:"card-body px-4 pb-4"},Bt={class:"d-flex flex-column gap-2"},Mt={class:"accordion mb-3",id:"peerAddModalAccordion"},Ut={class:"accordion-item"},jt={class:"accordion-header"},Gt={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"},Rt={class:"d-flex flex-column gap-2"},qt={class:"row gy-3"},Wt={key:0,class:"col-sm"},Jt={class:"col-sm"},zt={class:"col-sm"},Ht={key:1,class:"col-12"},Qt={class:"form-check form-switch"},Yt={class:"form-check-label",for:"bullAdd_PresharedKey_Switch"},Zt={class:"fw-bold"},Xt={key:0},es={class:"form-label d-block"},ts={class:"text-muted"},ss={class:"btn-group",role:"group"},as={class:"btn btn-outline-primary btn-sm",for:"advanced_security_on"},ls={class:"btn btn-outline-primary btn-sm",for:"advanced_security_off"},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 c=I(),v=A(),s=C({bulkAdd:!1,bulkAddAmount:0,name:"",allowed_ips:[],private_key:"",public_key:"",DNS:c.Configuration.Peers.peer_global_dns,endpoint_allowed_ip:c.Configuration.Peers.peer_endpoint_allowed_ip,keepalive:parseInt(c.Configuration.Peers.peer_keep_alive),mtu:parseInt(c.Configuration.Peers.peer_mtu),preshared_key:"",preshared_key_bulkAdd:!1,advanced_security:"off",allowed_ips_validation:!0}),a=C([]),p=C(!1),S=R();[n,u]=q(()=>B("/api/getAvailableIPs/"+S.params.id,{},_=>{_.status&&(a.value=_.data)})),await n,u();const N=t,M=D(()=>v.Configurations.find(_=>_.Name===S.params.id).Protocol),U=D(()=>{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(k=>{s.value[k].length===0&&(_=!1)}),_}),j=()=>{p.value=!0,J("/api/addPeers/"+S.params.id,s.value,_=>{_.status?(c.newMessage("Server","Peer created successfully","success"),N("addedPeers")):c.newMessage("Server",_.message,"danger"),p.value=!1})};return W(()=>s.value.bulkAddAmount,()=>{s.value.bulkAddAmount>a.value.length&&(s.value.bulkAddAmount=a.value.length)}),(_,h)=>(i(),d("div",Ct,[e("div",Ot,[e("div",Lt,[e("div",Nt,[e("div",Dt,[e("h4",Tt,[o(r,{t:"Add Peers"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:h[0]||(h[0]=k=>N("close"))})]),e("div",Vt,[e("div",Bt,[o(rt,{saving:p.value,data:s.value,availableIp:a.value},null,8,["saving","data","availableIp"]),h[5]||(h[5]=e("hr",{class:"mb-0 mt-2"},null,-1)),s.value.bulkAdd?y("",!0):(i(),x(Me,{key:0,saving:p.value,data:s.value},null,8,["saving","data"])),s.value.bulkAdd?y("",!0):(i(),x(Xe,{key:1,saving:p.value,data:s.value},null,8,["saving","data"])),s.value.bulkAdd?y("",!0):(i(),x(Ie,{key:2,availableIp:a.value,saving:p.value,data:s.value},null,8,["availableIp","saving","data"]))]),h[7]||(h[7]=e("hr",null,null,-1)),e("div",Mt,[e("div",Ut,[e("h2",jt,[e("button",Gt,[o(r,{t:"Advanced Options"})])]),e("div",Et,[e("div",Ft,[e("div",Rt,[o(Le,{saving:p.value,data:s.value},null,8,["saving","data"]),o(X,{saving:p.value,data:s.value},null,8,["saving","data"]),e("div",qt,[s.value.bulkAdd?y("",!0):(i(),d("div",Wt,[o(vt,{saving:p.value,data:s.value,bulk:s.value.bulkAdd},null,8,["saving","data","bulk"])])),e("div",Jt,[o(xt,{saving:p.value,data:s.value},null,8,["saving","data"])]),e("div",zt,[o(Kt,{saving:p.value,data:s.value},null,8,["saving","data"])]),s.value.bulkAdd?(i(),d("div",Ht,[e("div",Qt,[b(e("input",{class:"form-check-input",type:"checkbox",role:"switch","onUpdate:modelValue":h[1]||(h[1]=k=>s.value.preshared_key_bulkAdd=k),id:"bullAdd_PresharedKey_Switch",checked:""},null,512),[[P,s.value.preshared_key_bulkAdd]]),e("label",Yt,[e("small",Zt,[o(r,{t:"Pre-Shared Key"}),h[6]||(h[6]=$()),s.value.preshared_key_bulkAdd?(i(),x(r,{key:0,t:"Enabled"})):(i(),x(r,{key:1,t:"Disabled"}))])])])])):y("",!0)])])])])])]),M.value==="awg"?(i(),d("div",Xt,[e("h5",null,[o(r,{t:"AmneziaWG Peer Setting"})]),e("div",null,[e("label",es,[e("small",ts,[o(r,{t:"Advanced Security"})])]),e("div",ss,[b(e("input",{type:"radio",class:"btn-check","onUpdate:modelValue":h[2]||(h[2]=k=>s.value.advanced_security=k),value:"on",name:"advanced_security_radio",id:"advanced_security_on",autocomplete:"off"},null,512),[[T,s.value.advanced_security]]),e("label",as,[o(r,{t:"On"})]),b(e("input",{type:"radio","onUpdate:modelValue":h[3]||(h[3]=k=>s.value.advanced_security=k),value:"off",class:"btn-check",name:"advanced_security_radio",id:"advanced_security_off",autocomplete:"off"},null,512),[[T,s.value.advanced_security]]),e("label",ls,[o(r,{t:"Off"})])])])])):y("",!0),e("div",os,[e("button",{class:"ms-auto btn btn-dark btn-brand rounded-3 px-3 py-2 shadow",disabled:!U.value||p.value,onClick:h[4]||(h[4]=k=>j())},[p.value?y("",!0):(i(),d("i",ds)),p.value?(i(),x(r,{key:1,t:"Adding..."})):(i(),x(r,{key:2,t:"Add"}))],8,is)])])])])])],512))}};export{us as default};