bettertend/frontend/dist/assets/PeopleListView-B0nZJzbG.js

2 lines
22 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{q as $e,r as c,c as f,o as He,i as P,w as s,s as Oe,v as qe,g as i,b as a,d as n,a as p,j as b,ae as O,t as d,e as o,F as g,k as u,af as Z,aQ as ee,ai as Ge,ba as le}from"./index-BUdRbiwj.js";import{F as Qe,a as We}from"./FPPageHeader-CTG2L28r.js";import{F as B}from"./FPInput-CzR_dWoe.js";import{F as q}from"./FPSelect-C7p47Ma2.js";import{F as Ye}from"./FPStats-BGfZcDZc.js";import{F as Je}from"./FPTable-CU8C_NYc.js";import{F as G}from"./FPModal-DWGF1LV8.js";import{F as V}from"./FPBadge-BKY5dPnL.js";import{F as Ke}from"./FPTabs-R71V25QN.js";import{u as Xe}from"./users-DxH_c7oY.js";import{u as Ze,a as el}from"./roles-f1XEGBFr.js";import"./FPCard-qHzcEQAE.js";const ll={class:"p-6"},al={key:0,class:"flex justify-center py-12"},tl={key:1,class:"bg-red-50 border border-red-200 rounded-lg p-6 mb-6"},sl={class:"flex items-start"},ol={class:"text-red-700 mb-4"},nl={class:"mb-6 grid grid-cols-1 md:grid-cols-4 gap-4"},rl={class:"flex items-center"},il={class:"w-10 h-10 rounded-full bg-primary-100 flex items-center justify-center mr-3"},ul={class:"text-sm font-medium text-primary-600"},dl={class:"font-medium text-gray-900"},vl={class:"text-sm text-gray-600"},ml={key:0,class:"flex flex-wrap gap-1"},cl={key:1,class:"text-sm text-gray-400"},pl={key:0,class:"text-sm text-gray-900"},gl={key:1,class:"text-sm text-gray-400"},fl={class:"flex items-center space-x-2"},bl={key:0},yl={key:0},kl={key:0},xl={key:0},hl={key:0,class:"space-y-6"},wl={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Cl={class:"md:col-span-2"},Ul={class:"flex justify-end space-x-2"},Vl={key:0,class:"space-y-4"},Ml={class:"text-sm text-gray-600"},Sl={class:"flex justify-end space-x-2"},Fl={key:0,class:"space-y-4"},_l={class:"text-sm text-gray-600"},Rl={key:0,class:"flex flex-wrap gap-2"},Tl={key:1,class:"text-sm text-gray-400"},zl={class:"space-y-3"},Nl={class:"flex items-center space-x-3"},Il={class:"flex items-center space-x-3"},Pl={class:"flex items-center space-x-3"},Ll={class:"flex justify-end space-x-2"},jl={class:"space-y-6"},El={key:0,class:"space-y-1"},Al={class:"text-sm"},Bl={class:"flex justify-end space-x-2"},ea={__name:"PeopleListView",setup(Dl){const ae=Oe(),Q=qe(),te=$e(),v=Xe(),ce=Ze(),h=el(),L=c("all"),M=c(""),w=c(""),C=c("all"),j=c(!1),R=c(!1),E=c(!1),A=c(!1),U=c("view"),r=c(null),D=c(window.innerWidth<768),k=c(""),y=c([]),S=c(""),F=c(""),x=c([]),T=c(!1),z=c(!1);c(!1);const N=c(!1);let se=null;const W=f(()=>v.loading),oe=f(()=>v.error);f(()=>h.userPermissions.canViewUsers),f(()=>h.userPermissions.canCreateUsers);const I=f(()=>h.userPermissions.canEditUsers);f(()=>h.userPermissions.canDeleteUsers);const pe=f(()=>h.userPermissions.canCreateUsers),ge=f(()=>M.value||w.value||C.value!=="all"),fe=f(()=>{const t=v.users.content||[];return[{name:"Total Users",value:v.users.totalElements||t.length,variant:"primary"},{name:"Active",value:t.filter(e=>e.enabled).length,variant:"success"},{name:"Inactive",value:t.filter(e=>!e.enabled).length,variant:"error"},{name:"Pending",value:t.filter(e=>e.status==="PENDING").length,variant:"warning"}]}),be=f(()=>{const t=v.users.content||[];return[{key:"all",label:"All Users",count:t.length},{key:"active",label:"Active",count:t.filter(e=>e.enabled).length},{key:"inactive",label:"Inactive",count:t.filter(e=>!e.enabled).length},{key:"pending",label:"Pending",count:t.filter(e=>e.status==="PENDING").length}]}),Y=f(()=>{const t=h.roles||[];return[{value:"",label:"All Roles"},...t.map(e=>({value:e.code,label:e.name}))]}),ye=[{value:"all",label:"All Status"},{value:"enabled",label:"Active"},{value:"disabled",label:"Inactive"}],$=f(()=>{let t=v.users.content||[];if(M.value){const e=M.value.toLowerCase();t=t.filter(l=>{var m,X,de,ve,me;return((m=l.firstName)==null?void 0:m.toLowerCase().includes(e))||((X=l.lastName)==null?void 0:X.toLowerCase().includes(e))||((de=l.email)==null?void 0:de.toLowerCase().includes(e))||((ve=l.phone)==null?void 0:ve.toLowerCase().includes(e))||((me=l.jobTitle)==null?void 0:me.toLowerCase().includes(e))})}return w.value&&(t=t.filter(e=>{var l;return((l=e.role)==null?void 0:l.code)===w.value})),C.value==="enabled"?t=t.filter(e=>e.enabled):C.value==="disabled"&&(t=t.filter(e=>!e.enabled)),L.value==="active"?t=t.filter(e=>e.enabled):L.value==="inactive"?t=t.filter(e=>!e.enabled):L.value==="pending"&&(t=t.filter(e=>e.status==="PENDING")),t}),ke=[{key:"user",label:"User",sortable:!0},{key:"role",label:"Role",sortable:!0},{key:"status",label:"Status",sortable:!0},{key:"teams",label:"Teams",sortable:!1},{key:"lastLogin",label:"Last Login",sortable:!0}],xe=f(()=>({currentPage:v.users.currentPage+1,total:v.users.totalElements,pageSize:v.users.pageSize||10})),ne=async()=>{try{console.log("Initializing user management data..."),te.user&&h.setCurrentUser(te.user),await Promise.all([v.searchUsers(),h.loadRoles(),ce.loadTeams()]),console.log("User management data loaded successfully")}catch(t){console.error("Failed to initialize data:",t)}},H=async()=>{console.log("Refreshing user data..."),await v.searchUsers()},he=async()=>{try{await ne()}catch(t){console.error("Retry failed:",t)}},we=()=>{clearTimeout(se),se=setTimeout(async()=>{await v.searchUsers({searchValue:M.value,page:0})},300)},Ce=async()=>{await v.searchUsers({filterFields:w.value?[{field:"role.code",value:w.value}]:[],page:0})},Ue=async()=>{const t=C.value==="enabled"?!0:C.value==="disabled"?!1:null;await v.searchUsers({filterFields:t!==null?[{field:"enabled",value:t}]:[],page:0})},Ve=async()=>{M.value="",w.value="",C.value="all",await v.searchUsers({page:0})},Me=async({column:t,direction:e})=>{console.log("Sort:",t,e);const m={user:"lastName",role:"role.name",status:"enabled",lastLogin:"lastLogin"}[t]||t;await v.searchUsers({sortBy:m,direction:e.toUpperCase()})},Se=async t=>{console.log("Page change:",t),await v.searchUsers({page:t-1})},Fe=()=>{},_e=t=>{re(t)},re=t=>{r.value={...t},U.value="view",R.value=!0},ie=t=>{I.value&&(r.value={...t},U.value="edit",R.value=!0)},Re=t=>{I.value&&(r.value={...t},F.value="",E.value=!0)},Te=t=>{if(!I.value)return;r.value={...t};const e=_(t.id);x.value=e.map(l=>l.name==="Engineering"?"engineering":l.name==="Maintenance"?"maintenance":l.name==="Operations"?"operations":l.name.toLowerCase()),A.value=!0},ue=()=>{k.value="",y.value=[],S.value="",j.value=!0},ze=()=>{k.value&&Ae(k.value)&&!y.value.includes(k.value)&&(y.value.push(k.value),k.value="")},Ne=t=>{y.value.splice(t,1)},Ie=async()=>{try{N.value=!0,console.log("Sending invites to:",y.value,"with role:",S.value),await v.inviteUsers({emails:y.value,roleCode:S.value}),j.value=!1,y.value=[],k.value="",S.value="",await H()}catch(t){console.error("Failed to send invites:",t)}finally{N.value=!1}},Pe=async()=>{try{T.value=!0,console.log("Saving user changes:",r.value),await v.updateUserProfile(r.value.id,{firstName:r.value.firstName,lastName:r.value.lastName,email:r.value.email,phone:r.value.phone,jobTitle:r.value.jobTitle}),R.value=!1,await H()}catch(t){console.error("Failed to save user:",t)}finally{T.value=!1}},Le=async()=>{try{z.value=!0,console.log("Changing role for user:",r.value.email,"to:",F.value),await v.updateUserRole(r.value.id,F.value),E.value=!1,F.value="",await H()}catch(t){console.error("Failed to change user role:",t)}finally{z.value=!1}},je=()=>{console.log("Saving team assignments for user:",r.value.email),console.log("Selected teams:",x.value),A.value=!1,x.value=[]},Ee=(t,e)=>`${(t==null?void 0:t.charAt(0))||""}${(e==null?void 0:e.charAt(0))||""}`.toUpperCase(),Ae=t=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t),_=t=>{var l;const e=(l=v.users.content)==null?void 0:l.find(m=>m.id===t);return(e==null?void 0:e.teams)||[]},J=t=>{switch(t==null?void 0:t.code){case"ADMIN":return"error";case"TECHNICIAN":return"primary";case"VIEW_ONLY":return"secondary";default:return"secondary"}},K=t=>(t==null?void 0:t.name)||"Unknown",Be=t=>t?new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):"",De=()=>{const t=ae.query.edit;t&&setTimeout(()=>{const l=mockUsers.value.find(m=>m.id===parseInt(t));l&&ie(l),Q.replace({path:"/people"})},500),ae.query.invite==="true"&&setTimeout(()=>{ue(),Q.replace({path:"/people"})},500)};return He(async()=>{await ne(),De()}),(t,e)=>(i(),P(Qe,null,{header:s(()=>[n(We,{title:"People & Teams",description:"Manage users, roles, and team assignments",breadcrumbs:[{text:"People",to:null}]},{actions:s(()=>[n(o(g),{variant:"outline",size:"sm",onClick:e[0]||(e[0]=l=>o(Q).push("/people/teams"))},{default:s(()=>e[22]||(e[22]=[a("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"})],-1),u(" Manage Teams ",-1)])),_:1,__:[22]}),n(o(g),{variant:"outline",size:"sm",onClick:H},{default:s(()=>e[23]||(e[23]=[a("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),u(" Refresh ",-1)])),_:1,__:[23]}),n(o(g),{variant:"primary",size:"sm",onClick:ue,disabled:!pe.value},{default:s(()=>e[24]||(e[24]=[a("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),u(" Invite Users ",-1)])),_:1,__:[24]},8,["disabled"])]),stats:s(()=>[n(o(Ye),{stats:fe.value},null,8,["stats"])]),tabs:s(()=>[n(o(Ke),{modelValue:L.value,"onUpdate:modelValue":e[1]||(e[1]=l=>L.value=l),tabs:be.value,onTabChange:Fe},null,8,["modelValue","tabs"])]),_:1})]),default:s(()=>[a("div",ll,[W.value&&!$.value.length?(i(),p("div",al,e[25]||(e[25]=[a("div",{class:"text-center"},[a("div",{class:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary-600 mx-auto mb-4"}),a("p",{class:"text-gray-600"},"Loading users...")],-1)]))):oe.value&&!$.value.length?(i(),p("div",tl,[a("div",sl,[e[28]||(e[28]=a("svg",{class:"w-6 h-6 text-red-400 mr-3 mt-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.728-.833-2.498 0L4.316 16.5c-.77.833.192 2.5 1.732 2.5z"})],-1)),a("div",null,[e[27]||(e[27]=a("h3",{class:"text-lg font-medium text-red-800 mb-2"},"Failed to Load Users",-1)),a("p",ol,d(oe.value),1),n(o(g),{variant:"outline",size:"sm",onClick:he},{default:s(()=>e[26]||(e[26]=[a("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})],-1),u(" Retry ",-1)])),_:1,__:[26]})])])])):b("",!0),O(a("div",null,[a("div",nl,[n(o(B),{modelValue:M.value,"onUpdate:modelValue":e[2]||(e[2]=l=>M.value=l),placeholder:"Search users...",onInput:we},{prepend:s(()=>e[29]||(e[29]=[a("svg",{class:"w-4 h-4 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)])),_:1},8,["modelValue"]),n(o(q),{modelValue:w.value,"onUpdate:modelValue":[e[3]||(e[3]=l=>w.value=l),Ce],placeholder:"Filter by Role",options:Y.value},null,8,["modelValue","options"]),n(o(q),{modelValue:C.value,"onUpdate:modelValue":[e[4]||(e[4]=l=>C.value=l),Ue],placeholder:"Filter by Status",options:ye},null,8,["modelValue"]),ge.value?(i(),P(o(g),{key:0,variant:"outline",size:"sm",onClick:Ve},{default:s(()=>e[30]||(e[30]=[a("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1),u(" Clear Filters ",-1)])),_:1,__:[30]})):b("",!0)]),n(o(Je),{columns:ke,data:$.value,loading:W.value,pagination:xe.value,"empty-message":"No users found",onSortChange:Me,onPageChange:Se,onRowClick:_e},{"column-user":s(({row:l})=>[a("div",rl,[a("div",il,[a("span",ul,d(Ee(l.firstName,l.lastName)),1)]),a("div",null,[a("h4",dl,d(`${l.firstName} ${l.lastName}`),1),a("p",vl,d(l.email),1)])])]),"column-role":s(({row:l})=>[n(o(V),{variant:J(l.role)},{default:s(()=>[u(d(K(l.role)),1)]),_:2},1032,["variant"])]),"column-status":s(({row:l})=>[n(o(V),{variant:l.enabled?"success":"error"},{default:s(()=>[u(d(l.enabled?"Active":"Inactive"),1)]),_:2},1032,["variant"])]),"column-teams":s(({row:l})=>[_(l.id).length>0?(i(),p("div",ml,[(i(!0),p(Z,null,ee(_(l.id).slice(0,2),m=>(i(),P(o(V),{key:m.id,variant:"info",size:"sm"},{default:s(()=>[u(d(m.name),1)]),_:2},1024))),128)),_(l.id).length>2?(i(),P(o(V),{key:0,variant:"secondary",size:"sm"},{default:s(()=>[u(" +"+d(_(l.id).length-2),1)]),_:2},1024)):b("",!0)])):(i(),p("span",cl,"No teams"))]),"column-lastLogin":s(({row:l})=>[l.lastLogin?(i(),p("div",pl,d(Be(l.lastLogin)),1)):(i(),p("span",gl,"Never"))]),"row-actions":s(({row:l})=>[a("div",fl,[n(o(g),{variant:"ghost",size:"sm",onClick:m=>re(l),title:"View Details"},{default:s(()=>[e[31]||(e[31]=a("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})],-1)),D.value?b("",!0):(i(),p("span",bl,"View"))]),_:2,__:[31]},1032,["onClick"]),n(o(g),{variant:"ghost",size:"sm",onClick:m=>ie(l),title:"Edit User",disabled:!I.value},{default:s(()=>[e[32]||(e[32]=a("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})],-1)),D.value?b("",!0):(i(),p("span",yl,"Edit"))]),_:2,__:[32]},1032,["onClick","disabled"]),n(o(g),{variant:"ghost",size:"sm",onClick:m=>Re(l),title:"Change Role",disabled:!I.value},{default:s(()=>[e[33]||(e[33]=a("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v-2L2.257 8.257a6 6 0 018.486-8.486L18 7z"})],-1)),D.value?b("",!0):(i(),p("span",kl,"Role"))]),_:2,__:[33]},1032,["onClick","disabled"]),n(o(g),{variant:"ghost",size:"sm",onClick:m=>Te(l),title:"Manage Teams",disabled:!I.value},{default:s(()=>[e[34]||(e[34]=a("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"})],-1)),D.value?b("",!0):(i(),p("span",xl,"Teams"))]),_:2,__:[34]},1032,["onClick","disabled"])])]),_:1},8,["data","loading","pagination"])],512),[[Ge,!W.value||$.value.length]])]),n(o(G),{modelValue:R.value,"onUpdate:modelValue":e[9]||(e[9]=l=>R.value=l),title:U.value==="view"?"User Details":"Edit User",size:"lg"},{footer:s(()=>[a("div",Ul,[n(o(g),{variant:"outline",onClick:e[8]||(e[8]=l=>R.value=!1),disabled:T.value},{default:s(()=>[u(d(U.value==="view"?"Close":"Cancel"),1)]),_:1},8,["disabled"]),U.value==="edit"?(i(),P(o(g),{key:0,variant:"primary",onClick:Pe,loading:T.value,disabled:T.value},{default:s(()=>[u(d(T.value?"Saving...":"Save Changes"),1)]),_:1},8,["loading","disabled"])):b("",!0)])]),default:s(()=>[r.value?(i(),p("div",hl,[a("div",wl,[a("div",null,[e[35]||(e[35]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"First Name",-1)),n(o(B),{modelValue:r.value.firstName,"onUpdate:modelValue":e[5]||(e[5]=l=>r.value.firstName=l),readonly:U.value==="view"},null,8,["modelValue","readonly"])]),a("div",null,[e[36]||(e[36]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Last Name",-1)),n(o(B),{modelValue:r.value.lastName,"onUpdate:modelValue":e[6]||(e[6]=l=>r.value.lastName=l),readonly:U.value==="view"},null,8,["modelValue","readonly"])]),a("div",Cl,[e[37]||(e[37]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Email",-1)),n(o(B),{modelValue:r.value.email,"onUpdate:modelValue":e[7]||(e[7]=l=>r.value.email=l),readonly:U.value==="view"},null,8,["modelValue","readonly"])]),a("div",null,[e[38]||(e[38]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Role",-1)),n(o(V),{variant:J(r.value.role)},{default:s(()=>[u(d(K(r.value.role)),1)]),_:1},8,["variant"])]),a("div",null,[e[39]||(e[39]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Status",-1)),n(o(V),{variant:r.value.enabled?"success":"error"},{default:s(()=>[u(d(r.value.enabled?"Active":"Inactive"),1)]),_:1},8,["variant"])])])])):b("",!0)]),_:1},8,["modelValue","title"]),n(o(G),{modelValue:E.value,"onUpdate:modelValue":e[12]||(e[12]=l=>E.value=l),title:"Change User Role",size:"md"},{footer:s(()=>[a("div",Sl,[n(o(g),{variant:"outline",onClick:e[11]||(e[11]=l=>E.value=!1),disabled:z.value},{default:s(()=>e[43]||(e[43]=[u("Cancel",-1)])),_:1,__:[43]},8,["disabled"]),n(o(g),{variant:"primary",onClick:Le,disabled:!F.value||z.value,loading:z.value},{default:s(()=>[u(d(z.value?"Changing...":"Change Role"),1)]),_:1},8,["disabled","loading"])])]),default:s(()=>[r.value?(i(),p("div",Vl,[a("p",Ml,[e[40]||(e[40]=u(" Change role for ",-1)),a("strong",null,d(r.value.firstName)+" "+d(r.value.lastName),1)]),a("div",null,[e[41]||(e[41]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Current Role",-1)),n(o(V),{variant:J(r.value.role)},{default:s(()=>[u(d(K(r.value.role)),1)]),_:1},8,["variant"])]),a("div",null,[e[42]||(e[42]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"New Role",-1)),n(o(q),{modelValue:F.value,"onUpdate:modelValue":e[10]||(e[10]=l=>F.value=l),options:Y.value.filter(l=>{var m;return l.value!==((m=r.value.role)==null?void 0:m.code)}),placeholder:"Select new role"},null,8,["modelValue","options"])])])):b("",!0)]),_:1},8,["modelValue"]),n(o(G),{modelValue:A.value,"onUpdate:modelValue":e[17]||(e[17]=l=>A.value=l),title:"Manage User Teams",size:"md"},{footer:s(()=>[a("div",Ll,[n(o(g),{variant:"outline",onClick:e[16]||(e[16]=l=>A.value=!1)},{default:s(()=>e[50]||(e[50]=[u("Cancel",-1)])),_:1,__:[50]}),n(o(g),{variant:"primary",onClick:je},{default:s(()=>e[51]||(e[51]=[u(" Save Teams ",-1)])),_:1,__:[51]})])]),default:s(()=>[r.value?(i(),p("div",Fl,[a("p",_l,[e[44]||(e[44]=u(" Manage team assignments for ",-1)),a("strong",null,d(r.value.firstName)+" "+d(r.value.lastName),1)]),a("div",null,[e[45]||(e[45]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Current Teams",-1)),_(r.value.id).length>0?(i(),p("div",Rl,[(i(!0),p(Z,null,ee(_(r.value.id),l=>(i(),P(o(V),{key:l.id,variant:"info"},{default:s(()=>[u(d(l.name),1)]),_:2},1024))),128))])):(i(),p("p",Tl,"No teams assigned"))]),a("div",null,[e[49]||(e[49]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Available Teams",-1)),a("div",zl,[a("div",Nl,[O(a("input",{type:"checkbox",id:"engineering",class:"w-5 h-5 rounded border-3 border-gray-800 text-primary-600 focus:ring-primary-500 focus:border-primary-600 bg-white",style:{"border-width":"3px !important","border-color":"#374151 !important"},"onUpdate:modelValue":e[13]||(e[13]=l=>x.value=l),value:"engineering"},null,512),[[le,x.value]]),e[46]||(e[46]=a("label",{for:"engineering",class:"text-sm font-medium text-gray-700 cursor-pointer"},"Engineering",-1))]),a("div",Il,[O(a("input",{type:"checkbox",id:"maintenance",class:"w-5 h-5 rounded border-3 border-gray-800 text-primary-600 focus:ring-primary-500 focus:border-primary-600 bg-white",style:{"border-width":"3px !important","border-color":"#374151 !important"},"onUpdate:modelValue":e[14]||(e[14]=l=>x.value=l),value:"maintenance"},null,512),[[le,x.value]]),e[47]||(e[47]=a("label",{for:"maintenance",class:"text-sm font-medium text-gray-700 cursor-pointer"},"Maintenance",-1))]),a("div",Pl,[O(a("input",{type:"checkbox",id:"operations",class:"w-5 h-5 rounded border-3 border-gray-800 text-primary-600 focus:ring-primary-500 focus:border-primary-600 bg-white",style:{"border-width":"3px !important","border-color":"#374151 !important"},"onUpdate:modelValue":e[15]||(e[15]=l=>x.value=l),value:"operations"},null,512),[[le,x.value]]),e[48]||(e[48]=a("label",{for:"operations",class:"text-sm font-medium text-gray-700 cursor-pointer"},"Operations",-1))])])])])):b("",!0)]),_:1},8,["modelValue"]),n(o(G),{modelValue:j.value,"onUpdate:modelValue":e[21]||(e[21]=l=>j.value=l),title:"Invite Users",size:"lg"},{footer:s(()=>[a("div",Bl,[n(o(g),{variant:"outline",onClick:e[20]||(e[20]=l=>j.value=!1),disabled:N.value},{default:s(()=>e[57]||(e[57]=[u("Cancel",-1)])),_:1,__:[57]},8,["disabled"]),n(o(g),{variant:"primary",onClick:Ie,disabled:y.value.length===0||!S.value||N.value,loading:N.value},{default:s(()=>[u(d(N.value?"Sending...":`Send ${y.value.length>1?"Invitations":"Invitation"}`),1)]),_:1},8,["disabled","loading"])])]),default:s(()=>[a("div",jl,[a("div",null,[e[54]||(e[54]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Email Addresses",-1)),n(o(B),{modelValue:k.value,"onUpdate:modelValue":e[18]||(e[18]=l=>k.value=l),type:"email",placeholder:"Enter email address",class:"mb-2"},null,8,["modelValue"]),y.value.length>0?(i(),p("div",El,[(i(!0),p(Z,null,ee(y.value,(l,m)=>(i(),p("div",{key:m,class:"flex items-center justify-between bg-gray-50 px-3 py-2 rounded"},[a("span",Al,d(l),1),n(o(g),{variant:"ghost",size:"sm",onClick:X=>Ne(m)},{default:s(()=>e[52]||(e[52]=[u("×",-1)])),_:2,__:[52]},1032,["onClick"])]))),128))])):b("",!0),n(o(g),{variant:"outline",size:"sm",onClick:ze,class:"mt-2"},{default:s(()=>e[53]||(e[53]=[u(" Add Email ",-1)])),_:1,__:[53]})]),a("div",null,[e[55]||(e[55]=a("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Assign Role",-1)),n(o(q),{modelValue:S.value,"onUpdate:modelValue":e[19]||(e[19]=l=>S.value=l),options:Y.value,placeholder:"Select role for invited users"},null,8,["modelValue","options"])]),e[56]||(e[56]=a("div",{class:"bg-blue-50 p-3 rounded"},[a("p",{class:"text-sm text-blue-800"}," Users will receive an email invitation to join the system ")],-1))])]),_:1},8,["modelValue"])]),_:1}))}};export{ea as default};