1import{b as F}from"./query-vendor-BMwEzNLN.js";import{B as V}from"./index-B2Yag7Gu.js";import{_ as q}from"./Pagination-bRbpfmNK.js";import{a7 as O}from"./index-COv0RcNg.js";import{R as U,bP as R,bd as j,bO as K,bf as M,bQ as Q}from"./ui-vendor-B7SopUXd.js";import{E as G,a5 as H,w as J,l as a,m as l,q as e,u as o,B as _,K as n,J as d,y as i,H as c,p as w,F as W,v as X,r as m,a6 as Y,D as $,z as Z}from"./vue-vendor-c0W5WEtO.js";import"./date-vendor-HBGOQ70J.js";import"./twilio-DAuME2Y9.js";import"./charts-BVdrK9wF.js";import"./socket-Kk_l3rvZ.js";import"./rewardful-2QOTUYRt.js";const tt={key:0,class:"flex items-center justify-center rounded-lg border border-gray-200 bg-white py-12 dark:border-gray-700 dark:bg-gray-800"},et={key:1,class:"rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-900/50 dark:bg-red-900/20"},st={class:"text-red-700 dark:text-red-400"},rt={key:2,class:"overflow-hidden rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800"},at={class:"overflow-x-auto"},ot={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},nt={class:"bg-gray-50 dark:bg-gray-800"},it={class:"flex items-center gap-2"},lt={class:"flex items-center gap-2"},dt={class:"flex items-center gap-2"},gt={class:"flex items-center gap-2"},pt={class:"flex items-center gap-2"},xt={class:"flex items-center gap-2"},yt={class:"divide-y divide-gray-200 bg-white dark:divide-gray-700 dark:bg-gray-800"},ut={key:0},ct={class:"px-4 py-3"},mt={class:"flex items-center gap-3"},vt={class:"flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-gray-100 font-semibold text-gray-600 dark:bg-gray-700 dark:text-gray-300"},kt={class:"text-sm font-bold text-gray-900 dark:text-white"},ft={class:"text-xs text-gray-500 dark:text-gray-400"},bt={class:"px-4 py-3 text-xs text-gray-600 dark:text-gray-300"},_t={class:"px-4 py-3"},wt={class:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300"},ht={class:"px-4 py-3 text-sm text-gray-600 dark:text-gray-300"},Ct={class:"px-4 py-3 text-xs text-gray-600 dark:text-gray-300"},zt={class:"px-4 py-3"},Ut={class:"px-4 py-3 text-right"},$t={class:"relative inline-block text-left"},Lt=["onClick"],St={key:0,class:"ring-opacity-5 absolute right-0 z-10 mt-2 w-36 origin-top-right rounded-lg bg-white shadow-lg ring-1 ring-black dark:bg-gray-700"},At={class:"py-1"},Dt=["onClick","disabled"],Kt={__name:"List",setup(Nt){const g=m(1),v=m(10),x=m("created_at"),p=m(-1),k=m(null),f=m(!1),h=r=>{r.target.closest(".relative")||(k.value=null)};G(()=>{document.addEventListener("click",h)}),H(()=>{document.removeEventListener("click",h)});const{isPending:L,isError:S,error:A,data:b}=F({queryKey:["agency","users",g,v,x,p],queryFn:()=>O({page:g.value,pageSize:v.value,sort:x.value,order:p.value})}),y=r=>{x.value===r?p.value=p.value===1?-1:1:(x.value=r,p.value=1)},u=r=>x.value===r&&p.value===1?R:x.value===r&&p.value===-1?j:K,D=r=>{k.value=k.value===r?null:r};J(v,()=>{g.value=1});const N=async r=>{if(!(!r?._id||f.value)){f.value=!0;try{await V(r)}catch{}finally{f.value=!1,k.value=null}}},B=r=>r?r[0].toUpperCase():"?",E=r=>({web_owner:"Owner",member:"Member",admin:"Admin",agency:"Agency"})[r]||r,I=r=>({web_owner:"bg-purple-600",member:"bg-blue-600",admin:"bg-red-600",agency:"bg-green-600"})[r]||"bg-gray-600",C=r=>r===1||r==="active"?"Active":"Inactive",z=r=>r?new Date(r).toLocaleString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!0}):"-";return(r,t)=>{const P=Y("router-link");return a(),l("div",null,[t[21]||(t[21]=e("div",{class:"mb-6"},[e("h1",{class:"text-2xl font-bold text-gray-900 dark:text-white"},"Users")],-1)),o(L)?(a(),l("div",tt,[_(o(U),{size:32,class:"animate-spin text-gray-400 dark:text-gray-600"})])):o(S)?(a(),l("div",et,[e("p",st,n(o(A)?.message||"Failed to load users"),1)])):(a(),l("div",rt,[e("div",at,[e("table",ot,[e("thead",nt,[e("tr",null,[e("th",{onClick:t[0]||(t[0]=s=>y("first_name")),class:"cursor-pointer px-4 py-3 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"},[e("div",it,[t[10]||(t[10]=d(" Name ",-1)),(a(),i(c(u("first_name")),{size:14,class:"text-teal-500"}))])]),e("th",{onClick:t[1]||(t[1]=s=>y("phone")),class:"cursor-pointer px-4 py-3 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"},[e("div",lt,[t[11]||(t[11]=d(" Phone No. ",-1)),(a(),i(c(u("phone")),{size:14,class:"text-teal-500"}))])]),e("th",{onClick:t[2]||(t[2]=s=>
1y("user_type")),class:"cursor-pointer px-4 py-3 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"},[e("div",dt,[t[12]||(t[12]=d(" User Type ",-1)),(a(),i(c(u("user_type")),{size:14,class:"text-teal-500"}))])]),e("th",{onClick:t[3]||(t[3]=s=>y("last_login")),class:"cursor-pointer px-4 py-3 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"},[e("div",gt,[t[13]||(t[13]=d(" Last Login ",-1)),(a(),i(c(u("last_login")),{size:14,class:"text-teal-500"}))])]),e("th",{onClick:t[4]||(t[4]=s=>y("created_at")),class:"cursor-pointer px-4 py-3 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"},[e("div",pt,[t[14]||(t[14]=d(" Created At ",-1)),(a(),i(c(u("created_at")),{size:14,class:"text-teal-500"}))])]),t[16]||(t[16]=e("th",{class:"px-4 py-3 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"}," Region/City ",-1)),e("th",{onClick:t[5]||(t[5]=s=>y("status")),class:"cursor-pointer px-4 py-3 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"},[e("div",xt,[t[15]||(t[15]=d(" Status ",-1)),(a(),i(c(u("status")),{size:14,class:"text-teal-500"}))])]),t[17]||(t[17]=e("th",{class:"px-4 py-3 text-right text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400"},null,-1))])]),e("tbody",yt,[o(b)?.users?.length?w("",!0):(a(),l("tr",ut,[...t[18]||(t[18]=[e("td",{colspan:"8",class:"px-4 py-8 text-center text-sm text-gray-500 dark:text-gray-400"}," No data found ",-1)])])),(a(!0),l(W,null,X(o(b)?.users,s=>(a(),l("tr",{key:s._id,class:"hover:bg-gray-50 dark:hover:bg-gray-700/50"},[e("td",ct,[e("div",mt,[e("div",vt,n(B(s.first_name)),1),e("div",null,[e("p",kt,n(s.first_name),1),e("p",ft,n(s.email),1)])])]),e("td",bt,n(s.phone||"-"),1),e("td",_t,[e("span",{class:$(["rounded px-3 py-1 text-xs font-medium text-white",I(s.user_type)])},n(E(s.user_type)),3)]),e("td",wt,n(s.last_login?z(s.last_login):"N/A"),1),e("td",ht,n(z(s.created_at)),1),e("td",Ct,n(s.location||s.timezone||"-"),1),e("td",zt,[e("span",{class:$(["text-xs",C(s.status)==="Active"?"text-green-500":"text-gray-500 dark:text-gray-400"])},n(C(s.status)),3)]),e("td",Ut,[e("div",$t,[e("button",{onClick:T=>D(s._id),class:"px-2 py-1 text-lg font-bold text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white"}," ... ",8,Lt),k.value===s._id?(a(),l("div",St,[e("div",At,[e("button",{onClick:T=>N(s),disabled:f.value,class:"flex w-full items-center gap-2 px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:text-gray-200 dark:hover:bg-gray-600"},[f.value?(a(),i(o(U),{key:0,size:14,class:"animate-spin"})):(a(),i(o(M),{key:1,size:14})),t[19]||(t[19]=d(" Impersonate ",-1))],8,Dt),_(P,{to:`/agency/users/${s._id}`,class:"flex w-full items-center gap-2 px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-600"},{default:Z(()=>[_(o(Q),{size:14}),t[20]||(t[20]=d(" Edit ",-1))]),_:1},8,["to"])])])):w("",!0)])])]))),128))])])]),o(b)?.pagination?(a(),i(q,{key:0,page:g.value,"page-size":v.value,total:o(b).pagination.total||0,"item-name":"users","show-per-page-selector":"","show-page-buttons":"",onPrev:t[6]||(t[6]=s=>g.value--),onNext:t[7]||(t[7]=s=>g.value++),onGoto:t[8]||(t[8]=s=>g.value=s),"onUpdate:pageSize":t[9]||(t[9]=s=>v.value=s)},null,8,["page","page-size","total"])):w("",!0)]))])}}};export{Kt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.