1import{d as p,P as F,o as a,e as c,F as S,i as V,a as e,b as u,w as h,t as A,h as t,L as b,f as j,l as I,c as P,x as U,I as x,j as $,k as L,g as T,n as N,C as E}from"./app.1c75f29f.js";import{_ as O}from"./AppLayout.78e80e3b.js";import{_ as q}from"./Pagination.96910016.js";import z from"./DeactivateModal.e4e45412.js";import H from"./RejectModal.b78f2273.js";import K from"./ChangePasswordModal.247705d1.js";import{_ as G}from"./EmptyState.32308625.js";import"./Banner.7925d127.js";import"./ApplicationMark.85c52153.js";import"./Modal.f4449063.js";const J=["src"],Q={class:"text-16-medium"},W={class:"text-gray-60 text-14-regular py-3 px-4"},X={key:0,class:"text-14-regular py-3 px-4 text-center"},Y=["onChange"],Z=["value","selected"],ee={key:1,class:"py-3 px-4 flex justify-end gap-2"},te={class:"flex items-center justify-end gap-3"},se=["onClick"],ne={class:"flex items-center justify-end gap-3"},ae=["onClick"],le={key:2,class:"py-3 px-4 text-right"},re=["onClick"],oe={key:3,class:"py-3 px-4"},ie={class:"flex items-center justify-end gap-1"},ce=["onClick"],ue=e("span",{class:"action-icon icon-lock text-xl rounded-full bg-transparent text-gray-60 hover:text-gray-100 hover:bg-gray-10 transition-colors duration-200 flex items-center justify-center cursor-pointer"},null,-1),de=[ue],pe=e("i",{class:"action-icon text-xl rounded-full bg-transparent text-gray-60 hover:text-gray-100 hover:bg-gray-10 transition-colors duration-200 flex items-center justify-center cursor-pointer icon-edit"},null,-1),fe=["onClick"],ve={class:"my-5"},ge={__name:"UsersList",props:{users:{type:Object,default:()=>{}},listType:{type:String,required:!0},roles:{type:Object,default:()=>{}}},setup(r){let d=p(null),C=p(null),f=p(!1),v=p(!1),o=p(!1);const k=n=>{d=n,f.value=!0},w=n=>{d=n,v.value=!0},D=n=>{x.Inertia.put(`/admin/users/${n}/approve`)},M=(n,g)=>{x.Inertia.put(`/admin/users/${n}/change-role`,{role:g})},m=()=>{x.Inertia.put(`/admin/users/${d}/deactivate`,{},{onFinish:()=>{f.value=!1}})},i=()=>{x.Inertia.put(`/admin/users/${d}/disapprove`,{},{onFinish:()=>{v.value=!1}})},y=n=>{x.Inertia.put(`/admin/users/${n}/restore`)},B=n=>{o.value=!0,C.value=n};return(n,g)=>{const R=F("tooltip");return a(),c(S,null,[r.users.data&&r.users.data.length>0?(a(!0),c(S,{key:0},V(r.users.data,s=>(a(),c("table",{class:"table-fixed w-full bg-white rounded-lg",key:s.id},[e("tr",null,[e("td",null,[u(t(b),{href:`/admin/users/${s.slug}`,class:"flex items-center gap-3.5 py-3 px-4"},{default:h(()=>[e("img",{src:s.profile_photo_url,alt:"",class:"h-12 w-12 rounded-full object-cover"},null,8,J),e("span",Q,A(s.full_name),1)]),_:2},1032,["href"])]),e("td",W,A(s.email),1),r.listType=="active"?(a(),c("td",X,[e("select",{name:"",id:"",class:"border-0 outline-none focus:outline-none focus:ring-0 focus:ring-white text-center text-14-regular",onChange:l=>M(s.slug,l.target.value)},[(a(!0),c(S,null,V(r.roles.data,l=>(a(),c("option",{value:l.id,key:l.id,selected:l.id==s.roles[0].id},A(l.display_name),9,Z))),128))],40,Y)])):j("",!0),r.listType=="pending"?(a(),c("td",ee,[e("div",te,[e("button",{class:"btn text-gray-80 py-2 px-4",onClick:l=>w(s.slug)},"Reject",8,se)]),e("div",ne,[e("button",{class:"btn btn-secondary py-2 px-4",onClick:l=>D(s.slug)},"Approve",8,ae)])])):j("",!0),r.listType=="inactive"?(a(),c("td",le,[e("button",{class:"btn btn-secondary py-2 px-4",onClick:l=>y(s.slug)},"Activate",8,re)])):j("",!0),r.listType=="active"?(a(),c("td",oe,[e("div",ie,[I((a(),c("div",{class:"h-9 w-9 flex items-center rounded-full justify-center hover:bg-white transition-all duration-200",onClick:l=>B(s)},de,8,ce)),[[R,"Change password"]]),I((a(),P(t(b),{href:`/admin/users/${s.slug}/edit`},{default:h(()=>[pe]),_:2},1032,["href"])),[[R,"Edit user"]]),I(e("i",{onClick:l=>k(s.slug),class:"text-lg action-icon rounded-full bg-transparent text-gray-60 hover:text-gray-100 hover:bg-gray-10 transition-colors duration-200 flex items-center justify-center cursor-pointer icon-delete"},null,8,fe),[[R,"Delete"]])])])):j("",!0)])]))),128)):(a(),P(G,{key:1,show:!0,message:n.__("No users available.")},null,8,["message"])),e("div",ve,[u(q,{links:r.users.meta.links},null,8,["links"])]),u(K,{show:t(o),onClose:g[0]||(g[0]=s=>U(o)?o.value=!1:o=!1),user:t(C)},null,8,["show","user"]),u(z,{onDeactivate:m,show:t(f),onClose:g[1]||(g[1]=s=>U(f)?f.value=!1:f=!1)},null,8,["show"]),u(H,{onReject:i,show:t(v),onClose:g[2]||(g[2]=s=>U(v)?v.value=!1:v=!1)},null,8,["show"])],64)}}};const _e={class:"mt-8 flex items-center justify-between"},me={class:"tab flex items-center gap-8"},he={class:"flex gap-3 flex-grow justify-end"}
1,ye={class:"w-2/5 relative flex items-center"},xe=e("i",{class:"icon-search text-gray-50 absolute text-2xl left-3 flex"},null,-1),be=e("i",{class:"icon-plus-1 text-lg"},null,-1),ke={class:"mt-8 space-y-3"},Se={__name:"List",setup(r){let d=p("");const C=p(null);$(()=>L().props.value.user);const f=$(()=>L().props.value.users),v=$(()=>L().props.value.roles),o=$(()=>route().current()),k=p("text-indigo-60 border-indigo-60 text-16-medium border-b-2"),w=p("text-16-regular border-transparent text-gray-60"),D=_.debounce(m=>{let i="/admin/users";o.value=="users.pending"&&(i="/admin/users/pending"),o.value=="users.deactivated"&&(i="/admin/users/deactivated"),x.Inertia.get(i,{filter:{full_name:m.target.value}},{preserveState:!0})},500),M=$(()=>o.value=="users.pending"?"pending":o.value=="users.deactivated"?"inactive":"active");return(m,i)=>(a(),P(O,{title:"AHRCM Dashboard"},{default:h(()=>[e("div",null,[e("div",_e,[e("div",me,[u(t(b),{href:"/admin/users",class:N([m.route().current()=="users.approved"?t(k):t(w),"pb-2.5"])},{default:h(()=>[T("Active ")]),_:1},8,["class"]),u(t(b),{href:"/admin/users/pending",class:N([m.route().current()=="users.pending"?t(k):t(w),"pb-2.5"])},{default:h(()=>[T("Pending ")]),_:1},8,["class"]),u(t(b),{href:"/admin/users/deactivated",class:N([m.route().current()=="users.deactivated"?t(k):t(w),"pb-2.5"])},{default:h(()=>[T("Inactive ")]),_:1},8,["class"])]),e("div",he,[e("div",ye,[xe,I(e("input",{"onUpdate:modelValue":i[0]||(i[0]=y=>U(d)?d.value=y:d=y),ref_key:"searchInput",ref:C,onKeyup:i[1]||(i[1]=y=>t(D)(y)),type:"text",class:"bg-white placeholder:text-gray-50 border-0 rounded-lg block w-full h-full pl-14",placeholder:"Search name"},null,544),[[E,t(d)]])]),u(t(b),{href:"/admin/users/create",class:"btn btn-primary flex items-center gap-2"},{default:h(()=>[T(" Add new user "),be]),_:1})])]),e("div",ke,[u(ge,{roles:t(v),listType:t(M),users:t(f)},null,8,["roles","listType","users"])])])]),_:1}))}};export{Se 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.