import{L as a}from"./localeText-C3GiyveB.js";import{B as D,r as p,I as N,G as A,D as F,c as o,a as t,e as f,b as e,d as l,m as w,f as V,y as I,C as O,v as U,F as C,i as L,n as _,u as J,A as K,t as h,g as R,z as T,q as E,j as $,x as Y,_ as j,o as Z,w as P,S as M}from"./index-BQYwwrw6.js";const Q={class:"p-3"},X={key:0},ee={for:"PayloadURL",class:"form-label fw-bold text-muted"},se=["disabled"],te={for:"ContentType",class:"form-label fw-bold text-muted"},le=["disabled"],oe={class:"form-label fw-bold text-muted"},ne={class:"form-check form-switch mb-2"},ae=["disabled"],ie={class:"form-check-label",for:"VerifySSL"},de={key:0,class:"alert-danger alert rounded-3"},ue={class:"form-label fw-bold text-muted"},re={class:"card rounded-3"},ce={class:"card-body d-flex gap-2 flex-column"},be={class:"d-flex gap-2"},ve={class:"flex-grow-1"},me=["disabled","onUpdate:modelValue"],fe={class:"flex-grow-1"},pe=["disabled","onUpdate:modelValue"],ke=["onClick"],ye={class:"form-label fw-bold text-muted"},he={class:"form-check form-check-inline"},_e=["disabled","id","value"],xe=["for"],ge={class:"form-label fw-bold text-muted"},Se={class:"form-check form-switch mb-2"},we=["disabled"],$e={class:"form-check-label",for:"IsActive"},He={key:0,class:"alert alert-danger rounded-3"},We={class:"d-flex gap-2"},Ce={class:"d-flex align-items-center"},Le={class:"mb-0"},B=D({__name:"addWebHook",props:["webHook"],emits:["refresh","delete"],async setup(i,{emit:m}){let y,r;const s=p({ContentType:String,Headers:Object,IsActive:Boolean,Notes:String,PayloadURL:String,SubscribedActions:Array,VerifySSL:Boolean,WebHookID:String}),u=i;u.webHook?s.value={...u.webHook}:([y,r]=N(()=>R("/api/webHooks/createWebHook",{},g=>{s.value=g.data})),await y,r());const k=p({peer_created:A("Peer Created"),peer_deleted:A("Peer Deleted"),peer_updated:A("Peer Updated")}),x=m,d=F(),c=p(!1),S=p(""),v=p(!1),G=async g=>{g&&g.preventDefault(),v.value=!0,await T("/api/webHooks/updateWebHook",s.value,n=>{n.status?(x("refresh"),d.newMessage("Server","Webhook saved","success")):(c.value=!0,S.value=n.message,d.newMessage("Server","Webhook failed to save","danger")),v.value=!1})},z=async()=>{v.value=!0,await T("/api/webHooks/deleteWebHook",s.value,g=>{g.status?(x("delete"),d.newMessage("Server","Webhook deleted","success")):(c.value=!0,S.value=g.message,d.newMessage("Server","Webhook failed to delete","danger")),v.value=!1})};return(g,n)=>(t(),o("div",Q,[i.webHook?f("",!0):(t(),o("div",X,[e("h6",null,[l(a,{t:"Add Webhook"})]),e("p",null,[l(a,{t:"WGDashboard will sent a POST Request to the URL below with details of any subscribed events."})])])),e("form",{onSubmit:n[7]||(n[7]=b=>G(b)),class:"d-flex flex-column gap-2"},[e("div",null,[e("label",ee,[e("small",null,[l(a,{t:"Payload URL"}),n[8]||(n[8]=V("* ",-1))])]),w(e("input",{required:"",disabled:v.value,id:"PayloadURL","onUpdate:modelValue":n[0]||(n[0]=b=>s.value.PayloadURL=b),class:"form-control rounded-3",type:"url"},null,8,se),[[I,s.value.PayloadURL]])]),e("div",null,[e("label",te,[e("small",null,[l(a,{t:"Content Type"}),n[9]||(n[9]=V("* ",-1))])]),w(e("select",{disabled:v.value,id:"ContentType","onUpdate:modelValue":n[1]||(n[1]=b=>s.value.ContentType=b),class:"form-select rounded-3",required:""},[...n[10]||(n[10]=[e("option",{value:"application/json"}," application/json ",-1),e("option",{value:"application/x-www-form-urlencoded"}," application/x-www-form-urlencoded ",-1)])],8,le),[[O,s.value.ContentType]])]),e("div",null,[e("label",oe,[e("small",null,[l(a,{t:"Verify SSL"})])]),e("div",null,[e("div",ne,[w(e("input",{disabled:v.value,"onUpdate:modelValue":n[2]||(n[2]=b=>s.value.VerifySSL=b),class:"form-check-input",type:"checkbox",role:"switch",id:"VerifySSL"},null,8,ae),[[U,s.value.VerifySSL]]),e("label",ie,[l(a,{t:s.value.VerifySSL?"Enabled":"Disabled"},null,8,["t"])])]),s.value.VerifySSL?f("",!0):(t(),o("div",de,[n[11]||(n[11]=e("i",{class:"bi bi-exclamation-triangle-fill me-2"},null,-1)),l(a,{t:"We highly suggest to enable SSL verification"})]))])]),e("div",null,[e("label",ue,[e("small",null,[l(a,{t:"Custom Headers"})])]),e("div",re,[e("div",ce,[(t(!0),o(C,null,L(s.value.Headers,(b,H)=>(t(),o("div",be,[e("div",ve,[w(e("input",{class:"form-control rounded-3 form-control-sm",disabled:v.value,"onUpdate:modelValue":W=>b.key=W,placeholder:"Key"},null,8,me),[[I,b.key]])]),e("div",fe,[w(e("input",{class:"form-control rounded-3 form-control-sm",disabled:v.value,"onUpdate:modelValue":W=>b.value=W,placeholder:"Value"},null,8,pe),[[I,b.value]])]),e("button",{class:_([{disabled:v.value},"btn btn-sm bg-danger-subtle text-danger-emphasis border-danger-subtle rounded-3"]),type:"button",onClick:W=>delete s.value.Headers[H]},[...n[12]||(n[12]=[e("i",{class:"bi bi-trash-fill"},null,-1)])],10,ke)]))),256)),e("button",{type:"button",class:_([{disabled:v.value},"btn btn-sm bg-primary-subtle text-primary-emphasis border-primary-subtle rounded-3"]),onClick:n[3]||(n[3]=b=>s.value.Headers[J(K)().toString()]={key:"",value:""})},[n[13]||(n[13]=e("i",{class:"bi bi-plus-lg me-2"},null,-1)),l(a,{t:"Header"})],2)])])]),n[15]||(n[15]=e("hr",null,null,-1)),e("div",null,[e("label",ye,[e("small",null,[l(a,{t:"Subscribed Actions"})])]),e("div",null,[(t(!0),o(C,null,L(k.value,(b,H)=>(t(),o("div",he,[w(e("input",{class:"form-check-input",disabled:s.value.SubscribedActions.length===1&&s.value.SubscribedActions.includes(H)||v.value,type:"checkbox",id:H,value:H,"onUpdate:modelValue":n[4]||(n[4]=W=>s.value.SubscribedActions=W)},null,8,_e),[[U,s.value.SubscribedActions]]),e("label",{class:"form-check-label",for:H},h(b),9,xe)]))),256))])]),n[16]||(n[16]=e("hr",null,null,-1)),e("div",null,[e("label",ge,[e("small",null,[l(a,{t:"Enable Webhook"})])]),e("div",null,[e("div",Se,[w(e("input",{disabled:v.value,"onUpdate:modelValue":n[5]||(n[5]=b=>s.value.IsActive=b),class:"form-check-input",type:"checkbox",role:"switch",id:"IsActive"},null,8,we),[[U,s.value.IsActive]]),e("label",$e,[l(a,{t:s.value.IsActive?"Yes":"No"},null,8,["t"])])])])]),c.value?(t(),o("div",He,h(S.value),1)):f("",!0),e("div",We,[e("button",{type:"submit",class:_([{disabled:v.value},"ms-auto btn bg-success-subtle text-success-emphasis border-success-subtle rounded-3"])},[l(a,{t:"Save"})],2)]),i.webHook?(t(),o(C,{key:1},[n[14]||(n[14]=e("hr",null,null,-1)),e("div",Ce,[e("h6",Le,[l(a,{t:"Danger Zone"})]),e("button",{onClick:n[6]||(n[6]=b=>z()),type:"button",class:_([{disabled:v.value},"btn bg-danger-subtle text-danger-emphasis border-danger-subtle rounded-3 ms-auto"])},[l(a,{t:"Delete"})],2)])],64)):f("",!0)],32)]))}}),De={class:"d-flex flex-column gap-3"},Ve={class:"text-muted"},Ae={key:0},Ie={key:1},Ue={key:2},Pe={key:3},Re={class:"d-flex gap-4 align-items-center"},Te={class:"text-muted"},Me={key:0},Be={key:1},Ne={class:"text-muted"},Ee={class:"table-responsive"},je={class:"table"},qe={scope:"col"},Ge={scope:"col"},ze={scope:"col"},Fe={style:{"white-space":"nowrap"}},Oe={key:0},Je={key:1},Ke={key:2},Ye={style:{"white-space":"nowrap","overflow-x":"scroll"}},Ze={class:"bg-body-tertiary p-3 rounded-3"},Qe={class:"mb-0"},q=D({__name:"webHookSession",props:["session"],setup(i){const m=i,y=E(()=>JSON.stringify(m.session.Data,null,4));return(r,s)=>(t(),o("div",De,[e("div",null,[e("small",Ve,[l(a,{t:"Status"})]),e("h3",{class:_({"text-success":i.session.Status===0,"text-danger":i.session.Status===1,"text-warning":i.session.Status===2})},[i.session.Status===0?(t(),o("span",Ae,[s[0]||(s[0]=e("i",{class:"bi bi-check-circle-fill me-2"},null,-1)),l(a,{t:"Success"})])):f("",!0),i.session.Status===2?(t(),o("span",Ie,[s[1]||(s[1]=e("i",{class:"bi bi-trash3-fill me-2"},null,-1)),l(a,{t:"Timeout"})])):i.session.Status===1?(t(),o("span",Ue,[s[2]||(s[2]=e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)),l(a,{t:"Failed"})])):i.session.Status===-1?(t(),o("span",Pe,[s[3]||(s[3]=e("i",{class:"spinner-border me-2"},null,-1)),l(a,{t:"Requesting..."})])):f("",!0)],2),e("div",Re,[e("div",null,[e("small",Te,[l(a,{t:"Started At"})]),e("h6",null,h(i.session.StartDate),1)]),i.session.EndDate?(t(),o("div",Me,[...s[4]||(s[4]=[e("i",{class:"bi bi-arrow-right"},null,-1)])])):f("",!0),i.session.EndDate?(t(),o("div",Be,[e("small",Ne,[l(a,{t:"Ended At"})]),e("h6",null,h(i.session.EndDate),1)])):f("",!0)])]),e("div",null,[e("h6",null,[l(a,{t:"Logs"})]),e("div",Ee,[e("table",je,[e("thead",null,[e("tr",null,[e("th",qe,[l(a,{t:"Datetime"})]),e("th",Ge,[l(a,{t:"Status"})]),e("th",ze,[l(a,{t:"Message"})])])]),e("tbody",null,[(t(!0),o(C,null,L([...i.session.Logs.Logs].reverse(),u=>(t(),o("tr",null,[e("td",Fe,h(u.LogTime),1),e("td",{style:{"white-space":"nowrap"},class:_({"text-success":u.Status===0,"text-danger":u.Status===1})},[u.Status===0?(t(),o("span",Oe,[...s[5]||(s[5]=[e("i",{class:"bi bi-check-circle-fill me-2"},null,-1)])])):u.Status===1?(t(),o("span",Je,[...s[6]||(s[6]=[e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)])])):u.Status===-1?(t(),o("span",Ke,[...s[7]||(s[7]=[e("i",{class:"bi bi-circle me-2"},null,-1)])])):f("",!0)],2),e("td",Ye,h(u.Message),1)]))),256))])])])]),e("div",null,[e("h6",null,[l(a,{t:"Data"})]),e("div",Ze,[e("pre",Qe,[e("code",null,h(y.value),1)])])])]))}}),Xe={class:"card"},es={class:"card-body"},ss={key:0},ts={key:1},ls={key:2},os={key:3},ns=D({__name:"previousWebHookSession",props:["session"],setup(i){const m=p(!0);return(y,r)=>(t(),o("div",Xe,[e("div",es,[e("p",{class:"d-flex mb-0",role:"button",onClick:r[0]||(r[0]=s=>m.value=!m.value)},[e("span",{class:_({"text-success":i.session.Status===0,"text-danger":i.session.Status===1,"text-warning":i.session.Status===2})},[i.session.Status===0?(t(),o("span",ss,[...r[1]||(r[1]=[e("i",{class:"bi bi-check-circle-fill me-2"},null,-1)])])):i.session.Status===2?(t(),o("span",ts,[...r[2]||(r[2]=[e("i",{class:"bi bi-trash3-fill me-2"},null,-1)])])):i.session.Status===1?(t(),o("span",ls,[...r[3]||(r[3]=[e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)])])):i.session.Status===-1?(t(),o("span",os,[...r[4]||(r[4]=[e("i",{class:"spinner-border spinner-border-sm me-2"},null,-1)])])):f("",!0)],2),V(" "+h(i.session.StartDate)+" ",1),r[5]||(r[5]=e("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),m.value?f("",!0):(t(),$(q,{key:0,session:i.session,class:"mt-2"},null,8,["session"]))])]))}}),as={key:0},is={class:"p-3"},ds={class:"mb-3"},us={key:0,class:"border-top p-3"},rs={class:"d-flex flex-column gap-2"},cs={key:1,class:"p-3"},bs=D({__name:"webHookSessions",props:["webHook"],async setup(i){let m,y;const r=i,s=p([]),u=p(void 0),k=async()=>{await R("/api/webHooks/getWebHookSessions",{WebHookID:r.webHook.WebHookID},d=>{s.value=d.data})};[m,y]=N(()=>k()),await m,y();const x=E(()=>{if(s.value)return s.value[0]});return u.value=setInterval(()=>{k()},5e3),Y(()=>{clearInterval(u.value)}),(d,c)=>x.value?(t(),o("div",as,[e("div",is,[e("h6",ds,[l(a,{t:"Latest Session"})]),(t(),$(q,{session:x.value,key:x.value.WebHookID},null,8,["session"]))]),s.value.length>1?(t(),o("div",us,[e("h6",null,[l(a,{t:"Previous Sessions"})]),e("div",rs,[(t(!0),o(C,null,L(s.value.slice(1),S=>(t(),$(ns,{session:S,key:S.WebHookSessionID},null,8,["session"]))),128))])])):f("",!0)])):(t(),o("div",cs,[...c[0]||(c[0]=[e("div",{class:"bg-body-tertiary p-3 w-100 d-flex rounded-3"},[e("h6",{class:"mb-0 m-auto"},"No Sessions")],-1)])]))}}),vs=j(bs,[["__scopeId","data-v-7b6e949e"]]),ms={class:"text-body w-100 h-100 pb-2 position-relative"},fs={class:"w-100 h-100 card rounded-3"},ps={class:"border-bottom z-0"},ks={class:"d-flex text-body align-items-center sticky-top p-3 bg-body-tertiary rounded-top-3",style:{"border-top-right-radius":"0 !important"}},ys={class:"my-2"},hs={key:0,class:"row h-100 g-0"},_s={class:"col-sm-4 border-end d-flex flex-column clientListContainer"},xs={class:"d-flex flex-column overflow-y-scroll",style:{flex:"1 0 0"}},gs={class:"list-group d-flex flex-column d-flex h-100"},Ss=["onClick"],ws={class:"mb-0 fw-bold text-body url"},$s={class:"url mb-0"},Hs={key:1,class:"flex-grow-1 d-flex text-muted"},Ws={key:0,class:"col-sm-8 clientViewerContainer d-flex flex-column"},Cs={class:"overflow-scroll",style:{flex:"1 0 0"}},Ls={class:"navbar navbar-expand-lg bg-body-tertiary sticky-top"},Ds={class:"container-fluid"},Vs={class:"navbar-nav gap-2"},As={class:"nav-item"},Is={class:"nav-item"},Us={class:"p-3"},Ps=D({__name:"dashboardWebHooks",setup(i){const m=p([]),y=p(!1);Z(async()=>{await r(),y.value=!0});const r=async()=>{await R("/api/webHooks/getWebHooks",{},x=>{m.value=x.data})},s=p(!1),u=p(void 0),k=p("edit");return(x,d)=>(t(),o("div",ms,[e("div",fs,[e("div",ps,[e("div",ks,[e("h6",ys,[d[7]||(d[7]=e("i",{class:"bi bi-plug-fill me-2"},null,-1)),l(a,{t:"Webhooks"})]),s.value?(t(),o("button",{key:1,class:"btn btn-sm bg-secondary-subtle text-secondary-emphasis border-1 border-secondary-subtle rounded-3 shadow-sm ms-auto",onClick:d[1]||(d[1]=c=>s.value=!1)},[d[9]||(d[9]=e("i",{class:"bi bi-chevron-left me-2"},null,-1)),l(a,{t:"Back"})])):(t(),o("button",{key:0,class:"btn btn-sm bg-primary-subtle text-primary-emphasis border-1 border-primary-subtle rounded-3 shadow-sm ms-auto",onClick:d[0]||(d[0]=c=>{s.value=!0,u.value=void 0})},[d[8]||(d[8]=e("i",{class:"bi bi-plus-circle-fill me-2"},null,-1)),l(a,{t:"Webhook"})]))])]),s.value?(t(),$(M,{key:1},{default:P(()=>[l(B,{onRefresh:d[6]||(d[6]=c=>{u.value=void 0,s.value=!1,r()})})]),_:1})):(t(),o("div",hs,[e("div",_s,[e("div",xs,[e("div",gs,[m.value.length>0?(t(!0),o(C,{key:0},L(m.value,c=>(t(),o("a",{role:"button",onClick:S=>u.value=c,class:_([{active:u.value?.WebHookID===c.WebHookID},"list-group-item list-group-item-action"]),"aria-current":"true"},[e("p",ws,h(c.PayloadURL),1),e("p",$s,[l(a,{t:"Subscribed Actions"}),V(": "+h(c.SubscribedActions.join(", ")),1)])],10,Ss))),256)):(t(),o("div",Hs,[l(a,{t:"No Webhooks",class:"m-auto"})]))])])]),u.value?(t(),o("div",Ws,[e("div",Cs,[e("nav",Ls,[e("div",Ds,[e("div",null,[e("ul",Vs,[e("li",As,[e("a",{onClick:d[2]||(d[2]=c=>k.value="edit"),class:_([{active:k.value==="edit"},"nav-link rounded-3"]),role:"button"},[l(a,{t:"Edit"})],2)]),e("li",Is,[e("a",{class:_([{active:k.value==="sessions"},"nav-link rounded-3"]),onClick:d[3]||(d[3]=c=>k.value="sessions"),role:"button"},[l(a,{t:"Sessions"})],2)])])])])]),k.value==="edit"?(t(),$(B,{key:u.value,onDelete:d[4]||(d[4]=c=>{r(),u.value=void 0}),webHook:u.value,onRefresh:d[5]||(d[5]=c=>r())},null,8,["webHook"])):k.value==="sessions"?(t(),$(M,{key:1},{fallback:P(()=>[e("div",Us,[l(a,{t:"Loading..."})])]),default:P(()=>[(t(),$(vs,{key:u.value,webHook:u.value},null,8,["webHook"]))]),_:1})):f("",!0)])])):f("",!0)]))])]))}}),Ms=j(Ps,[["__scopeId","data-v-e0f0e683"]]);export{Ms as default};