WGDashboard/src/static/app/dist/assets/editConfiguration-gjtFMIrx.js
Donald Zou 60da68c994 Build
2025-05-19 21:49:19 +08:00

8 lines
28 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{J as F,r as x,I as E,D as O,o as j,a as c,c as v,b as e,d as o,n as $,m as B,y as P,u as I,i as N,A as W,g as M,_ as z,p as Q,q as X,w as T,e as S,j as Y,t as D,f as V,F as H,h as K,T as G,E as J,W as q,H as Z,k as ee,a3 as te,s as R,C as se,a4 as ne,O as ae,v as oe}from"./index-DZliHkQD.js";import{L as i}from"./localeText-DG9SnJT8.js";import{d as ie}from"./dayjs.min-PaIL06iQ.js";const le={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},de={class:"container d-flex h-100 w-100"},re={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"700px"}},ue={class:"card rounded-3 shadow flex-grow-1 bg-danger-subtle border-danger-subtle",id:"deleteConfigurationContainer"},ce={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},ge={class:"mb-0"},fe={class:"card-body px-4 text-muted"},me={class:"mb-0"},be={key:0},ve={key:1},pe={key:2,class:"d-flex align-items-center gap-2"},he=["placeholder"],ye=["disabled"],xe={__name:"deleteConfiguration",emits:["backup","close"],setup(l,{emit:d}){const p=F().params.id,s=x(""),f=E(),u=O(),h=x(!1),g=()=>{clearInterval(u.Peers.RefreshInterval),h.value=!0,W("/api/deleteWireguardConfiguration",{ConfigurationName:p},k=>{k.status?(f.push("/"),u.newMessage("Server","Configuration deleted","success")):h.value=!1})},b=x(!0),y=x([]),w=()=>{b.value=!0,M("/api/getWireguardConfigurationBackup",{configurationName:p},k=>{y.value=k.data,b.value=!1})};j(()=>{w()});const _=d;return(k,r)=>(c(),v("div",le,[e("div",de,[e("div",re,[e("div",ue,[e("div",ce,[e("h5",ge,[o(i,{t:"Are you sure to delete this configuration?"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:r[0]||(r[0]=n=>_("close"))})]),e("div",fe,[e("p",me,[o(i,{t:"Once you deleted this configuration:"})]),e("ul",null,[e("li",null,[o(i,{t:"All connected peers will get disconnected"})]),e("li",null,[o(i,{t:"Both configuration file (.conf) and database table related to this configuration will get deleted"})])]),e("div",{class:$(["alert",[b.value?"alert-secondary":y.value.length>0?"alert-success":"alert-danger"]])},[b.value?(c(),v("div",be,[r[5]||(r[5]=e("i",{class:"bi bi-search me-2"},null,-1)),o(i,{t:"Checking backups..."})])):y.value.length>0?(c(),v("div",ve,[r[6]||(r[6]=e("i",{class:"bi bi-check-circle-fill me-2"},null,-1)),o(i,{t:"This configuration have "+y.value.length+" backups"},null,8,["t"])])):(c(),v("div",pe,[r[9]||(r[9]=e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)),o(i,{t:"This configuration have no backup"}),e("a",{role:"button",onClick:r[1]||(r[1]=n=>_("backup")),class:"ms-auto btn btn-sm btn-primary rounded-3"},[r[7]||(r[7]=e("i",{class:"bi bi-clock-history me-2"},null,-1)),o(i,{t:"Backup"})]),e("a",{role:"button",onClick:r[2]||(r[2]=n=>w()),class:"btn btn-sm btn-primary rounded-3"},r[8]||(r[8]=[e("i",{class:"bi bi-arrow-clockwise"},null,-1)]))]))],2),r[11]||(r[11]=e("hr",null,null,-1)),e("p",null,[o(i,{t:"If you're sure, please type in the configuration name below and click Delete"})]),B(e("input",{class:"form-control rounded-3 mb-3",placeholder:I(p),"onUpdate:modelValue":r[3]||(r[3]=n=>s.value=n),type:"text"},null,8,he),[[P,s.value]]),e("button",{class:"btn btn-danger w-100",onClick:r[4]||(r[4]=n=>g()),disabled:s.value!==I(p)||h.value},[r[10]||(r[10]=e("i",{class:"bi bi-trash-fill me-2 rounded-3"},null,-1)),h.value?(c(),N(i,{key:1,t:"Deleting..."})):(c(),N(i,{key:0,t:"Delete"}))],8,ye)])])])])]))}},we={class:"card my-0 rounded-3"},_e={class:"card-body position-relative"},Ce={key:0,class:"position-absolute w-100 h-100 confirmationContainer start-0 top-0 rounded-3 d-flex p-2"},ke={class:"m-auto"},Se={class:"d-flex gap-2 align-items-center justify-content-center"},Ne=["disabled"],$e=["disabled"],Be={key:0,class:"position-absolute w-100 h-100 confirmationContainer start-0 top-0 rounded-3 d-flex p-2"},Re={class:"m-auto"},Pe={class:"d-flex gap-2 align-items-center justify-content-center"},De=["disabled"],We=["disabled"],Le={class:"d-flex gap-3"},Ve={class:"d-flex flex-column"},He={class:"text-muted"},Me={class:"d-flex flex-column"},Oe={class:"text-muted"},ze={class:"d-flex gap-2 align-items-center ms-auto"},Ie={class:"card rounded-3"},Te={key:0,class:"card-body"},Ke=["value"],Fe={class:"d-flex"},Ae={__name:"backup",props:["b","delay"],emits:["refresh","refreshPeersList"],setup(l,{emit:d}){Q(r=>({b32c1fd8:_.value}));const t=l,p=x(!1),s=x(!1),f=F(),u=d,h=O(),g=x(!1),b=()=>{g.value=!0,W("/api/deleteWireguardConfigurationBackup",{ConfigurationName:f.params.id,BackupFileName:t.b.filename},r=>{g.value=!1,r.status?(u("refresh"),h.newMessage("Server","Backup deleted","success")):h.newMessage("Server","Backup failed to delete","danger")})},y=()=>{g.value=!0,W("/api/restoreWireguardConfigurationBackup",{ConfigurationName:f.params.id,BackupFileName:t.b.filename},r=>{g.value=!1,s.value=!1,r.status?(u("refreshPeersList"),h.newMessage("Server","Backup restored with "+t.b.filename,"success")):h.newMessage("Server","Backup failed to restore","danger")})},w=()=>{M("/api/downloadWireguardConfigurationBackup",{configurationName:f.params.id,backupFileName:t.b.filename},r=>{r.status&&window.open(`/fileDownload?file=${r.data}`,"_blank")})},_=X(()=>t.delay+"s"),k=x(!1);return(r,n)=>(c(),v("div",we,[e("div",_e,[o(Y,{name:"zoomReversed"},{default:T(()=>[p.value?(c(),v("div",Ce,[e("div",ke,[e("h5",null,[o(i,{t:"Are you sure to delete this backup?"})]),e("div",Se,[e("button",{class:"btn btn-danger rounded-3",disabled:g.value,onClick:n[0]||(n[0]=C=>b())},[o(i,{t:"Yes"})],8,Ne),e("button",{onClick:n[1]||(n[1]=C=>p.value=!1),disabled:g.value,class:"btn bg-secondary-subtle text-secondary-emphasis border-secondary-subtle rounded-3"},[o(i,{t:"No"})],8,$e)])])])):S("",!0)]),_:1}),o(Y,{name:"zoomReversed"},{default:T(()=>[s.value?(c(),v("div",Be,[e("div",Re,[e("h5",null,[o(i,{t:"Are you sure to restore this backup?"})]),e("div",Pe,[e("button",{disabled:g.value,onClick:n[2]||(n[2]=C=>y()),class:"btn btn-success rounded-3"},[o(i,{t:"Yes"})],8,De),e("button",{onClick:n[3]||(n[3]=C=>s.value=!1),disabled:g.value,class:"btn bg-secondary-subtle text-secondary-emphasis border-secondary-subtle rounded-3"},[o(i,{t:"No"})],8,We)])])])):S("",!0)]),_:1}),e("div",Le,[e("div",Ve,[e("small",He,[o(i,{t:"Backup"})]),e("samp",null,D(l.b.filename),1)]),e("div",Me,[e("small",Oe,[o(i,{t:"Backup Date"})]),V(" "+D(I(ie)(l.b.backupDate,"YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss")),1)]),e("div",ze,[e("button",{onClick:n[4]||(n[4]=C=>w()),class:"btn bg-primary-subtle text-primary-emphasis border-primary-subtle rounded-3 btn-sm"},n[8]||(n[8]=[e("i",{class:"bi bi-download"},null,-1)])),e("button",{onClick:n[5]||(n[5]=C=>s.value=!0),class:"btn bg-warning-subtle text-warning-emphasis border-warning-subtle rounded-3 btn-sm"},n[9]||(n[9]=[e("i",{class:"bi bi-clock-history"},null,-1)])),e("button",{onClick:n[6]||(n[6]=C=>p.value=!0),class:"btn bg-danger-subtle text-danger-emphasis border-danger-subtle rounded-3 btn-sm"},n[10]||(n[10]=[e("i",{class:"bi bi-trash-fill"},null,-1)]))])]),n[14]||(n[14]=e("hr",null,null,-1)),e("div",Ie,[e("a",{role:"button",class:$(["card-header d-flex text-decoration-none align-items-center",{"border-bottom-0":!k.value}]),style:{cursor:"pointer"},onClick:n[7]||(n[7]=C=>k.value=!k.value)},[e("small",null,[n[11]||(n[11]=V(".conf ")),o(i,{t:"File"})]),n[12]||(n[12]=e("i",{class:"bi bi-chevron-down ms-auto"},null,-1))],2),k.value?(c(),v("div",Te,[e("textarea",{class:"form-control rounded-3",value:l.b.content,disabled:"",style:{height:"300px","font-family":"var(--bs-font-monospace),sans-serif !important"}},null,8,Ke)])):S("",!0)]),n[15]||(n[15]=e("hr",null,null,-1)),e("div",Fe,[e("span",null,[n[13]||(n[13]=e("i",{class:"bi bi-database me-1"},null,-1)),o(i,{t:"Database File"})]),e("i",{class:$(["bi ms-auto",[l.b.database?"text-success bi-check-circle-fill":"text-danger bi-x-circle-fill"]])},null,2)])])]))}},Ue=z(Ae,[["__scopeId","data-v-9f0c0156"]]),Je={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll",ref:"editConfigurationContainer"},je={class:"d-flex h-100 w-100"},Ye={class:"modal-dialog-centered dashboardModal w-100 h-100 overflow-x-scroll flex-column gap-3 mx-3"},Ee={class:"my-5 d-flex gap-3 flex-column position-relative"},Ge={class:"title"},qe={class:"d-flex mb-3"},Ze={class:"mb-0"},Qe={class:"position-relative d-flex flex-column gap-3"},Xe={class:"text-center title",key:"spinner"},et={class:"card my-0 rounded-3",key:"noBackups"},tt={class:"card-body text-center text-muted"},st={__name:"configurationBackupRestore",emits:["close","refreshPeersList"],setup(l,{emit:d}){const t=F(),p=x([]),s=x(!0),f=d;j(()=>{u()});const u=()=>{s.value=!0,M("/api/getWireguardConfigurationBackup",{configurationName:t.params.id},g=>{p.value=g.data,s.value=!1})},h=()=>{M("/api/createWireguardConfigurationBackup",{configurationName:t.params.id},g=>{p.value=g.data,s.value=!1})};return(g,b)=>(c(),v("div",Je,[e("div",je,[e("div",Ye,[e("div",Ee,[e("div",Ge,[e("div",qe,[e("h4",Ze,[o(i,{t:"Backup & Restore"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:b[0]||(b[0]=y=>g.$emit("close"))})]),e("button",{onClick:b[1]||(b[1]=y=>h()),class:"btn bg-primary-subtle text-primary-emphasis border-primary-subtle rounded-3 w-100"},[b[4]||(b[4]=e("i",{class:"bi bi-plus-circle-fill me-2"},null,-1)),o(i,{t:"Create Backup"})])]),e("div",Qe,[o(G,{name:"list1"},{default:T(()=>[s.value&&p.value.length===0?(c(),v("div",Xe,b[5]||(b[5]=[e("div",{class:"spinner-border"},null,-1)]))):!s.value&&p.value.length===0?(c(),v("div",et,[e("div",tt,[b[6]||(b[6]=e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)),o(i,{t:"No backup yet, click the button above to create backup."})])])):S("",!0),(c(!0),v(H,null,K(p.value,y=>(c(),N(Ue,{onRefresh:b[2]||(b[2]=w=>u()),onRefreshPeersList:b[3]||(b[3]=w=>f("refreshPeersList")),b:y,key:y.filename},null,8,["b"]))),128))]),_:1})])])])])],512))}},nt=z(st,[["__scopeId","data-v-1f718118"]]),at={class:"card rounded-3 flex-grow-1 bg-danger-subtle border-danger-subtle border shadow"},ot={class:"card-body"},it={class:"d-flex align-items-center gap-3 inputGroup"},lt=["value"],dt={class:"mb-0"},rt={class:"d-flex mt-3"},ut=["disabled"],ct={__name:"updateConfigurationName",props:{configurationName:String},emits:["close"],setup(l,{emit:d}){const t=l,p=d,s=J({data:"",valid:!1}),f=q();j(()=>{Z(()=>s.data,y=>{s.valid=/^[a-zA-Z0-9_=+.-]{1,15}$/.test(y)&&y.length>0&&!f.Configurations.find(w=>w.Name===y)})});const u=O(),h=x(!1),g=E(),b=async()=>{s.data&&(h.value=!0,clearInterval(u.Peers.RefreshInterval),await W("/api/renameWireguardConfiguration",{ConfigurationName:t.configurationName,NewConfigurationName:s.data},async y=>{y.status?(await f.getConfigurations(),u.newMessage("Server","Configuration renamed","success"),g.push(`/configuration/${s.data}/peers`)):(u.newMessage("Server",y.message,"danger"),h.value=!1)}))};return(y,w)=>(c(),v("div",at,[e("div",ot,[e("p",null,[o(i,{t:"To update this configuration's name, WGDashboard will execute the following operations:"})]),e("ol",null,[e("li",null,[o(i,{t:"Duplicate current configuration's database table and .conf file with the new name"})]),e("li",null,[o(i,{t:"Delete current configuration's database table and .conf file"})])]),e("div",it,[e("input",{class:"form-control form-control-sm rounded-3",value:l.configurationName,disabled:""},null,8,lt),w[3]||(w[3]=e("h3",{class:"mb-0"},[e("i",{class:"bi bi-arrow-right"})],-1)),B(e("input",{class:$(["form-control form-control-sm rounded-3",[s.data?s.valid?"is-valid":"is-invalid":""]]),id:"newConfigurationName","onUpdate:modelValue":w[0]||(w[0]=_=>s.data=_)},null,2),[[P,s.data]])]),e("div",{class:$(["invalid-feedback",{"d-block":!s.valid&&s.data}])},[o(i,{t:"Configuration name is invalid. Possible reasons:"}),e("ul",dt,[e("li",null,[o(i,{t:"Configuration name already exist"})]),e("li",null,[o(i,{t:"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen."})])])],2),e("div",rt,[e("button",{onClick:w[1]||(w[1]=_=>p("close")),class:"btn btn-sm bg-secondary-subtle border-secondary-subtle text-secondary-emphasis rounded-3"},[o(i,{t:"Cancel"})]),e("button",{onClick:w[2]||(w[2]=_=>b()),disabled:!s.data||h.value,class:"btn btn-sm btn-danger rounded-3 ms-auto"},[o(i,{t:"Save"})],8,ut)])])]))}},gt=z(ct,[["__scopeId","data-v-33ea9576"]]),ft={name:"Dropdown",props:{width:{type:String,default:"80px"},height:{type:String,default:"auto"},title:{type:String,default:""},disabled:{type:Boolean,default:!1},defaultDisplay:{type:Boolean,default:!1}}},mt={class:"title"};function bt(l,d,t,p,s,f){return c(),v("div",{class:$(["dropdown",{disabled:t.disabled}]),onClick:d[0]||(d[0]=(...u)=>l.toggleDropdown&&l.toggleDropdown(...u)),onFocusout:d[1]||(d[1]=(...u)=>l.hideDropdown&&l.hideDropdown(...u)),tabindex:"0"},[e("div",mt,[e("div",null,D(t.title),1)])],34)}const vt=z(ft,[["render",bt]]),pt={components:{Dropdown:vt},name:"CodeEditor",props:{lineNums:{type:Boolean,default:!1},modelValue:{type:String},value:{type:String},theme:{type:String,default:"github-dark"},tabSpaces:{type:Number,default:2},wrap:{type:Boolean,default:!1},readOnly:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},header:{type:Boolean,default:!0},width:{type:String,default:"540px"},height:{type:String,default:"auto"},maxWidth:{type:String},minWidth:{type:String},maxHeight:{type:String},minHeight:{type:String},borderRadius:{type:String,default:"12px"},languages:{type:Array,default:function(){return[["javascript","JS"]]}},langListWidth:{type:String,default:"110px"},langListHeight:{type:String,default:"auto"},langListDisplay:{type:Boolean,default:!1},displayLanguage:{type:Boolean,default:!0},zIndex:{type:String,default:"0"},fontSize:{type:String,default:"17px"},padding:{type:String,default:"20px"}},directives:{highlight:{mounted(l,d){l.textContent=d.value},updated(l,d){l.scrolling?l.scrolling=!1:l.textContent=d.value}}},data(){return{scrollBarWidth:0,scrollBarHeight:0,top:0,left:0,languageClass:"hljs language-"+this.languages[0][0],languageTitle:this.languages[0][1]?this.languages[0][1]:this.languages[0][0],content:this.value,cursorPosition:0,insertTab:!1,lineNum:0,lineNumsWidth:0,scrolling:!1,textareaHeight:0,showLineNums:this.wrap?!1:this.lineNums}},computed:{tabWidth(){let l="";for(let d=0;d<this.tabSpaces;d++)l+=" ";return l},contentValue(){return this.modelValue==null?this.content+`
`:this.modelValue+`
`},scroll(){return this.height!="auto"}},methods:{updateValue(l){this.modelValue==null?this.content=l.target.value:this.$emit("update:modelValue",l.target.value)},changeLang(l){this.languageTitle=l[1]?l[1]:l[0],this.languageClass="language-"+l[0],this.$emit("lang",l[0])},tab(){if(document.execCommand("insertText"))document.execCommand("insertText",!1,this.tabWidth);else{const l=this.$refs.textarea.selectionStart;this.content=this.content.substring(0,l)+this.tabWidth+this.content.substring(l),this.cursorPosition=l+this.tabWidth.length,this.insertTab=!0}},calcScrollDistance(l){this.$refs.code.scrolling=!0,this.scrolling=!0,this.top=-l.target.scrollTop,this.left=-l.target.scrollLeft},resizer(){new ResizeObserver(t=>{this.scrollBarWidth=t[0].target.offsetWidth-t[0].target.clientWidth,this.scrollBarHeight=t[0].target.offsetHeight-t[0].target.clientHeight,this.textareaHeight=t[0].target.offsetHeight}).observe(this.$refs.textarea);const d=new ResizeObserver(t=>{this.lineNumsWidth=t[0].target.offsetWidth});this.$refs.lineNums&&d.observe(this.$refs.lineNums)},copy(){document.execCommand("copy")?(this.$refs.textarea.select(),document.execCommand("copy"),window.getSelection().removeAllRanges()):navigator.clipboard.writeText(this.$refs.textarea.value)},getLineNum(){const l=this.$refs.textarea.value;let d=0,t=l.indexOf(`
`);for(;t!==-1;)d++,t=l.indexOf(`
`,t+1);const p=this.$refs.lineNums.firstChild.offsetHeight,s=parseInt(this.textareaHeight/p)-1;this.lineNum=this.height=="auto"||d>s?d:s}},mounted(){this.$emit("lang",this.languages[0][0]),this.$emit("content",this.content),this.$emit("textarea",this.$refs.textarea),this.resizer()},updated(){this.insertTab&&(this.$refs.textarea.setSelectionRange(this.cursorPosition,this.cursorPosition),this.insertTab=!1),this.lineNums&&(this.scrolling?this.scrolling=!1:this.getLineNum())}},ht=["theme"],yt=["readOnly","autofocus","value"];function xt(l,d,t,p,s,f){const u=ee("Dropdown"),h=te("highlight");return c(),v("div",{theme:t.theme,class:$(["code-editor",{"hide-header":!t.header,scroll:f.scroll,"read-only":t.readOnly,wrap:t.wrap}]),style:R({width:t.width,height:t.height,zIndex:t.zIndex,maxWidth:t.maxWidth,minWidth:t.minWidth,maxHeight:t.maxHeight,minHeight:t.minHeight})},[e("div",{class:"hljs",style:R({borderRadius:t.borderRadius})},[t.header?(c(),v("div",{key:0,class:$(["header",{border:s.showLineNums}]),style:R({borderRadius:t.borderRadius+" "+t.borderRadius+" 0 0"})},[t.displayLanguage?(c(),N(u,{key:0,width:t.langListWidth,title:s.languageTitle,disabled:t.languages.length<=1,defaultDisplay:t.langListDisplay},null,8,["width","title","disabled","defaultDisplay"])):S("",!0)],6)):S("",!0),e("div",{class:"code-area",style:R({borderRadius:t.header?"0 0 "+t.borderRadius+" "+t.borderRadius:t.borderRadius})},[s.showLineNums?(c(),v("div",{key:0,ref:"lineNums",class:"line-nums hljs",style:R({fontSize:t.fontSize,paddingTop:t.header?"10px":t.padding,paddingBottom:t.padding,top:s.top+"px"})},[d[3]||(d[3]=e("div",null,"1",-1)),(c(!0),v(H,null,K(s.lineNum,g=>(c(),v("div",null,D(g+1),1))),256)),d[4]||(d[4]=e("div",null," ",-1))],4)):S("",!0),e("textarea",{title:"textarea",readOnly:t.readOnly,style:R({fontSize:t.fontSize,padding:t.header?t.lineNums?"10px "+t.padding+" "+t.padding:"0 "+t.padding+" "+t.padding:t.padding,marginLeft:s.showLineNums?s.lineNumsWidth+"px":"0",width:s.showLineNums?"calc(100% - "+s.lineNumsWidth+"px)":"100%"}),ref:"textarea",autofocus:t.autofocus,spellcheck:"false",onKeydown:d[0]||(d[0]=se(ne((...g)=>f.tab&&f.tab(...g),["prevent","stop"]),["tab"])),onScroll:d[1]||(d[1]=(...g)=>f.calcScrollDistance&&f.calcScrollDistance(...g)),value:t.modelValue==null?s.content:t.modelValue,onInput:d[2]||(d[2]=(...g)=>f.updateValue&&f.updateValue(...g))},null,44,yt),e("pre",{style:R({paddingRight:s.scrollBarWidth+"px",paddingBottom:s.scrollBarHeight+"px",marginLeft:s.showLineNums?s.lineNumsWidth+"px":"0",width:s.showLineNums?"calc(100% - "+s.lineNumsWidth+"px)":"100%"})},[d[6]||(d[6]=V(" ")),B((c(),v("code",{ref:"code",class:$(s.languageClass),style:R({top:s.top+"px",left:s.left+"px",fontSize:t.fontSize,padding:t.header?t.lineNums?"10px "+t.padding+" "+t.padding:"0 "+t.padding+" "+t.padding:t.padding})},d[5]||(d[5]=[V(`
`)]),6)),[[h,f.contentValue]]),d[7]||(d[7]=V(`
`))],4)],4)],4)],14,ht)}const wt=z(pt,[["render",xt]]),_t={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},Ct={class:"container d-flex h-100 w-100"},kt={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"1000px"}},St={class:"card rounded-3 shadow flex-grow-1",id:"deleteConfigurationContainer"},Nt={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},$t={class:"mb-0"},Bt={class:"card-body px-4 d-flex flex-column gap-3"},Rt={key:0,class:"alert alert-danger rounded-3 mb-0"},Pt={class:"mb-2"},Dt={class:"bg-body w-100 p-2 rounded-3"},Wt={class:"d-flex gap-2"},Lt=["disabled"],Vt=["disabled"],Ht={__name:"editRawConfigurationFile",emits:["close"],async setup(l,{emit:d}){let t,p;const s=d,f=F(),u=x(""),h=x(""),g=x(!1),b=x(""),y=async()=>{await M("/api/getWireguardConfigurationRawFile",{configurationName:f.params.id},r=>{u.value=r.data.content,h.value=r.data.path})};[t,p]=ae(()=>y()),await t,p();const w=O(),_=x(!1),k=async()=>{_.value=!0,await W("/api/updateWireguardConfigurationRawFile",{configurationName:f.params.id,rawConfiguration:u.value},r=>{r.status?(g.value=!1,w.newMessage("Server","Configuration saved","success")):(g.value=!0,b.value=r.message),_.value=!1})};return(r,n)=>(c(),v("div",_t,[e("div",Ct,[e("div",kt,[e("div",St,[e("div",Nt,[e("h5",$t,[o(i,{t:"Edit Raw Configuration File"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:n[0]||(n[0]=C=>s("close"))})]),e("div",Bt,[g.value?(c(),v("div",Rt,[e("div",Pt,[e("strong",null,[o(i,{t:"Failed to save configuration. Please see the following error message:"})])]),e("div",Dt,[e("pre",null,D(b.value),1)])])):S("",!0),o(wt,{disabled:!0,"read-only":_.value,modelValue:u.value,"onUpdate:modelValue":n[1]||(n[1]=C=>u.value=C),theme:I(w).Configuration.Server.dashboard_theme==="dark"?"github-dark":"github",languages:[["ini",h.value]],width:"100%",height:"600px"},null,8,["read-only","modelValue","theme","languages"]),e("div",Wt,[e("button",{class:"btn bg-secondary-subtle border-secondary-subtle text-secondary-emphasis rounded-3 shadow ms-auto px-3 py-2",disabled:_.value,onClick:n[2]||(n[2]=C=>y())},[n[4]||(n[4]=e("i",{class:"bi bi-arrow-clockwise me-2"},null,-1)),o(i,{t:"Reset"})],8,Lt),e("button",{onClick:n[3]||(n[3]=C=>k()),disabled:_.value,class:"btn bg-danger-subtle border-danger-subtle text-danger-emphasis rounded-3 px-3 py-2 shadow"},[n[5]||(n[5]=e("i",{class:"bi bi-save-fill me-2"},null,-1)),_.value?(c(),N(i,{key:1,t:"Saving..."})):(c(),N(i,{key:0,t:"Save"}))],8,Vt)])])])])])]))}},Mt={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0",ref:"editConfigurationContainer"},Ot={class:"w-100 h-100 overflow-y-scroll"},zt={class:"container d-flex h-100 w-100"},It={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"700px"}},Tt={class:"card rounded-3 shadow flex-grow-1"},Kt={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4"},Ft={class:"mb-0"},At={class:"card-body px-4 pb-4"},Ut={class:"d-flex gap-2 flex-column"},Jt={key:0,class:"d-flex align-items-center gap-3"},jt={class:"text-muted"},Yt={class:"d-flex align-items-center gap-3"},Et={class:"text-muted",style:{"word-break":"keep-all"}},Gt={class:"ms-auto",style:{"word-break":"break-all"}},qt={class:"d-flex"},Zt={for:"configuration_private_key",class:"form-label"},Qt={class:"text-muted d-block"},Xt={class:"form-check form-switch ms-auto"},es=["disabled"],ts={for:"configuration_ipaddress_cidr",class:"form-label"},ss={class:"text-muted"},ns=["disabled"],as={for:"configuration_listen_port",class:"form-label"},os={class:"text-muted"},is=["disabled"],ls={class:"accordion mt-2",id:"editConfigurationOptionalAccordion"},ds={class:"accordion-item"},rs={class:"accordion-header"},us={class:"accordion-button collapsed px-3 py-2",type:"button","data-bs-toggle":"collapse","data-bs-target":"#editOptionalAccordionCollapse"},cs={class:"text-muted"},gs={id:"editOptionalAccordionCollapse",class:"accordion-collapse collapse","data-bs-parent":"#editConfigurationOptionalAccordion"},fs={class:"accordion-body d-flex flex-column gap-3"},ms=["for"],bs={class:"text-muted"},vs=["disabled","onUpdate:modelValue","id"],ps=["for"],hs={class:"text-muted"},ys=["disabled","onUpdate:modelValue","id"],xs={class:"d-flex align-items-center gap-2 mt-4"},ws=["disabled"],_s=["disabled"],Cs={class:"mb-3"},ks={class:"d-flex gap-2 flex-column"},Bs={__name:"editConfiguration",props:{configurationInfo:Object},emits:["changed","close","refresh","dataChanged"],setup(l,{emit:d}){const t=l,p=q(),s=O(),f=x(!1),u=J(JSON.parse(JSON.stringify(t.configurationInfo))),h=x(!1),g=x(!1),b=J({PrivateKey:!0,IPAddress:!0,ListenPort:!0}),y=()=>{p.checkWGKeyLength(u.PrivateKey)?(b.PrivateKey=!0,u.PublicKey=window.wireguard.generatePublicKey(u.PrivateKey)):b.PrivateKey=!1},w=()=>{g.value=!1,Object.assign(u,JSON.parse(JSON.stringify(t.configurationInfo)))},_=d,k=()=>{f.value=!0,W("/api/updateWireguardConfiguration",u,L=>{f.value=!1,L.status?(s.newMessage("Server","Configuration saved","success"),g.value=!1,_("dataChanged",L.data)):s.newMessage("Server",L.message,"danger")})},r=x(!1);Z(u,()=>{g.value=JSON.stringify(u)!==JSON.stringify(t.configurationInfo)},{deep:!0});const n=x(!1),C=x(!1),A=x(!1);return(L,a)=>(c(),v("div",Mt,[e("div",Ot,[o(G,{name:"zoom"},{default:T(()=>[n.value?(c(),N(Ht,{key:0,name:"EditRawConfigurationFile",onClose:a[0]||(a[0]=m=>n.value=!1)})):S("",!0),A.value?(c(),N(xe,{key:"DeleteConfiguration",onBackup:a[1]||(a[1]=m=>C.value=!0),onClose:a[2]||(a[2]=m=>A.value=!1)})):S("",!0),C.value?(c(),N(nt,{key:2,onClose:a[3]||(a[3]=m=>C.value=!1),onRefreshPeersList:a[4]||(a[4]=m=>_("refresh"))})):S("",!0)]),_:1}),e("div",zt,[e("div",It,[e("div",Tt,[e("div",Kt,[e("h4",Ft,[o(i,{t:"Configuration Settings"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:a[5]||(a[5]=m=>L.$emit("close"))})]),e("div",At,[e("div",Ut,[r.value?S("",!0):(c(),v("div",Jt,[e("small",jt,[o(i,{t:"Name"})]),e("small",null,D(u.Name),1),e("button",{onClick:a[6]||(a[6]=m=>r.value=!0),class:"btn btn-sm bg-danger-subtle border-danger-subtle text-danger-emphasis rounded-3 ms-auto"},[o(i,{t:"Update Name"})])])),r.value?(c(),N(gt,{key:1,onClose:a[7]||(a[7]=m=>r.value=!1),"configuration-name":u.Name},null,8,["configuration-name"])):(c(),v(H,{key:2},[a[24]||(a[24]=e("hr",null,null,-1)),e("div",Yt,[e("small",Et,[o(i,{t:"Public Key"})]),e("small",Gt,D(u.PublicKey),1)]),a[25]||(a[25]=e("hr",null,null,-1)),e("div",null,[e("div",qt,[e("label",Zt,[e("small",Qt,[o(i,{t:"Private Key"})])]),e("div",Xt,[B(e("input",{class:"form-check-input",type:"checkbox",role:"switch",id:"editPrivateKeySwitch","onUpdate:modelValue":a[8]||(a[8]=m=>h.value=m)},null,512),[[oe,h.value]]),a[18]||(a[18]=e("label",{class:"form-check-label",for:"editPrivateKeySwitch"},[e("small",null,"Edit")],-1))])]),B(e("input",{type:"text",class:$(["form-control form-control-sm rounded-3",{"is-invalid":!b.PrivateKey}]),disabled:f.value||!h.value,onKeyup:a[9]||(a[9]=m=>y()),"onUpdate:modelValue":a[10]||(a[10]=m=>u.PrivateKey=m),id:"configuration_private_key"},null,42,es),[[P,u.PrivateKey]])]),e("div",null,[e("label",ts,[e("small",ss,[o(i,{t:"IP Address/CIDR"})])]),B(e("input",{type:"text",class:"form-control form-control-sm rounded-3",disabled:f.value,"onUpdate:modelValue":a[11]||(a[11]=m=>u.Address=m),id:"configuration_ipaddress_cidr"},null,8,ns),[[P,u.Address]])]),e("div",null,[e("label",as,[e("small",os,[o(i,{t:"Listen Port"})])]),B(e("input",{type:"number",class:"form-control form-control-sm rounded-3",disabled:f.value,"onUpdate:modelValue":a[12]||(a[12]=m=>u.ListenPort=m),id:"configuration_listen_port"},null,8,is),[[P,u.ListenPort]])]),e("div",ls,[e("div",ds,[e("h2",rs,[e("button",us,[e("small",cs,[o(i,{t:"Optional Settings"})])])]),e("div",gs,[e("div",fs,[(c(),v(H,null,K(["Table","PreUp","PreDown","PostUp","PostDown"],m=>e("div",null,[e("label",{for:"configuration_"+m,class:"form-label"},[e("small",bs,[o(i,{t:m},null,8,["t"])])],8,ms),B(e("input",{type:"text",class:"form-control form-control-sm rounded-3",disabled:f.value,"onUpdate:modelValue":U=>u[m]=U,id:"configuration_"+m},null,8,vs),[[P,u[m]]])])),64)),l.configurationInfo.Protocol==="awg"?(c(),v(H,{key:0},K(["Jc","Jmin","Jmax","S1","S2","H1","H2","H3","H4"],m=>e("div",null,[e("label",{for:"configuration_"+m,class:"form-label"},[e("small",hs,[o(i,{t:m},null,8,["t"])])],8,ps),B(e("input",{type:"number",class:"form-control form-control-sm rounded-3",disabled:f.value,"onUpdate:modelValue":U=>u[m]=U,id:"configuration_"+m},null,8,ys),[[P,u[m]]])])),64)):S("",!0)])])])]),e("div",xs,[e("button",{class:"btn bg-secondary-subtle border-secondary-subtle text-secondary-emphasis rounded-3 shadow ms-auto",onClick:a[13]||(a[13]=m=>w()),disabled:!g.value||f.value},[a[19]||(a[19]=e("i",{class:"bi bi-arrow-clockwise me-2"},null,-1)),o(i,{t:"Reset"})],8,ws),e("button",{class:"btn bg-primary-subtle border-primary-subtle text-primary-emphasis rounded-3 shadow",disabled:!g.value||f.value,onClick:a[14]||(a[14]=m=>k())},[a[20]||(a[20]=e("i",{class:"bi bi-save-fill me-2"},null,-1)),o(i,{t:"Save"})],8,_s)]),a[26]||(a[26]=e("hr",null,null,-1)),e("h5",Cs,[o(i,{t:"Danger Zone"})]),e("div",ks,[e("button",{onClick:a[15]||(a[15]=m=>C.value=!0),class:"btn bg-warning-subtle border-warning-subtle text-warning-emphasis rounded-3 text-start d-flex"},[a[21]||(a[21]=e("i",{class:"bi bi-copy me-auto"},null,-1)),o(i,{t:"Backup & Restore"})]),e("button",{onClick:a[16]||(a[16]=m=>n.value=!0),class:"btn bg-warning-subtle border-warning-subtle text-warning-emphasis rounded-3 d-flex"},[a[22]||(a[22]=e("i",{class:"bi bi-pen me-auto"},null,-1)),o(i,{t:"Edit Raw Configuration File"})]),e("button",{onClick:a[17]||(a[17]=m=>A.value=!0),class:"btn bg-danger-subtle border-danger-subtle text-danger-emphasis rounded-3 d-flex mt-4"},[a[23]||(a[23]=e("i",{class:"bi bi-trash-fill me-auto"},null,-1)),o(i,{t:"Delete Configuration"})])])],64))])])])])])])],512))}};export{Bs as default};