import{p as F,e as V,c as W,m as z}from"./index-Bno8fcdN.js";import{B as G,W as B,r as h,o as J,H as N,q as j,c as a,a as n,b as e,e as T,m as w,d as r,t as _,y as P,C as H,F as A,i as I,f as U,n as D,z as q,I as Z,g as R,j as Q,_ as X,w as Y,h as O,D as ee}from"./index-BQYwwrw6.js";import{L as g}from"./localeText-C3GiyveB.js";import{r as te}from"./galois-field-I2lBzzs-.js";const se=s=>{const t=s.split(` `),o={};for(let f of t){if(f==="[Peer]")break;if(f.length>0){let l=f.replace(" = ","=");l.indexOf("=")>-1&&(l=[l.slice(0,l.indexOf("=")),l.slice(l.indexOf("=")+1)],l[0]==="ListenPort"?o[l[0]]=parseInt(l[1]):o[l[0]]=l[1])}}return o},oe=s=>{const t=s.split(` `),o=[];let f=-1;const l=t.indexOf("[Peer]");if(l===-1)return!1;for(let d=l;d-1&&(b=[b.slice(0,b.indexOf("=")),b.slice(b.indexOf("=")+1)],o[f][b[0]]=b[1])}return o};te();const ne={class:"card rounded-3"},ie={class:"card-body"},ae={class:"row"},le={class:"col-sm"},re={class:"d-flex flex-column gap-2"},de={class:"d-flex align-items-center"},ue={class:"text-muted"},ce={key:0,class:"mb-0 ms-auto"},pe={key:0,class:"d-flex gap-2 flex-column"},me={class:"text-muted d-flex align-items-center gap-1",style:{"white-space":"nowrap"}},fe={class:"badge rounded-pill text-bg-success ms-auto"},be={value:void 0,disabled:""},ve=["value"],ge={class:"col-sm"},he={class:"d-flex flex-column gap-2 h-100"},we={class:"d-flex align-items-center"},ye={class:"text-muted"},_e={key:0,class:"mb-0 ms-auto"},Ce={key:1,class:"d-flex ms-auto align-items-center"},Pe={key:0,class:"d-flex gap-2 flex-column mt-auto"},xe={class:"text-muted d-flex align-items-center gap-1",style:{"white-space":"nowrap"}},Se={class:"badge rounded-pill text-bg-success ms-auto"},$e={value:void 0,disabled:""},Le=["value"],ke={key:0,class:"d-flex gap-2"},Te={key:1,class:"d-flex gap-2"},M=G({__name:"newConfigurationTemplate",props:["template","edit","isNew","peersCount"],emits:["subnet","port","update","remove"],setup(s,{emit:t}){const o=s,f=B(),l=h(!1);o.edit&&(l.value=!0);const d=h({...o.template});h(256);const b=h([]);h(20);const u=t,S=h(void 0),i=h(void 0),x=h([]),$=()=>{if(b.value=[],o.template.Subnet){let v=new Set([...V(o.template.Subnet)]);if(o.peersCount&&o.peersCount>0){for(let k of f.Configurations){let K=k.Address.replace(" ","").split(",");for(let E of K)W(o.template.Subnet,E)&&(v=v.difference(new Set([...V(E)])))}let c=Math.floor(v.size/o.peersCount),p=0;v=Array.from(v);for(let k=0;k<(c>10?10:c);k++)b.value.push(z(v.slice(p,p+o.peersCount))),p+=o.peersCount}}},m=()=>{if(o.template.ListenPortStart&&o.template.ListenPortEnd){let v=o.template.ListenPortStart,c=o.template.ListenPortEnd;v>c&&(v=o.template.ListenPortEnd,c=o.template.ListenPortStart);let p=new Set(Array.from({length:c-v+1},(k,K)=>v+K));x.value=[...p.difference(new Set(f.Configurations.map(k=>Number(k.ListenPort))))]}};J(()=>{o.isNew||($(),m())}),N(()=>o.peersCount,()=>{$()}),N(S,()=>{u("subnet",S.value)}),N(i,()=>{u("port",i.value)}),N(()=>o.template,()=>{$(),m()},{deep:!0});const y=j(()=>{try{const{start:v,end:c}=F(d.value.Subnet);if(c-v>=1000000n)throw new Error("Too many IPs");return d.value.Subnet&&d.value.ListenPortStart&&d.value.ListenPortEnd&&d.value.ListenPortEnd>=d.value.ListenPortStart}catch{return!1}}),L=async()=>{await q("/api/newConfigurationTemplates/updateTemplate",{Template:d.value},v=>{v.status&&(u("update",d.value),l.value=!1)})},C=async()=>{await q("/api/newConfigurationTemplates/deleteTemplate",{Template:d.value},v=>{v.status&&u("remove",d)})};return(v,c)=>(n(),a("div",ne,[e("div",ie,[e("div",ae,[e("div",le,[e("div",re,[e("div",de,[e("label",ue,[e("small",null,[r(g,{t:"Subnet"})])]),l.value?w((n(),a("input",{key:1,class:"form-control-sm form-control rounded-3 w-auto ms-auto","onUpdate:modelValue":c[0]||(c[0]=p=>d.value.Subnet=p)},null,512)),[[P,d.value.Subnet]]):(n(),a("p",ce,[e("small",null,_(s.template.Subnet),1)]))]),l.value?T("",!0):(n(),a("div",pe,[e("label",me,[e("small",null,[r(g,{t:"Available Subnets"})]),e("span",fe,_(b.value.length),1)]),w(e("select",{"onUpdate:modelValue":c[1]||(c[1]=p=>S.value=p),class:"form-select form-select-sm rounded-3 w-100 ms-auto"},[e("option",be,[r(g,{t:"Select..."})]),(n(!0),a(A,null,I(b.value,p=>(n(),a("option",{value:p.join(", ")},_(p.join(", ")),9,ve))),256))],512),[[H,S.value]])]))])]),e("div",ge,[e("div",he,[e("div",we,[e("label",ye,[e("small",null,[r(g,{t:"Listen Port Range"})])]),l.value?(n(),a("div",Ce,[w(e("input",{class:"form-control-sm form-control rounded-3 ms-auto",style:{width:"80px"},"onUpdate:modelValue":c[2]||(c[2]=p=>d.value.ListenPortStart=p),type:"number"},null,512),[[P,d.value.ListenPortStart]]),c[10]||(c[10]=e("i",{class:"bi bi-arrow-right mx-2"},null,-1)),w(e("input",{class:"form-control-sm form-control rounded-3 ms-auto",style:{width:"80px"},"onUpdate:modelValue":c[3]||(c[3]=p=>d.value.ListenPortEnd=p),type:"number"},null,512),[[P,d.value.ListenPortEnd]])])):(n(),a("p",_e,[e("small",null,[U(_(s.template.ListenPortStart),1),c[9]||(c[9]=e("i",{class:"bi bi-arrow-right mx-2"},null,-1)),U(" "+_(s.template.ListenPortEnd),1)])]))]),l.value?T("",!0):(n(),a("div",Pe,[e("label",xe,[e("small",null,[r(g,{t:"Available Ports"})]),e("span",Se,_(x.value.length),1)]),w(e("select",{"onUpdate:modelValue":c[4]||(c[4]=p=>i.value=p),class:"form-select form-select-sm rounded-3 w-100 ms-auto"},[e("option",$e,[r(g,{t:"Select..."})]),(n(!0),a(A,null,I([...x.value],p=>(n(),a("option",{value:p},_(p),9,Le))),256))],512),[[H,i.value]])]))])])]),c[11]||(c[11]=e("hr",null,null,-1)),l.value?(n(),a("div",Te,[e("button",{type:"button",onClick:c[7]||(c[7]=p=>s.isNew?u("remove"):l.value=!1),class:"ms-auto btn btn-sm border-secondary-subtle bg-secondary-subtle text-secondary-emphasis rounded-3"},[r(g,{t:"Cancel"})]),e("button",{type:"button",onClick:c[8]||(c[8]=p=>L()),class:D([{disabled:!y.value},"btn btn-sm border-primary-subtle bg-primary-subtle text-primary-emphasis rounded-3"])},[r(g,{t:"Save"})],2)])):(n(),a("div",ke,[e("button",{type:"button",onClick:c[5]||(c[5]=p=>{l.value=!0,d.value={...o.template}}),class:"ms-auto btn btn-sm border-primary-subtle bg-primary-subtle text-primary-emphasis rounded-3"},[r(g,{t:"Edit"})]),e("button",{type:"button",onClick:c[6]||(c[6]=p=>C()),class:"btn btn-sm border-danger-subtle bg-danger-subtle text-danger-emphasis rounded-3"},[r(g,{t:"Delete"})])]))])]))}}),Ae={class:"card rounded-3"},Ie={class:"card-header"},Ne={class:"d-flex align-items-center"},Ue={class:"text-muted"},Ke={class:"card-body"},Oe={key:0,class:"d-flex gap-2 align-items-center mb-2"},De={class:"text-muted",style:{"white-space":"nowrap"}},qe={class:"row g-2"},Re={key:0,class:"col-12"},Ee={class:"text-center text-muted m-0"},Ve={class:"col-12"},He={class:"col-12"},Me=G({__name:"newConfigurationTemplates",emits:["subnet","port"],async setup(s,{emit:t}){let o,f;const l=t,d=h([]),b=async()=>{await R("/api/newConfigurationTemplates",{},$=>{d.value=$.data})};[o,f]=Z(()=>b()),await o,f();const u=h([]),S=async()=>{await R("/api/newConfigurationTemplates/createTemplate",{},$=>{u.value.push($.data)})},i=h(256),x=h(256);return($,m)=>(n(),a("div",Ae,[e("div",Ie,[e("div",Ne,[r(g,{t:"Subnets & Listen Ports Templates"}),e("button",{type:"button",onClick:m[0]||(m[0]=y=>S()),class:"btn btn-sm bg-success-subtle text-success-emphasis border-success-subtle rounded-3 ms-auto"},[m[9]||(m[9]=e("i",{class:"bi bi-plus-circle me-2"},null,-1)),r(g,{t:"Add Template"})])]),e("small",Ue,[r(g,{t:"Create templates to keep track a list of available Subnets & Listen Ports"})])]),e("div",Ke,[d.value.length>0?(n(),a("div",Oe,[e("label",De,[e("small",null,[r(g,{t:"No. of IP Address / Subnet"})])]),w(e("input",{type:"number","onUpdate:modelValue":m[1]||(m[1]=y=>i.value=y),onChange:m[2]||(m[2]=y=>x.value=i.value),class:"form-control form-control-sm rounded-3 w-100 ms-auto"},null,544),[[P,i.value]])])):T("",!0),e("div",qe,[u.value.length===0&&d.value.length===0?(n(),a("div",Re,[e("p",Ee,[r(g,{t:"No Templates"})])])):T("",!0),(n(!0),a(A,null,I(u.value,y=>(n(),a("div",Ve,[r(M,{edit:!0,isNew:!0,onRemove:L=>u.value=u.value.filter(C=>C.TemplateID!==y.TemplateID),onUpdate:L=>{u.value=u.value.filter(C=>C.TemplateID!==y.TemplateID),b()},onSubnet:m[3]||(m[3]=L=>l("subnet",L)),onPort:m[4]||(m[4]=L=>l("port",L)),template:y},null,8,["onRemove","onUpdate","template"])]))),256)),(n(!0),a(A,null,I(d.value,(y,L)=>(n(),a("div",He,[(n(),Q(M,{key:y.TemplateID,peersCount:x.value,onRemove:m[5]||(m[5]=C=>b()),onUpdate:m[6]||(m[6]=C=>b()),onSubnet:m[7]||(m[7]=C=>l("subnet",C)),onPort:m[8]||(m[8]=C=>l("port",C)),template:y},null,8,["peersCount","template"]))]))),256))])])]))}}),Fe={name:"newConfiguration",components:{NewConfigurationTemplates:Me,LocaleText:g},async setup(){const s=B(),t=h([]);await R("/api/protocolsEnabled",{},f=>{t.value=f.data});const o=ee();return{store:s,protocols:t,dashboardStore:o}},data(){return{newConfiguration:{ConfigurationName:"",Address:"",ListenPort:"",PrivateKey:"",PublicKey:"",PresharedKey:"",PreUp:"",PreDown:"",PostUp:"",PostDown:"",Table:"",Protocol:"wg",Jc:5,Jmin:49,Jmax:998,S1:17,S2:110,H1:0,H2:0,H3:0,H4:0},numberOfAvailableIPs:"0",error:!1,errorMessage:"",success:!1,loading:!1,parseInterfaceResult:void 0,parsePeersResult:void 0}},created(){this.wireguardGenerateKeypair();let s=[];for(;[...new Set(s)].length!==4;)s=[this.rand(1,2**31-1),this.rand(1,2**31-1),this.rand(1,2**31-1),this.rand(1,2**31-1)];this.newConfiguration.H1=s[0],this.newConfiguration.H2=s[1],this.newConfiguration.H3=s[2],this.newConfiguration.H4=s[3]},methods:{rand(s,t){return Math.floor(Math.random()*(t-s)+s)},wireguardGenerateKeypair(){const s=window.wireguard.generateKeypair();this.newConfiguration.PrivateKey=s.privateKey,this.newConfiguration.PublicKey=s.publicKey,this.newConfiguration.PresharedKey=s.presharedKey},async saveNewConfiguration(){this.goodToSubmit&&(this.loading=!0,await q("/api/addWireguardConfiguration",this.newConfiguration,async s=>{s.status?(this.success=!0,await this.store.getConfigurations(),this.$router.push(`/configuration/${this.newConfiguration.ConfigurationName}/peers`)):(this.error=!0,this.errorMessage=s.message,document.querySelector(`#${s.data}`).classList.remove("is-valid"),document.querySelector(`#${s.data}`).classList.add("is-invalid"),this.loading=!1)}))},openFileUpload(){document.querySelector("#fileUpload").click()},readFile(s){const t=s.target.files[0];if(!t)return!1;const o=new FileReader;o.onload=f=>{this.parseInterfaceResult=se(f.target.result),this.parsePeersResult=oe(f.target.result);let l=0;if(this.parseInterfaceResult){this.newConfiguration.ConfigurationName=t.name.replace(".conf","");for(let d of Object.keys(this.parseInterfaceResult))Object.keys(this.newConfiguration).includes(d)&&(this.newConfiguration[d]=this.parseInterfaceResult[d],l+=1)}l>0?this.dashboardStore.newMessage("WGDashboard",`Parse successful! Updated ${l} field(s)`,"success"):this.dashboardStore.newMessage("WGDashboard","Parse failed","danger")},o.readAsText(t)}},computed:{goodToSubmit(){let s=["ConfigurationName","Address","ListenPort","PrivateKey"],t=[...document.querySelectorAll("input[required]")];return s.find(o=>this.newConfiguration[o].length===0)===void 0&&t.find(o=>o.classList.contains("is-invalid"))===void 0}},watch:{"newConfiguration.Address"(s){let t=document.querySelector("#Address");if(t){t.classList.remove("is-invalid","is-valid");try{this.numberOfAvailableIPs=0,s.replace(" ","").split(",").forEach(o=>{let f=F(o),l=Number(f.end-f.start);this.numberOfAvailableIPs+=l+1}),t.classList.add("is-valid")}catch(o){console.log(o),this.numberOfAvailableIPs="0",t.classList.add("is-invalid")}}},"newConfiguration.ListenPort"(s){let t=document.querySelector("#ListenPort");t&&(t.classList.remove("is-invalid","is-valid"),s<0||s>65353||!Number.isInteger(s)?t.classList.add("is-invalid"):t.classList.add("is-valid"))},"newConfiguration.ConfigurationName"(s){let t=document.querySelector("#ConfigurationName");t&&(t.classList.remove("is-invalid","is-valid"),!/^[a-zA-Z0-9_=+.-]{1,15}$/.test(s)||s.length===0||this.store.Configurations.find(o=>o.Name===s)?t.classList.add("is-invalid"):t.classList.add("is-valid"))},"newConfiguration.PrivateKey"(s){let t=document.querySelector("#PrivateKey");if(t){t.classList.remove("is-invalid","is-valid");try{wireguard.generatePublicKey(s),t.classList.add("is-valid")}catch{t.classList.add("is-invalid")}}}},mounted(){document.querySelector("#fileUpload").addEventListener("change",this.readFile,!1)}},Ge={class:"mt-md-5 mt-3 text-body"},Be={class:"container mb-4"},We={class:"mb-4 d-flex align-items-center gap-4 align-items-center"},ze={class:"mb-0"},Je={class:"d-flex gap-2 ms-auto"},je={class:"card rounded-3 shadow"},Ze={class:"card-header"},Qe={class:"card-body d-flex gap-2 protocolBtnGroup"},Xe={key:0,class:"bi bi-check-circle-fill me-2"},Ye={key:1,class:"bi bi-circle me-2"},et={key:0,class:"bi bi-check-circle-fill me-2"},tt={key:1,class:"bi bi-circle me-2"},st={class:"card rounded-3 shadow"},ot={class:"card-header"},nt={class:"card-body"},it=["disabled"],at={class:"invalid-feedback"},lt={key:0},rt={key:1},dt={class:"mb-0"},ut={class:"card rounded-3 shadow"},ct={class:"card-header"},pt={class:"card-body",style:{"font-family":"var(--bs-font-monospace)"}},mt={class:"mb-2"},ft={class:"text-muted fw-bold mb-1"},bt={class:"input-group"},vt=["disabled"],gt={class:"text-muted fw-bold mb-1"},ht={class:"card rounded-3 shadow"},wt={class:"card-header"},yt={class:"card-body"},_t=["disabled"],Ct={class:"invalid-feedback"},Pt={key:0},xt={key:1},St={class:"card rounded-3 shadow"},$t={class:"card-header d-flex align-items-center"},Lt={class:"badge rounded-pill text-bg-success ms-auto"},kt={class:"card-body"},Tt=["disabled"],At={class:"invalid-feedback"},It={key:0},Nt={key:1},Ut={class:"accordion",id:"newConfigurationOptionalAccordion"},Kt={class:"accordion-item"},Ot={class:"accordion-header"},Dt={class:"accordion-button collapsed",type:"button","data-bs-toggle":"collapse","data-bs-target":"#newConfigurationOptionalAccordionCollapse"},qt={id:"newConfigurationOptionalAccordionCollapse",class:"accordion-collapse collapse","data-bs-parent":"#newConfigurationOptionalAccordion"},Rt={class:"accordion-body d-flex flex-column gap-3"},Et={class:"card rounded-3"},Vt={class:"card-header"},Ht={class:"card-body"},Mt=["id","onUpdate:modelValue"],Ft={class:"card rounded-3"},Gt={class:"card-header"},Bt={class:"card-body"},Wt=["id","onUpdate:modelValue"],zt=["disabled"],Jt={key:0,class:"d-flex w-100"},jt={key:1,class:"d-flex w-100"},Zt={key:2,class:"d-flex w-100 align-items-center"};function Qt(s,t,o,f,l,d){const b=O("RouterLink"),u=O("LocaleText"),S=O("NewConfigurationTemplates");return n(),a("div",Ge,[e("div",Be,[e("div",We,[r(b,{to:"/",class:"btn btn-dark btn-brand p-2 shadow",style:{"border-radius":"100%"}},{default:Y(()=>[...t[12]||(t[12]=[e("h2",{class:"mb-0",style:{"line-height":"0"}},[e("i",{class:"bi bi-arrow-left-circle"})],-1)])]),_:1}),e("h2",ze,[r(u,{t:"New Configuration"})]),e("div",Je,[e("button",{class:"titleBtn py-2 text-decoration-none btn text-primary-emphasis bg-primary-subtle rounded-3 border-1 border-primary-subtle",onClick:t[0]||(t[0]=i=>d.openFileUpload()),type:"button","aria-expanded":"false"},[t[13]||(t[13]=e("i",{class:"bi bi-upload me-2"},null,-1)),r(u,{t:"Open File"})]),t[14]||(t[14]=e("input",{type:"file",id:"fileUpload",multiple:"",class:"d-none",accept:"text/plain"},null,-1))])]),e("form",{class:"text-body d-flex flex-column gap-3",onSubmit:t[11]||(t[11]=i=>{i.preventDefault(),this.saveNewConfiguration()})},[e("div",je,[e("div",Ze,[r(u,{t:"Protocol"})]),e("div",Qe,[this.protocols.includes("wg")?(n(),a("a",{key:0,onClick:t[1]||(t[1]=i=>this.newConfiguration.Protocol="wg"),class:D([{"opacity-50":this.newConfiguration.Protocol!=="wg"},"btn btn-primary wireguardBg border-0"]),style:{"flex-basis":"100%"}},[this.newConfiguration.Protocol==="wg"?(n(),a("i",Xe)):(n(),a("i",Ye)),t[15]||(t[15]=e("strong",null," WireGuard ",-1))],2)):T("",!0),this.protocols.includes("awg")?(n(),a("a",{key:1,onClick:t[2]||(t[2]=i=>this.newConfiguration.Protocol="awg"),class:D([{"opacity-50":this.newConfiguration.Protocol!=="awg"},"btn btn-primary amneziawgBg border-0"]),style:{"flex-basis":"100%"}},[this.newConfiguration.Protocol==="awg"?(n(),a("i",et)):(n(),a("i",tt)),t[16]||(t[16]=e("strong",null," AmneziaWG ",-1))],2)):T("",!0)])]),e("div",st,[e("div",ot,[r(u,{t:"Configuration Name"})]),e("div",nt,[w(e("input",{type:"text",class:"form-control",placeholder:"ex. wg1",id:"ConfigurationName","onUpdate:modelValue":t[3]||(t[3]=i=>this.newConfiguration.ConfigurationName=i),disabled:this.loading,required:""},null,8,it),[[P,this.newConfiguration.ConfigurationName]]),e("div",at,[this.error?(n(),a("div",lt,_(this.errorMessage),1)):(n(),a("div",rt,[r(u,{t:"Configuration name is invalid. Possible reasons:"}),e("ul",dt,[e("li",null,[r(u,{t:"Configuration name already exist."})]),e("li",null,[r(u,{t:"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen."})])])]))])])]),e("div",ut,[e("div",ct,[r(u,{t:"Private Key"}),t[17]||(t[17]=U(" & ",-1)),r(u,{t:"Public Key"})]),e("div",pt,[e("div",mt,[e("label",ft,[e("small",null,[r(u,{t:"Private Key"})])]),e("div",bt,[w(e("input",{type:"text",class:"form-control",id:"PrivateKey",required:"",disabled:this.loading,"onUpdate:modelValue":t[4]||(t[4]=i=>this.newConfiguration.PrivateKey=i)},null,8,vt),[[P,this.newConfiguration.PrivateKey]]),e("button",{class:"btn btn-outline-primary",type:"button",title:"Regenerate Private Key",onClick:t[5]||(t[5]=i=>d.wireguardGenerateKeypair())},[...t[18]||(t[18]=[e("i",{class:"bi bi-arrow-repeat"},null,-1)])])])]),e("div",null,[e("label",gt,[e("small",null,[r(u,{t:"Public Key"})])]),w(e("input",{type:"text",class:"form-control",id:"PublicKey","onUpdate:modelValue":t[6]||(t[6]=i=>this.newConfiguration.PublicKey=i),disabled:""},null,512),[[P,this.newConfiguration.PublicKey]])])])]),r(S,{onSubnet:t[7]||(t[7]=i=>this.newConfiguration.Address=i),onPort:t[8]||(t[8]=i=>this.newConfiguration.ListenPort=i)}),e("div",ht,[e("div",wt,[r(u,{t:"Listen Port"})]),e("div",yt,[w(e("input",{type:"number",class:"form-control",placeholder:"0-65353",id:"ListenPort",min:"1",max:"65353","onUpdate:modelValue":t[9]||(t[9]=i=>this.newConfiguration.ListenPort=i),disabled:this.loading,required:""},null,8,_t),[[P,this.newConfiguration.ListenPort]]),e("div",Ct,[this.error?(n(),a("div",Pt,_(this.errorMessage),1)):(n(),a("div",xt,[r(u,{t:"Invalid port"})]))])])]),e("div",St,[e("div",$t,[r(u,{t:"IP Address/CIDR"}),e("span",Lt,[r(u,{t:l.numberOfAvailableIPs+" Available IP Address"},null,8,["t"])])]),e("div",kt,[w(e("input",{type:"text",class:"form-control",placeholder:"Ex: 10.0.0.1/24",id:"Address","onUpdate:modelValue":t[10]||(t[10]=i=>this.newConfiguration.Address=i),disabled:this.loading,required:""},null,8,Tt),[[P,this.newConfiguration.Address]]),e("div",At,[this.error?(n(),a("div",It,_(this.errorMessage),1)):(n(),a("div",Nt," IP Address/CIDR is invalid "))])])]),t[23]||(t[23]=e("hr",null,null,-1)),e("div",Ut,[e("div",Kt,[e("h2",Ot,[e("button",Dt,[r(u,{t:"Optional Settings"})])]),e("div",qt,[e("div",Rt,[(n(),a(A,null,I(["Table","PreUp","PreDown","PostUp","PostDown"],i=>e("div",Et,[e("div",Vt,_(i),1),e("div",Ht,[w(e("input",{type:"text",class:"form-control font-monospace",id:i,"onUpdate:modelValue":x=>this.newConfiguration[i]=x},null,8,Mt),[[P,this.newConfiguration[i]]])])])),64)),this.newConfiguration.Protocol==="awg"?(n(),a(A,{key:0},I(["Jc","Jmin","Jmax","S1","S2","H1","H2","H3","H4"],i=>e("div",Ft,[e("div",Gt,_(i),1),e("div",Bt,[w(e("input",{type:"text",class:"form-control font-monospace",id:i,"onUpdate:modelValue":x=>this.newConfiguration[i]=x},null,8,Wt),[[P,this.newConfiguration[i]]])])])),64)):T("",!0)])])])]),e("button",{class:"btn btn-dark btn-brand rounded-3 px-3 py-2 shadow ms-auto",disabled:!this.goodToSubmit||this.loading||this.success},[this.success?(n(),a("span",Jt,[r(u,{t:"Success"}),t[19]||(t[19]=U("! ",-1)),t[20]||(t[20]=e("i",{class:"bi bi-check-circle-fill ms-2"},null,-1))])):this.loading?(n(),a("span",Zt,[r(u,{t:"Saving..."}),t[22]||(t[22]=e("span",{class:"ms-2 spinner-border spinner-border-sm",role:"status"},null,-1))])):(n(),a("span",jt,[t[21]||(t[21]=e("i",{class:"bi bi-save-fill me-2"},null,-1)),r(u,{t:"Save"})]))],8,zt)],32)])])}const ss=X(Fe,[["render",Qt],["__scopeId","data-v-c25dcde1"]]);export{ss as default};