1import{w,l as o,m as i,q as e,B as s,z as b,u as a,J as k,aa as f,ac as T,ab as z,K as d,p as P,F as U,v as $,y as q,a6 as A,r as n,_ as B,D,Y as E,e as L}from"./vue-vendor-c0W5WEtO.js";import{b as Y}from"./query-vendor-BMwEzNLN.js";import{h as R}from"./date-vendor-HBGOQ70J.js";import{_ as G}from"./Pagination-bRbpfmNK.js";import{g as J}from"./identity-DFsZOVzj.js";import{ar as S,x as K,bJ as W,b as j,R as H,c as Q,a8 as I}from"./ui-vendor-B7SopUXd.js";const O={class:"mb-6 flex flex-wrap gap-2"},X={class:"mb-6 rounded-lg border border-gray-200 bg-white p-4 dark:border-gray-700 dark:bg-gray-800"},Z={class:"grid gap-4 md:grid-cols-3"},ee={class:"relative"},te={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"},re={class:"text-center"},ae={key:1,class:"rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-900/50 dark:bg-red-900/20"},se={class:"flex items-start gap-3"},oe={class:"mt-1 text-sm text-red-700 dark:text-red-300"},de={key:2,class:"overflow-hidden rounded-lg border border-gray-200 dark:border-gray-700"},le={class:"overflow-x-auto"},ie={class:"w-full"},ne={class:"bg-white dark:bg-gray-800"},ge={key:0,class:"border-t border-gray-200 dark:border-gray-700"},ye={colspan:"8",class:"px-4 py-8 text-center"},xe=["onClick"],ue={class:"px-4 py-3 text-gray-900 dark:text-white"},pe={class:"px-4 py-3 text-sm text-gray-700 dark:text-gray-300"},me={class:"px-4 py-3 text-sm text-gray-700 dark:text-gray-300"},be={class:"px-4 py-3"},ce={class:"inline-flex rounded-full bg-gray-100 px-2 py-1 text-xs font-medium text-gray-700 dark:bg-gray-700 dark:text-gray-300"},ke={class:"px-4 py-3"},fe={class:"px-4 py-3"},ve={class:"inline-flex rounded-full bg-blue-50 px-2 py-1 text-xs font-medium text-blue-700 dark:bg-blue-500/20 dark:text-blue-300"},he={class:"px-4 py-3 text-sm whitespace-nowrap text-gray-700 dark:text-gray-300"},_e={class:"px-4 py-3 text-right"},Fe={__name:"Persons",setup(we){const C=B(),c=n(""),y=n(""),x=n("last_active_at"),l=n(1),u=n(20),v=n("");let h=null;w(c,g=>{clearTimeout(h),h=setTimeout(()=>{v.value=g,l.value=1},300)}),w([y,x,u],()=>{l.value=1});const _=L(()=>({page:l.value,pageSize:u.value,search:v.value,has_profile:y.value,sort:x.value,order:-1})),{isPending:N,isError:V,error:M,data:p}=Y({queryKey:["admin","identity","persons",_],queryFn:()=>J(_.value)}),F=g=>g?R(g).format("MMM D, YYYY h:mm A"):"â";return(g,t)=>{const m=A("router-link");return o(),i("div",null,[t[20]||(t[20]=e("div",{class:"mb-6"},[e("h1",{class:"text-2xl font-bold text-gray-900 dark:text-white"},"Persons"),e("p",{class:"mt-1 text-sm text-gray-600 dark:text-gray-400"}," Global identity graph â unique people linked across sessions, devices and companies ")],-1)),e("div",O,[s(m,{to:"/admin/identity/persons",class:"inline-flex items-center gap-2 rounded-lg border border-teal-500 bg-teal-50 px-4 py-2 text-sm font-medium text-teal-700 dark:border-teal-500 dark:bg-teal-500/20 dark:text-teal-300"},{default:b(()=>[s(a(S),{size:16}),t[8]||(t[8]=k(" Persons ",-1))]),_:1}),s(m,{to:"/admin/identity/profiles",class:"inline-flex items-center gap-2 rounded-lg border border-gray-200 bg-white px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-50 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-300 dark:hover:bg-gray-700"},{default:b(()=>[s(a(K),{size:16}),t[9]||(t[9]=k(" Profiles ",-1))]),_:1}),s(m,{to:"/admin/identity/form-submissions",class:"inline-flex items-center gap-2 rounded-lg border border-gray-200 bg-white px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-50 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-300 dark:hover:bg-gray-700"},{default:b(()=>[s(a(W),{size:16}),t[10]||(t[10]=k(" Form Submissions ",-1))]),_:1})]),e("div",X,[e("div",Z,[e("div",null,[t[11]||(t[11]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Search",-1)),e("div",ee,[s(a(j),{size:18,class:"absolute top-1/2 left-3 -translate-y-1/2 text-gray-400 dark:text-gray-500"}),f(e("input",{"onUpdate:modelValue":t[0]||(t[0]=r=>c.value=r),type:"text",placeholder:"Name, email, or phone...",class:"w-full rounded-lg border border-gray-300 bg-white py-2 pr-4 pl-10 text-sm text-gray-900 placeholder-gray-500 focus:ring-2 focus:ring-teal-500 focus:outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400"},null,512),[[T,c.value]])])]),e("div",null,[t[13]||(t[13]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Has Profile",-1)),f(e("select",{"onUpdate:modelValue":t[1]||(t[1]=r=>y.value=r),class:"w-full cursor-pointer rounded-lg border border-gray-300 bg-white px-4 py-2 text-sm text-gray-900 focus:ring-2 focus:ring-teal-500 focus:outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white"},[...t[12]||(t[12]=[e("option",{value:""},"All",-1),e("option",{value:"true"},"With profiles",-1),e("option",{value:"false"},"Without profiles",-1)])],512),[[z,y.value]])]),e("div",null,[t[15]||(t[15]=e("label",{class:"mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"},"Sort",-1)),f(e("select",{"onUpdate:modelValue":t[2]||(t[2]=r=>x.value=r),class:"w-full cursor-pointer rounded-lg border border-gray-300 bg-white px-4 py-2 text-sm text-gray-900 focus:ring-2 focus:ring-teal-500 focus:outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white"},[...t[14]||(t[14]=[e("option",{value:"last_active_at"},"Last active",-1),e("option",{value:"first_seen_at"},"First seen",-1),e("option",{value:"name"},"Name",-1)])],512),[[z,x.value]])])])]),a(N)?(o(),i("div",te,[e("div",re,[s(a(H),{size:32,class:"mx-auto animate-spin text-gray-400 dark:text-gray-600"}),t[16]||(t[16]=e("p",{class:"mt-4 text-sm text-gray-600 dark:text-gray-400"},"Loading persons...",-1))])])):a(V)?(o(),i("div",ae,[e("div",se,[s(a(Q),{size:20,class:"text-red-600"}),e("div",null,[t[17]||(t[17]=e("h3",{class:"font-medium text-red-900 dark:text-red-400"},"Error Loading Persons",-1)),e("p",oe,d(a(M)?.message||"An error occurred"),1)])])])):(o(),i("div",de,[e("div",le,[e("table",ie,[t[19]||(t[19]=e("thead",{class:"border-b border-gray-200 bg-gray-50 text-left text-sm font-medium dark:border-gray-700 dark:bg-gray-800/50"},[e("tr",null,[e("th",{class:"px-4 py-3 text-gray-700 dark:text-gray-300"},"Name"),e("th",{class:"px-4 py-3 text-gray-700 dark:text-gray-300"},"Email"),e("th",{class:"px-4 py-3 text-gray-700 dark:text-gray-300"},"Phone"),e("th",{class:"px-4 py-3 text-gray-700 dark:text-gray-300"},"Match keys"),e("th",{class:"px-4 py-3 text-gray-700 dark:text-gray-300"},"Profiles"),e("th",{class:"px-4 py-3 text-gray-700 dark:text-gray-300"},"Sessions"),e("th",{class:"px-4 py-3 text-gray-700 dark:text-gray-300"},"Last active"),e("th",{class:"px-4 py-3 text-right text-gray-700 dark:text-gray-300"},"Actions")])],-1)),e("tbody",ne,[a(p)?.persons?.length?P("",!0):(o(),i("tr",ge,[e("td",ye,[s(a(S),{size:48,class:"mx-auto text-gray-300 dark:text-gray-600"}),t[18]||(t[18]=e("p",{class:"mt-4 font-medium text-gray-600 dark:text-gray-400"}
1,"No persons found",-1))])])),(o(!0),i(U,null,$(a(p)?.persons,r=>(o(),i("tr",{key:r._id,class:"cursor-pointer border-t border-gray-200 transition-colors hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-700/50",onClick:ze=>a(C).push(`/admin/identity/persons/${r._id}`)},[e("td",ue,d(r.name||"â"),1),e("td",pe,d(r.email||"â"),1),e("td",me,d(r.phone||"â"),1),e("td",be,[e("span",ce,d((r.match_keys||[]).length),1)]),e("td",ke,[e("span",{class:D(["inline-flex rounded-full px-2 py-1 text-xs font-medium",r.profile_count>0?"bg-teal-50 text-teal-700 dark:bg-teal-500/20 dark:text-teal-300":"bg-gray-100 text-gray-500 dark:bg-gray-700 dark:text-gray-400"])},d(r.profile_count),3)]),e("td",fe,[e("span",ve,d(r.session_count),1)]),e("td",he,d(F(r.last_active_at)),1),e("td",_e,[s(m,{to:`/admin/identity/persons/${r._id}`,class:"inline-flex rounded-md border border-gray-200 p-1.5 text-gray-500 transition-colors hover:border-teal-300 hover:bg-teal-50 hover:text-teal-700 dark:border-gray-600 dark:text-gray-400 dark:hover:border-teal-600 dark:hover:bg-teal-900/30 dark:hover:text-teal-400",title:"View person",onClick:t[3]||(t[3]=E(()=>{},["stop"]))},{default:b(()=>[s(a(I),{size:15})]),_:1},8,["to"])])],8,xe))),128))])])]),a(p)?.persons?.length?(o(),q(G,{key:0,page:l.value,"page-size":u.value,total:a(p)?.pagination?.total||0,"item-name":"persons","show-per-page-selector":"","show-page-buttons":"",onPrev:t[4]||(t[4]=r=>l.value--),onNext:t[5]||(t[5]=r=>l.value++),onGoto:t[6]||(t[6]=r=>l.value=r),"onUpdate:pageSize":t[7]||(t[7]=r=>u.value=r)},null,8,["page","page-size","total"])):P("",!0)]))])}}};export{Fe 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.