Files
ETB/ETB-FrontEnd/node_modules/.cache/babel-loader/9c74e884b5bda9e9db3dc69d92dc52a67733769f54e63b8646089fd1176ab866.json
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

1 line
41 KiB
JSON

{"ast":null,"code":"import _objectSpread from\"/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import React,{useState}from'react';import{Grid,Paper,Typography,Box,Button,Chip,IconButton,TextField,InputAdornment,FormControl,InputLabel,Select,MenuItem,Dialog,DialogTitle,DialogContent,DialogActions,Avatar,Alert,Card,CardContent}from'@mui/material';import{Search,Add,Edit,Delete}from'@mui/icons-material';import{DataGrid}from'@mui/x-data-grid';import{ROLES}from'../../components/Auth/AuthContext';import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";const mockUsers=[{id:1,username:'admin',email:'admin@company.com',name:'System Administrator',role:'ADMIN',department:'IT',lastLogin:'2024-01-15 10:30',status:'active',avatar:null,created:'2024-01-01',permissions:['All Permissions']},{id:2,username:'john.smith',email:'john.smith@company.com',name:'John Smith',role:'IT_STAFF',department:'Infrastructure',lastLogin:'2024-01-15 09:45',status:'active',avatar:null,created:'2024-01-02',permissions:['Incident Management','Problem Management','Change Management']},{id:3,username:'sarah.johnson',email:'sarah.johnson@company.com',name:'Sarah Johnson',role:'MANAGER',department:'IT Operations',lastLogin:'2024-01-15 08:20',status:'active',avatar:null,created:'2024-01-03',permissions:['Reporting','Management','Approval']},{id:4,username:'mike.davis',email:'mike.davis@company.com',name:'Mike Davis',role:'IT_STAFF',department:'Applications',lastLogin:'2024-01-14 16:30',status:'active',avatar:null,created:'2024-01-04',permissions:['Incident Management','Problem Management']},{id:5,username:'lisa.wilson',email:'lisa.wilson@company.com',name:'Lisa Wilson',role:'END_USER',department:'HR',lastLogin:'2024-01-15 11:15',status:'active',avatar:null,created:'2024-01-05',permissions:['Self-Service','Knowledge Base']},{id:6,username:'auditor1',email:'auditor1@company.com',name:'Audit Specialist',role:'AUDITOR',department:'Compliance',lastLogin:'2024-01-14 14:20',status:'active',avatar:null,created:'2024-01-06',permissions:['Audit','Compliance','Reporting']}];const UserManagement=()=>{var _ROLES6;const[users,setUsers]=useState(mockUsers);const[searchTerm,setSearchTerm]=useState('');const[roleFilter,setRoleFilter]=useState('All');const[statusFilter,setStatusFilter]=useState('All');const[selectedUser,setSelectedUser]=useState(null);const[userDialogOpen,setUserDialogOpen]=useState(false);const[newUser,setNewUser]=useState({username:'',email:'',name:'',role:'END_USER',department:'',status:'active'});const columns=[{field:'id',headerName:'ID',width:80},{field:'avatar',headerName:'Avatar',width:80,renderCell:params=>/*#__PURE__*/_jsx(Avatar,{sx:{width:32,height:32,bgcolor:'primary.main'},children:params.row.name.charAt(0)})},{field:'name',headerName:'Name',width:200},{field:'username',headerName:'Username',width:150},{field:'email',headerName:'Email',width:250},{field:'role',headerName:'Role',width:120,renderCell:params=>{var _ROLES,_ROLES2;return/*#__PURE__*/_jsx(Chip,{label:((_ROLES=ROLES[params.row.role])===null||_ROLES===void 0?void 0:_ROLES.name)||params.row.role,size:\"small\",sx:{bgcolor:((_ROLES2=ROLES[params.row.role])===null||_ROLES2===void 0?void 0:_ROLES2.color)||'default',color:'white'}});}},{field:'department',headerName:'Department',width:150},{field:'status',headerName:'Status',width:100,renderCell:params=>/*#__PURE__*/_jsx(Chip,{label:params.row.status,size:\"small\",color:params.row.status==='active'?'success':'error'})},{field:'lastLogin',headerName:'Last Login',width:150},{field:'actions',headerName:'Actions',width:120,renderCell:params=>/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsx(IconButton,{size:\"small\",onClick:()=>handleEditUser(params.row),children:/*#__PURE__*/_jsx(Edit,{})}),/*#__PURE__*/_jsx(IconButton,{size:\"small\",onClick:()=>handleDeleteUser(params.row.id),children:/*#__PURE__*/_jsx(Delete,{})})]})}];const handleEditUser=user=>{setSelectedUser(user);setNewUser(user);setUserDialogOpen(true);};const handleDeleteUser=userId=>{if(window.confirm('Are you sure you want to delete this user?')){setUsers(users.filter(u=>u.id!==userId));}};const handleCreateUser=()=>{setSelectedUser(null);setNewUser({username:'',email:'',name:'',role:'END_USER',department:'',status:'active'});setUserDialogOpen(true);};const handleSaveUser=()=>{if(selectedUser){// Update existing user\nsetUsers(users.map(u=>u.id===selectedUser.id?_objectSpread(_objectSpread(_objectSpread({},u),newUser),{},{id:selectedUser.id}):u));}else{var _ROLES3;// Create new user\nconst newId=Math.max(...users.map(u=>u.id))+1;setUsers([...users,_objectSpread(_objectSpread({},newUser),{},{id:newId,lastLogin:'Never',avatar:null,created:new Date().toISOString().split('T')[0],permissions:((_ROLES3=ROLES[newUser.role])===null||_ROLES3===void 0?void 0:_ROLES3.permissions)||[]})]);}setUserDialogOpen(false);};const getRoleStats=()=>{const stats={};Object.keys(ROLES).forEach(role=>{stats[role]=users.filter(u=>u.role===role).length;});return stats;};const filteredUsers=users.filter(user=>{const matchesSearch=user.name.toLowerCase().includes(searchTerm.toLowerCase())||user.username.toLowerCase().includes(searchTerm.toLowerCase())||user.email.toLowerCase().includes(searchTerm.toLowerCase());const matchesRole=roleFilter==='All'||user.role===roleFilter;const matchesStatus=statusFilter==='All'||user.status===statusFilter;return matchesSearch&&matchesRole&&matchesStatus;});const roleStats=getRoleStats();return/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',justifyContent:'space-between',alignItems:'center',mb:3},children:[/*#__PURE__*/_jsx(Typography,{variant:\"h4\",gutterBottom:true,children:\"User Management\"}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",startIcon:/*#__PURE__*/_jsx(Add,{}),onClick:handleCreateUser,children:\"Add User\"})]}),/*#__PURE__*/_jsx(Grid,{container:true,spacing:3,sx:{mb:3},children:Object.entries(roleStats).map(_ref=>{var _ROLES4,_ROLES5;let[role,count]=_ref;return/*#__PURE__*/_jsx(Grid,{item:true,xs:12,sm:6,md:2.4,children:/*#__PURE__*/_jsx(Card,{children:/*#__PURE__*/_jsxs(CardContent,{sx:{textAlign:'center'},children:[/*#__PURE__*/_jsx(Typography,{variant:\"h4\",sx:{color:(_ROLES4=ROLES[role])===null||_ROLES4===void 0?void 0:_ROLES4.color},children:count}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",children:(_ROLES5=ROLES[role])===null||_ROLES5===void 0?void 0:_ROLES5.name})]})})},role);})}),/*#__PURE__*/_jsx(Paper,{sx:{p:2,mb:3},children:/*#__PURE__*/_jsxs(Grid,{container:true,spacing:2,alignItems:\"center\",children:[/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:4,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,placeholder:\"Search users...\",value:searchTerm,onChange:e=>setSearchTerm(e.target.value),InputProps:{startAdornment:/*#__PURE__*/_jsx(InputAdornment,{position:\"start\",children:/*#__PURE__*/_jsx(Search,{})})}})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:3,children:/*#__PURE__*/_jsxs(FormControl,{fullWidth:true,children:[/*#__PURE__*/_jsx(InputLabel,{children:\"Role\"}),/*#__PURE__*/_jsxs(Select,{value:roleFilter,label:\"Role\",onChange:e=>setRoleFilter(e.target.value),children:[/*#__PURE__*/_jsx(MenuItem,{value:\"All\",children:\"All Roles\"}),Object.entries(ROLES).map(_ref2=>{let[key,role]=_ref2;return/*#__PURE__*/_jsx(MenuItem,{value:key,children:role.name},key);})]})]})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:3,children:/*#__PURE__*/_jsxs(FormControl,{fullWidth:true,children:[/*#__PURE__*/_jsx(InputLabel,{children:\"Status\"}),/*#__PURE__*/_jsxs(Select,{value:statusFilter,label:\"Status\",onChange:e=>setStatusFilter(e.target.value),children:[/*#__PURE__*/_jsx(MenuItem,{value:\"All\",children:\"All Status\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"active\",children:\"Active\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"inactive\",children:\"Inactive\"})]})]})})]})}),/*#__PURE__*/_jsx(Paper,{sx:{p:2},children:/*#__PURE__*/_jsx(DataGrid,{rows:filteredUsers,columns:columns,pageSize:10,rowsPerPageOptions:[10,25,50],checkboxSelection:true,disableSelectionOnClick:true,sx:{height:400}})}),/*#__PURE__*/_jsxs(Dialog,{open:userDialogOpen,onClose:()=>setUserDialogOpen(false),maxWidth:\"md\",fullWidth:true,children:[/*#__PURE__*/_jsx(DialogTitle,{children:selectedUser?'Edit User':'Create New User'}),/*#__PURE__*/_jsx(DialogContent,{children:/*#__PURE__*/_jsxs(Grid,{container:true,spacing:2,sx:{mt:1},children:[/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"Username\",value:newUser.username,onChange:e=>setNewUser(prev=>_objectSpread(_objectSpread({},prev),{},{username:e.target.value})),required:true})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"Email\",type:\"email\",value:newUser.email,onChange:e=>setNewUser(prev=>_objectSpread(_objectSpread({},prev),{},{email:e.target.value})),required:true})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"Full Name\",value:newUser.name,onChange:e=>setNewUser(prev=>_objectSpread(_objectSpread({},prev),{},{name:e.target.value})),required:true})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"Department\",value:newUser.department,onChange:e=>setNewUser(prev=>_objectSpread(_objectSpread({},prev),{},{department:e.target.value}))})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsxs(FormControl,{fullWidth:true,required:true,children:[/*#__PURE__*/_jsx(InputLabel,{children:\"Role\"}),/*#__PURE__*/_jsx(Select,{value:newUser.role,label:\"Role\",onChange:e=>setNewUser(prev=>_objectSpread(_objectSpread({},prev),{},{role:e.target.value})),children:Object.entries(ROLES).map(_ref3=>{let[key,role]=_ref3;return/*#__PURE__*/_jsx(MenuItem,{value:key,children:/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center'},children:[/*#__PURE__*/_jsx(Box,{sx:{width:12,height:12,borderRadius:'50%',bgcolor:role.color,mr:1}}),role.name]})},key);})})]})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsxs(FormControl,{fullWidth:true,children:[/*#__PURE__*/_jsx(InputLabel,{children:\"Status\"}),/*#__PURE__*/_jsxs(Select,{value:newUser.status,label:\"Status\",onChange:e=>setNewUser(prev=>_objectSpread(_objectSpread({},prev),{},{status:e.target.value})),children:[/*#__PURE__*/_jsx(MenuItem,{value:\"active\",children:\"Active\"}),/*#__PURE__*/_jsx(MenuItem,{value:\"inactive\",children:\"Inactive\"})]})]})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,children:/*#__PURE__*/_jsxs(Alert,{severity:\"info\",children:[/*#__PURE__*/_jsx(Typography,{variant:\"subtitle2\",children:\"Role Permissions:\"}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",children:((_ROLES6=ROLES[newUser.role])===null||_ROLES6===void 0?void 0:_ROLES6.permissions.join(', '))||'No permissions'})]})})]})}),/*#__PURE__*/_jsxs(DialogActions,{children:[/*#__PURE__*/_jsx(Button,{onClick:()=>setUserDialogOpen(false),children:\"Cancel\"}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",onClick:handleSaveUser,children:selectedUser?'Update':'Create'})]})]})]});};export default UserManagement;","map":{"version":3,"names":["React","useState","Grid","Paper","Typography","Box","Button","Chip","IconButton","TextField","InputAdornment","FormControl","InputLabel","Select","MenuItem","Dialog","DialogTitle","DialogContent","DialogActions","Avatar","Alert","Card","CardContent","Search","Add","Edit","Delete","DataGrid","ROLES","jsx","_jsx","jsxs","_jsxs","mockUsers","id","username","email","name","role","department","lastLogin","status","avatar","created","permissions","UserManagement","_ROLES6","users","setUsers","searchTerm","setSearchTerm","roleFilter","setRoleFilter","statusFilter","setStatusFilter","selectedUser","setSelectedUser","userDialogOpen","setUserDialogOpen","newUser","setNewUser","columns","field","headerName","width","renderCell","params","sx","height","bgcolor","children","row","charAt","_ROLES","_ROLES2","label","size","color","onClick","handleEditUser","handleDeleteUser","user","userId","window","confirm","filter","u","handleCreateUser","handleSaveUser","map","_objectSpread","_ROLES3","newId","Math","max","Date","toISOString","split","getRoleStats","stats","Object","keys","forEach","length","filteredUsers","matchesSearch","toLowerCase","includes","matchesRole","matchesStatus","roleStats","display","justifyContent","alignItems","mb","variant","gutterBottom","startIcon","container","spacing","entries","_ref","_ROLES4","_ROLES5","count","item","xs","sm","md","textAlign","p","fullWidth","placeholder","value","onChange","e","target","InputProps","startAdornment","position","_ref2","key","rows","pageSize","rowsPerPageOptions","checkboxSelection","disableSelectionOnClick","open","onClose","maxWidth","mt","prev","required","type","_ref3","borderRadius","mr","severity","join"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/src/pages/Admin/UserManagement.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Grid,\n Paper,\n Typography,\n Box,\n Button,\n Chip,\n IconButton,\n TextField,\n InputAdornment,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Avatar,\n Alert,\n Card,\n CardContent,\n} from '@mui/material';\nimport {\n Search,\n Add,\n Edit,\n Delete,\n} from '@mui/icons-material';\nimport { DataGrid } from '@mui/x-data-grid';\nimport { ROLES } from '../../components/Auth/AuthContext';\n\nconst mockUsers = [\n {\n id: 1,\n username: 'admin',\n email: 'admin@company.com',\n name: 'System Administrator',\n role: 'ADMIN',\n department: 'IT',\n lastLogin: '2024-01-15 10:30',\n status: 'active',\n avatar: null,\n created: '2024-01-01',\n permissions: ['All Permissions']\n },\n {\n id: 2,\n username: 'john.smith',\n email: 'john.smith@company.com',\n name: 'John Smith',\n role: 'IT_STAFF',\n department: 'Infrastructure',\n lastLogin: '2024-01-15 09:45',\n status: 'active',\n avatar: null,\n created: '2024-01-02',\n permissions: ['Incident Management', 'Problem Management', 'Change Management']\n },\n {\n id: 3,\n username: 'sarah.johnson',\n email: 'sarah.johnson@company.com',\n name: 'Sarah Johnson',\n role: 'MANAGER',\n department: 'IT Operations',\n lastLogin: '2024-01-15 08:20',\n status: 'active',\n avatar: null,\n created: '2024-01-03',\n permissions: ['Reporting', 'Management', 'Approval']\n },\n {\n id: 4,\n username: 'mike.davis',\n email: 'mike.davis@company.com',\n name: 'Mike Davis',\n role: 'IT_STAFF',\n department: 'Applications',\n lastLogin: '2024-01-14 16:30',\n status: 'active',\n avatar: null,\n created: '2024-01-04',\n permissions: ['Incident Management', 'Problem Management']\n },\n {\n id: 5,\n username: 'lisa.wilson',\n email: 'lisa.wilson@company.com',\n name: 'Lisa Wilson',\n role: 'END_USER',\n department: 'HR',\n lastLogin: '2024-01-15 11:15',\n status: 'active',\n avatar: null,\n created: '2024-01-05',\n permissions: ['Self-Service', 'Knowledge Base']\n },\n {\n id: 6,\n username: 'auditor1',\n email: 'auditor1@company.com',\n name: 'Audit Specialist',\n role: 'AUDITOR',\n department: 'Compliance',\n lastLogin: '2024-01-14 14:20',\n status: 'active',\n avatar: null,\n created: '2024-01-06',\n permissions: ['Audit', 'Compliance', 'Reporting']\n }\n];\n\nconst UserManagement: React.FC = () => {\n const [users, setUsers] = useState(mockUsers);\n const [searchTerm, setSearchTerm] = useState('');\n const [roleFilter, setRoleFilter] = useState('All');\n const [statusFilter, setStatusFilter] = useState('All');\n const [selectedUser, setSelectedUser] = useState<any>(null);\n const [userDialogOpen, setUserDialogOpen] = useState<boolean>(false);\n const [newUser, setNewUser] = useState({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n\n const columns = [\n { field: 'id', headerName: 'ID', width: 80 },\n {\n field: 'avatar',\n headerName: 'Avatar',\n width: 80,\n renderCell: (params: any) => (\n <Avatar sx={{ width: 32, height: 32, bgcolor: 'primary.main' }}>\n {params.row.name.charAt(0)}\n </Avatar>\n ),\n },\n { field: 'name', headerName: 'Name', width: 200 },\n { field: 'username', headerName: 'Username', width: 150 },\n { field: 'email', headerName: 'Email', width: 250 },\n {\n field: 'role',\n headerName: 'Role',\n width: 120,\n renderCell: (params: any) => (\n <Chip\n label={ROLES[params.row.role as keyof typeof ROLES]?.name || params.row.role}\n size=\"small\"\n sx={{\n bgcolor: ROLES[params.row.role as keyof typeof ROLES]?.color || 'default',\n color: 'white'\n }}\n />\n ),\n },\n { field: 'department', headerName: 'Department', width: 150 },\n {\n field: 'status',\n headerName: 'Status',\n width: 100,\n renderCell: (params: any) => (\n <Chip\n label={params.row.status}\n size=\"small\"\n color={params.row.status === 'active' ? 'success' : 'error'}\n />\n ),\n },\n { field: 'lastLogin', headerName: 'Last Login', width: 150 },\n {\n field: 'actions',\n headerName: 'Actions',\n width: 120,\n renderCell: (params: any) => (\n <Box>\n <IconButton size=\"small\" onClick={() => handleEditUser(params.row)}>\n <Edit />\n </IconButton>\n <IconButton size=\"small\" onClick={() => handleDeleteUser(params.row.id)}>\n <Delete />\n </IconButton>\n </Box>\n ),\n },\n ];\n\n const handleEditUser = (user: any) => {\n setSelectedUser(user);\n setNewUser(user);\n setUserDialogOpen(true);\n };\n\n const handleDeleteUser = (userId: any) => {\n if (window.confirm('Are you sure you want to delete this user?')) {\n setUsers(users.filter(u => u.id !== userId));\n }\n };\n\n const handleCreateUser = () => {\n setSelectedUser(null);\n setNewUser({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n setUserDialogOpen(true);\n };\n\n const handleSaveUser = () => {\n if (selectedUser) {\n // Update existing user\n setUsers(users.map(u => u.id === selectedUser.id ? { \n ...u,\n ...newUser, \n id: selectedUser.id \n } : u));\n } else {\n // Create new user\n const newId = Math.max(...users.map(u => u.id)) + 1;\n setUsers([...users, { \n ...newUser, \n id: newId, \n lastLogin: 'Never',\n avatar: null,\n created: new Date().toISOString().split('T')[0],\n permissions: ROLES[newUser.role as keyof typeof ROLES]?.permissions || []\n }]);\n }\n setUserDialogOpen(false);\n };\n\n const getRoleStats = () => {\n const stats: { [key: string]: number } = {};\n Object.keys(ROLES).forEach(role => {\n stats[role] = users.filter(u => u.role === role).length;\n });\n return stats;\n };\n\n const filteredUsers = users.filter(user => {\n const matchesSearch = user.name.toLowerCase().includes(searchTerm.toLowerCase()) ||\n user.username.toLowerCase().includes(searchTerm.toLowerCase()) ||\n user.email.toLowerCase().includes(searchTerm.toLowerCase());\n const matchesRole = roleFilter === 'All' || user.role === roleFilter;\n const matchesStatus = statusFilter === 'All' || user.status === statusFilter;\n return matchesSearch && matchesRole && matchesStatus;\n });\n\n const roleStats = getRoleStats();\n\n return (\n <Box>\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 3 }}>\n <Typography variant=\"h4\" gutterBottom>\n User Management\n </Typography>\n <Button\n variant=\"contained\"\n startIcon={<Add />}\n onClick={handleCreateUser}\n >\n Add User\n </Button>\n </Box>\n\n {/* Role Statistics */}\n <Grid container spacing={3} sx={{ mb: 3 }}>\n {Object.entries(roleStats).map(([role, count]) => (\n <Grid item xs={12} sm={6} md={2.4} key={role}>\n <Card>\n <CardContent sx={{ textAlign: 'center' }}>\n <Typography variant=\"h4\" sx={{ color: ROLES[role as keyof typeof ROLES]?.color }}>\n {count as number}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {ROLES[role as keyof typeof ROLES]?.name}\n </Typography>\n </CardContent>\n </Card>\n </Grid>\n ))}\n </Grid>\n\n {/* Filters */}\n <Paper sx={{ p: 2, mb: 3 }}>\n <Grid container spacing={2} alignItems=\"center\">\n <Grid item xs={12} md={4}>\n <TextField\n fullWidth\n placeholder=\"Search users...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <Search />\n </InputAdornment>\n ),\n }}\n />\n </Grid>\n <Grid item xs={12} md={3}>\n <FormControl fullWidth>\n <InputLabel>Role</InputLabel>\n <Select\n value={roleFilter}\n label=\"Role\"\n onChange={(e) => setRoleFilter(e.target.value)}\n >\n <MenuItem value=\"All\">All Roles</MenuItem>\n {Object.entries(ROLES).map(([key, role]) => (\n <MenuItem key={key} value={key}>{role.name}</MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12} md={3}>\n <FormControl fullWidth>\n <InputLabel>Status</InputLabel>\n <Select\n value={statusFilter}\n label=\"Status\"\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <MenuItem value=\"All\">All Status</MenuItem>\n <MenuItem value=\"active\">Active</MenuItem>\n <MenuItem value=\"inactive\">Inactive</MenuItem>\n </Select>\n </FormControl>\n </Grid>\n </Grid>\n </Paper>\n\n {/* Users Table */}\n <Paper sx={{ p: 2 }}>\n <DataGrid\n rows={filteredUsers}\n columns={columns}\n pageSize={10}\n rowsPerPageOptions={[10, 25, 50]}\n checkboxSelection\n disableSelectionOnClick\n sx={{ height: 400 }}\n />\n </Paper>\n\n {/* User Dialog */}\n <Dialog open={userDialogOpen} onClose={() => setUserDialogOpen(false)} maxWidth=\"md\" fullWidth>\n <DialogTitle>\n {selectedUser ? 'Edit User' : 'Create New User'}\n </DialogTitle>\n <DialogContent>\n <Grid container spacing={2} sx={{ mt: 1 }}>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Username\"\n value={newUser.username}\n onChange={(e) => setNewUser(prev => ({ ...prev, username: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Email\"\n type=\"email\"\n value={newUser.email}\n onChange={(e) => setNewUser(prev => ({ ...prev, email: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Full Name\"\n value={newUser.name}\n onChange={(e) => setNewUser(prev => ({ ...prev, name: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Department\"\n value={newUser.department}\n onChange={(e) => setNewUser(prev => ({ ...prev, department: e.target.value }))}\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <FormControl fullWidth required>\n <InputLabel>Role</InputLabel>\n <Select\n value={newUser.role}\n label=\"Role\"\n onChange={(e) => setNewUser(prev => ({ ...prev, role: e.target.value }))}\n >\n {Object.entries(ROLES).map(([key, role]) => (\n <MenuItem key={key} value={key}>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Box\n sx={{\n width: 12,\n height: 12,\n borderRadius: '50%',\n bgcolor: role.color,\n mr: 1,\n }}\n />\n {role.name}\n </Box>\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12} md={6}>\n <FormControl fullWidth>\n <InputLabel>Status</InputLabel>\n <Select\n value={newUser.status}\n label=\"Status\"\n onChange={(e) => setNewUser(prev => ({ ...prev, status: e.target.value }))}\n >\n <MenuItem value=\"active\">Active</MenuItem>\n <MenuItem value=\"inactive\">Inactive</MenuItem>\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography variant=\"subtitle2\">Role Permissions:</Typography>\n <Typography variant=\"body2\">\n {ROLES[newUser.role as keyof typeof ROLES]?.permissions.join(', ') || 'No permissions'}\n </Typography>\n </Alert>\n </Grid>\n </Grid>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setUserDialogOpen(false)}>Cancel</Button>\n <Button variant=\"contained\" onClick={handleSaveUser}>\n {selectedUser ? 'Update' : 'Create'}\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n );\n}\n\nexport default UserManagement;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}