import{L as g}from"./localeText-C3GiyveB.js";import{q as S,c as l,a as n,b as e,t as v,F as y,i as $,u as _,n as f,d,r as k,J as G,m as E,y as I,j as N,e as w,_ as D,w as P,T as L,I as A}from"./index-BQYwwrw6.js";import{D as C}from"./DashboardClientAssignmentStore-C6unIiM-.js";const B={class:"d-flex flex-column gap-2"},M={class:"mb-0"},T={key:0,class:"d-flex flex-column gap-2"},V={class:"bg-body-secondary rounded-3 text-start p-2 d-flex"},j={class:"d-flex flex-column"},U={class:"mb-0"},F={class:"text-muted"},O=["onClick"],q={key:0,class:"spinner-border spinner-border-sm"},z={key:1,class:"bi bi-plus-circle-fill"},J={key:1},H={class:"text-muted"},K={__name:"searchClientsGroup",props:["group","groupName","searchString"],emits:["count","assign"],setup(r,{emit:p}){const i=r,t=p,a=C(),m=S(()=>{let s=i.group.filter(u=>!a.assignments.map(o=>o.Client.ClientID).includes(u.ClientID));if(i.searchString){let u=s.filter(o=>o.Name&&o.Name.includes(i.searchString)||o.Email&&o.Email.includes(i.searchString));return t("count",u.length),u}return t("count",s.length),s});return(s,u)=>(n(),l("div",B,[e("h6",M,[e("small",null,v(r.groupName),1)]),m.value.length>0?(n(),l("div",T,[(n(!0),l(y,null,$(m.value,o=>(n(),l("div",V,[e("div",j,[e("small",U,v(o.Email),1),e("small",F,v(o.Name?o.Name:"No Name"),1)]),e("button",{onClick:c=>t("assign",o.ClientID),class:f([{disabled:_(a).assigning},"btn bg-success-subtle text-success-emphasis ms-auto"])},[_(a).assigning===o.ClientID?(n(),l("span",q)):(n(),l("i",z))],10,O)]))),256))])):(n(),l("div",J,[e("small",H,[d(g,{t:"No result"})])]))]))}},Q={class:"p-3 bg-body-tertiary rounded-3 position-relative"},R={for:"SearchClient",class:"form-label"},W={class:"text-muted"},X={class:"w-100 rounded-3 d-flex flex-column gap-2"},Y={class:"mt-1"},Z=["onClick"],ee={class:"p-3 border rounded-3 d-flex flex-column gap-2 overflow-y-scroll",style:{height:"400px"}},se={__name:"searchClients",props:["clients","newAssignClients","assignments"],emits:["assign"],setup(r,{emit:p}){const i=C(),t=k(""),a=k(""),m=S(()=>t.value?{[t.value]:i.clients[t.value]}:i.clients),s=G({});Object.keys(i.clients).forEach(o=>s[o]=i.clients[o].length);const u=p;return(o,c)=>(n(),l("div",Q,[e("h6",null,[d(g,{t:"Assign to Clients"})]),e("label",R,[e("small",W,[d(g,{t:"Enter Email or Name to Search"})])]),E(e("input",{class:"form-control rounded-3 mb-2",id:"SearchClient","onUpdate:modelValue":c[0]||(c[0]=b=>a.value=b),type:"email"},null,512),[[I,a.value]]),e("div",X,[e("div",null,[c[3]||(c[3]=e("small",{class:"text-muted"},"Groups",-1)),e("div",Y,[e("button",{class:f([{active:!t.value},"btn bg-primary-subtle text-primary-emphasis btn-sm me-2 rounded-3"]),onClick:c[1]||(c[1]=b=>t.value="")},[d(g,{t:"All"})],2),(n(!0),l(y,null,$(_(i).clients,(b,h)=>(n(),l("button",{onClick:x=>t.value=h,class:f([{active:t.value===h},"btn bg-primary-subtle text-primary-emphasis btn-sm me-2 rounded-3"])},[d(g,{t:h},null,8,["t"]),e("span",{class:f(["ms-1 badge",[s[h]>0?"bg-primary":"bg-secondary"]])},v(s[h]),3)],10,Z))),256))])]),e("div",ee,[(n(!0),l(y,null,$(m.value,(b,h)=>(n(),N(K,{onAssign:c[2]||(c[2]=x=>u("assign",x)),onCount:x=>s[h]=x,searchString:a.value,group:b,groupName:h},null,8,["onCount","searchString","group","groupName"]))),256))])])]))}},te={class:"bg-body-secondary rounded-3 text-start p-2 mb-2 assignment"},ne={key:0,class:"d-flex"},ie={class:"d-flex flex-column"},le={class:"text-muted"},ae={key:1,class:"d-flex gap-2"},oe={class:"d-flex flex-column"},re={class:"text-muted"},ce={key:0,class:"spinner-border spinner-border-sm"},de={key:1,class:"bi bi-check-lg"},ue={__name:"assignment",props:["assignment"],emits:["unassign"],setup(r,{emit:p}){const i=p,t=k(!1),a=C();return(m,s)=>(n(),l("div",te,[t.value?(n(),l("div",ae,[e("div",oe,[e("small",null,[d(g,{t:"Are you sure to delete assignment for"})]),e("small",re,[d(g,{t:r.assignment.Client.Email+" in group "+(r.assignment.Client.ClientGroup?r.assignment.Client.ClientGroup:"Local")+"?"},null,8,["t"])])]),e("button",{onClick:s[1]||(s[1]=u=>i("unassign")),"aria-label":"Delete Assignment",class:f([{disabled:_(a).unassigning},"btn bg-danger-subtle text-danger-emphasis ms-auto"])},[_(a).unassigning?(n(),l("span",ce)):(n(),l("i",de))],2),e("button",{class:f([{disabled:_(a).unassigning},"btn bg-secondary-subtle text-secondary-emphasis"]),onClick:s[2]||(s[2]=u=>t.value=!t.value),"aria-label":"Cancel Delete Assignment"},[...s[4]||(s[4]=[e("i",{class:"bi bi-x-lg"},null,-1)])],2)])):(n(),l("div",ne,[e("div",ie,[e("small",null,v(r.assignment.Client.Email),1),e("small",le,v(r.assignment.Client.Name?r.assignment.Client.Name+" | ":"")+v(r.assignment.Client.ClientGroup?r.assignment.Client.ClientGroup:"Local"),1)]),t.value?w("",!0):(n(),l("button",{key:0,onClick:s[0]||(s[0]=u=>t.value=!t.value),class:f([{disabled:_(a).unassigning},"btn bg-danger-subtle text-danger-emphasis ms-auto"]),"aria-label":"Delete Assignment"},[...s[3]||(s[3]=[e("i",{class:"bi bi-trash-fill"},null,-1)])],2))]))]))}},me={class:"p-3 bg-body-tertiary rounded-3 d-flex flex-column gap-2"},ge={class:"mb-0"},_e={key:0,class:"text-center"},pe={class:"text-muted"},be={__name:"assignedClients",props:["configurationName","peer"],emits:["unassign"],setup(r,{emit:p}){const i=C();return(t,a)=>(n(),l("div",me,[e("h6",ge,[d(g,{t:"Assigned Clients"})]),d(L,{name:"list",tag:"div",class:"position-relative"},{default:P(()=>[(n(!0),l(y,null,$(_(i).assignments,m=>(n(),N(ue,{assignment:m,key:m.AssignmentID,onUnassign:s=>_(i).unassignClient(r.configurationName,r.peer,m.AssignmentID)},null,8,["assignment","onUnassign"]))),128))]),_:1}),_(i).assignments.length===0?(n(),l("div",_e,[e("small",pe,[d(g,{t:"No client assigned to this peer yet"})])])):w("",!0)]))}},he=D(be,[["__scopeId","data-v-99c0844e"]]),ve={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},fe={class:"container d-flex h-100 w-100"},Ce={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"700px"}},xe={class:"card rounded-3 shadow flex-grow-1"},ye={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4"},$e={class:"mb-0"},ke={class:"card-body px-4 pb-4 d-flex gap-2 flex-column"},Ae={__name:"peerAssignModal",props:{selectedPeer:Object},emits:["close"],async setup(r,{emit:p}){let i,t;const a=r,m=p,s=C();s.clients.length>0?s.getClients():([i,t]=A(()=>s.getClients()),await i,t()),[i,t]=A(()=>s.getAssignedClients(a.selectedPeer.configuration.Name,a.selectedPeer.id)),await i,t();const u=async o=>{await s.assignClient(a.selectedPeer.configuration.Name,a.selectedPeer.id,o)};return(o,c)=>(n(),l("div",ve,[e("div",fe,[e("div",Ce,[e("div",xe,[e("div",ye,[e("h4",$e,[d(g,{t:"Assign Peer to Client"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:c[0]||(c[0]=b=>m("close"))})]),e("div",ke,[d(he,{"configuration-name":a.selectedPeer.configuration.Name,peer:a.selectedPeer.id},null,8,["configuration-name","peer"]),d(se,{onAssign:c[1]||(c[1]=b=>u(b))})])])])])]))}},De=D(Ae,[["__scopeId","data-v-b52659b4"]]);export{De as default};