Files
WGDashboard/src/static/dist/WGDashboardAdmin/assets/peerAddModal-CNRIBs-Q.js
google-labs-jules[bot] 57652d9f8e Fix: Correct system status indicator layout
The system status indicators (CPU, Storage, Memory, Swap Memory) were not aligned properly, appearing misplaced and cluttered. This was caused by incorrect Bootstrap grid classes, which resulted in a 2x2 layout on medium screens and a 1x4 layout on extra-large screens.

This commit fixes the layout by using the correct Bootstrap grid classes to ensure a responsive layout. The new layout is a 1x4 on large screens, a 2x2 on medium screens, and a 1x1 on small screens. This provides a clean and organized UI across different screen resolutions.

This commit also corrects a typo in the `width` style binding for the Swap Memory progress bar.
2025-11-07 04:48:58 +00: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-B8BTG8Ck.js";import{L as p}from"./localeText-B8Zr5hW3.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};