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

1 line
48 KiB
JSON

{"ast":null,"code":"var _jsxFileName = \"/home/gnx/Desktop/ETB/ETB-FrontEnd/src/components/Layout/Layout.tsx\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { AppBar, Box, CssBaseline, Drawer, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, Toolbar, Typography, Collapse, Divider, Avatar, Menu, MenuItem, Chip } from '@mui/material';\nimport { Menu as MenuIcon, Dashboard as DashboardIcon, BugReport as IncidentIcon, Build as ProblemIcon, SwapHoriz as ChangeIcon, Store as ServiceIcon, Storage as CMDBIcon, MenuBook as KnowledgeIcon, Assessment as ReportingIcon, Security as SecurityIcon, SmartToy as AutomationIcon, AdminPanelSettings as AdminIcon, ExpandLess, ExpandMore, AccountCircle, Logout, Assessment as AssessmentIcon, DarkMode, LightMode } from '@mui/icons-material';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport { useAuth } from '../Auth/AuthContext';\nimport { useTheme } from '../../theme/ThemeProvider';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst drawerWidth = 280;\nconst menuItems = [{\n text: 'Dashboard',\n icon: /*#__PURE__*/_jsxDEV(DashboardIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 11\n }, this),\n path: '/'\n}, {\n text: 'Incident Management',\n icon: /*#__PURE__*/_jsxDEV(IncidentIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 11\n }, this),\n path: '/incident-management',\n children: [{\n text: 'Dashboard',\n path: '/incident-management'\n }, {\n text: 'Incident Logging',\n path: '/incident-management/logging'\n }, {\n text: 'Incident Tracking',\n path: '/incident-management/tracking'\n }, {\n text: 'Lifecycle Management',\n path: '/incident-management/lifecycle'\n }, {\n text: 'Self-Service Portal',\n path: '/incident-management/self-service'\n }]\n}, {\n text: 'Problem Management',\n icon: /*#__PURE__*/_jsxDEV(ProblemIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 11\n }, this),\n path: '/problem-management',\n children: [{\n text: 'Dashboard',\n path: '/problem-management'\n }, {\n text: 'Root Cause Analysis',\n path: '/problem-management/root-cause'\n }, {\n text: 'Problem Records',\n path: '/problem-management/records'\n }]\n}, {\n text: 'Change Management',\n icon: /*#__PURE__*/_jsxDEV(ChangeIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 11\n }, this),\n path: '/change-management',\n children: [{\n text: 'Dashboard',\n path: '/change-management'\n }, {\n text: 'Change Requests',\n path: '/change-management/requests'\n }, {\n text: 'Release Management',\n path: '/change-management/releases'\n }]\n}, {\n text: 'Service Catalog',\n icon: /*#__PURE__*/_jsxDEV(ServiceIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 11\n }, this),\n path: '/service-catalog',\n children: [{\n text: 'Service Catalog',\n path: '/service-catalog'\n }, {\n text: 'Service Portal',\n path: '/service-portal'\n }]\n}, {\n text: 'Configuration Management',\n icon: /*#__PURE__*/_jsxDEV(CMDBIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 11\n }, this),\n path: '/cmdb',\n children: [{\n text: 'Dashboard',\n path: '/cmdb'\n }, {\n text: 'Configuration Items',\n path: '/cmdb/configuration-items'\n }, {\n text: 'Impact Analysis',\n path: '/cmdb/impact-analysis'\n }, {\n text: 'Dependency Mapping',\n path: '/cmdb/dependency-mapping'\n }]\n}, {\n text: 'Knowledge Management',\n icon: /*#__PURE__*/_jsxDEV(KnowledgeIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 11\n }, this),\n path: '/knowledge-management',\n children: [{\n text: 'Dashboard',\n path: '/knowledge-management'\n }, {\n text: 'Knowledge Articles',\n path: '/knowledge-management/articles'\n }]\n}, {\n text: 'Reporting & Analytics',\n icon: /*#__PURE__*/_jsxDEV(ReportingIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 11\n }, this),\n path: '/reporting',\n children: [{\n text: 'Dashboard',\n path: '/reporting'\n }, {\n text: 'Analytics',\n path: '/reporting/analytics'\n }, {\n text: 'Advanced Reporting',\n path: '/reporting/advanced'\n }]\n}, {\n text: 'Security & Compliance',\n icon: /*#__PURE__*/_jsxDEV(SecurityIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 11\n }, this),\n path: '/security',\n children: [{\n text: 'Dashboard',\n path: '/security'\n }, {\n text: 'Security Incidents',\n path: '/security/incidents'\n }, {\n text: 'Compliance Reports',\n path: '/security/compliance'\n }]\n}, {\n text: 'Automation & AI',\n icon: /*#__PURE__*/_jsxDEV(AutomationIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 11\n }, this),\n path: '/automation',\n children: [{\n text: 'Dashboard',\n path: '/automation'\n }, {\n text: 'Virtual Agent',\n path: '/automation/virtual-agent'\n }, {\n text: 'Workflow Automation',\n path: '/automation/workflows'\n }]\n}, {\n text: 'Administration',\n icon: /*#__PURE__*/_jsxDEV(AdminIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this),\n path: '/admin',\n children: [{\n text: 'Dashboard',\n path: '/admin'\n }, {\n text: 'User Management',\n path: '/admin/users'\n }, {\n text: 'SLA Management',\n path: '/admin/sla'\n }, {\n text: 'Integrations',\n path: '/admin/integrations'\n }],\n adminOnly: true\n}, {\n text: 'Executive Dashboard',\n icon: /*#__PURE__*/_jsxDEV(AssessmentIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this),\n path: '/executive',\n executiveOnly: true\n}];\nconst Layout = ({\n children\n}) => {\n _s();\n var _user$roleData, _user$roleData2, _user$name;\n const [mobileOpen, setMobileOpen] = useState(false);\n const [openMenus, setOpenMenus] = useState({});\n const [userMenuAnchor, setUserMenuAnchor] = useState(null);\n const navigate = useNavigate();\n const location = useLocation();\n const {\n user,\n logout,\n hasModuleAccess,\n hasPermission\n } = useAuth();\n const {\n mode,\n toggleMode\n } = useTheme();\n const handleDrawerToggle = () => {\n setMobileOpen(!mobileOpen);\n };\n const handleMenuToggle = menuText => {\n setOpenMenus(prev => ({\n ...prev,\n [menuText]: !prev[menuText]\n }));\n };\n const handleNavigation = path => {\n navigate(path);\n setMobileOpen(false);\n };\n const handleUserMenuOpen = event => {\n setUserMenuAnchor(event.currentTarget);\n };\n const handleUserMenuClose = () => {\n setUserMenuAnchor(null);\n };\n const handleLogout = () => {\n logout();\n handleUserMenuClose();\n };\n const drawer = /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(Toolbar, {\n children: /*#__PURE__*/_jsxDEV(Typography, {\n variant: \"h6\",\n noWrap: true,\n component: \"div\",\n children: \"ETB - Enterprise IT Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Divider, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(List, {\n children: menuItems.map(item => {\n // Check if user has access to admin modules\n if (item.adminOnly && !hasModuleAccess('admin')) {\n return null;\n }\n\n // Check if user has access to executive modules\n if (item.executiveOnly && !hasPermission('executive.view')) {\n return null;\n }\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(ListItem, {\n disablePadding: true,\n children: /*#__PURE__*/_jsxDEV(ListItemButton, {\n onClick: () => {\n if (item.children) {\n handleMenuToggle(item.text);\n } else {\n handleNavigation(item.path);\n }\n },\n selected: location.pathname === item.path,\n children: [/*#__PURE__*/_jsxDEV(ListItemIcon, {\n children: item.icon\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(ListItemText, {\n primary: item.text\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 19\n }, this), item.children && (openMenus[item.text] ? /*#__PURE__*/_jsxDEV(ExpandLess, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 44\n }, this) : /*#__PURE__*/_jsxDEV(ExpandMore, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 61\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 15\n }, this), item.children && /*#__PURE__*/_jsxDEV(Collapse, {\n in: openMenus[item.text],\n timeout: \"auto\",\n unmountOnExit: true,\n children: /*#__PURE__*/_jsxDEV(List, {\n component: \"div\",\n disablePadding: true,\n children: item.children.map(child => /*#__PURE__*/_jsxDEV(ListItemButton, {\n sx: {\n pl: 4\n },\n onClick: () => handleNavigation(child.path),\n selected: location.pathname === child.path,\n children: /*#__PURE__*/_jsxDEV(ListItemText, {\n primary: child.text\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 25\n }, this)\n }, child.text, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 17\n }, this)]\n }, item.text, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 5\n }, this);\n return /*#__PURE__*/_jsxDEV(Box, {\n sx: {\n display: 'flex'\n },\n children: [/*#__PURE__*/_jsxDEV(CssBaseline, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 290,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(AppBar, {\n position: \"fixed\",\n sx: {\n width: {\n sm: `calc(100% - ${drawerWidth}px)`\n },\n ml: {\n sm: `${drawerWidth}px`\n }\n },\n children: /*#__PURE__*/_jsxDEV(Toolbar, {\n children: [/*#__PURE__*/_jsxDEV(IconButton, {\n color: \"inherit\",\n \"aria-label\": \"open drawer\",\n edge: \"start\",\n onClick: handleDrawerToggle,\n sx: {\n mr: 2,\n display: {\n sm: 'none'\n }\n },\n children: /*#__PURE__*/_jsxDEV(MenuIcon, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 306,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Typography, {\n variant: \"h6\",\n noWrap: true,\n component: \"div\",\n sx: {\n flexGrow: 1\n },\n children: \"Enterprise IT Services Management System\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 308,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Box, {\n sx: {\n display: 'flex',\n alignItems: 'center',\n gap: 2\n },\n children: [/*#__PURE__*/_jsxDEV(IconButton, {\n onClick: toggleMode,\n sx: {\n color: 'inherit',\n transition: 'transform 0.2s ease-in-out',\n '&:hover': {\n transform: 'scale(1.1)'\n }\n },\n children: mode === 'light' ? /*#__PURE__*/_jsxDEV(DarkMode, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 322,\n columnNumber: 35\n }, this) : /*#__PURE__*/_jsxDEV(LightMode, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 322,\n columnNumber: 50\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Chip, {\n label: (user === null || user === void 0 ? void 0 : (_user$roleData = user.roleData) === null || _user$roleData === void 0 ? void 0 : _user$roleData.name) || 'User',\n size: \"small\",\n sx: {\n bgcolor: (user === null || user === void 0 ? void 0 : (_user$roleData2 = user.roleData) === null || _user$roleData2 === void 0 ? void 0 : _user$roleData2.color) || 'default',\n color: 'white',\n fontWeight: 600\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 324,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(IconButton, {\n color: \"inherit\",\n onClick: handleUserMenuOpen,\n sx: {\n transition: 'transform 0.2s ease-in-out',\n '&:hover': {\n transform: 'scale(1.05)'\n }\n },\n children: /*#__PURE__*/_jsxDEV(Avatar, {\n sx: {\n width: 32,\n height: 32,\n bgcolor: 'secondary.main'\n },\n children: (user === null || user === void 0 ? void 0 : (_user$name = user.name) === null || _user$name === void 0 ? void 0 : _user$name.charAt(0)) || 'U'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 343,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 291,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Box, {\n component: \"nav\",\n sx: {\n width: {\n sm: drawerWidth\n },\n flexShrink: {\n sm: 0\n }\n },\n \"aria-label\": \"mailbox folders\",\n children: [/*#__PURE__*/_jsxDEV(Drawer, {\n variant: \"temporary\",\n open: mobileOpen,\n onClose: handleDrawerToggle,\n ModalProps: {\n keepMounted: true\n },\n sx: {\n display: {\n xs: 'block',\n sm: 'none'\n },\n '& .MuiDrawer-paper': {\n boxSizing: 'border-box',\n width: drawerWidth\n }\n },\n children: drawer\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 355,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Drawer, {\n variant: \"permanent\",\n sx: {\n display: {\n xs: 'none',\n sm: 'block'\n },\n '& .MuiDrawer-paper': {\n boxSizing: 'border-box',\n width: drawerWidth\n }\n },\n open: true,\n children: drawer\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 369,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Box, {\n component: \"main\",\n sx: {\n flexGrow: 1,\n p: 3,\n width: {\n sm: `calc(100% - ${drawerWidth}px)`\n }\n },\n children: [/*#__PURE__*/_jsxDEV(Toolbar, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 388,\n columnNumber: 9\n }, this), children]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 380,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Menu, {\n anchorEl: userMenuAnchor,\n open: Boolean(userMenuAnchor),\n onClose: handleUserMenuClose,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right'\n },\n children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n disabled: true,\n children: [/*#__PURE__*/_jsxDEV(ListItemIcon, {\n children: /*#__PURE__*/_jsxDEV(AccountCircle, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 408,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 407,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(ListItemText, {\n primary: user === null || user === void 0 ? void 0 : user.name,\n secondary: user === null || user === void 0 ? void 0 : user.email\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 410,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 406,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Divider, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 415,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n onClick: handleLogout,\n children: [/*#__PURE__*/_jsxDEV(ListItemIcon, {\n children: /*#__PURE__*/_jsxDEV(Logout, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 418,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 417,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(ListItemText, {\n primary: \"Logout\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 420,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 416,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 393,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 5\n }, this);\n};\n_s(Layout, \"YoEXiAItlYuU4nxWmLKLbUN1eR0=\", false, function () {\n return [useNavigate, useLocation, useAuth, useTheme];\n});\n_c = Layout;\nexport default Layout;\nvar _c;\n$RefreshReg$(_c, \"Layout\");","map":{"version":3,"names":["React","useState","AppBar","Box","CssBaseline","Drawer","IconButton","List","ListItem","ListItemButton","ListItemIcon","ListItemText","Toolbar","Typography","Collapse","Divider","Avatar","Menu","MenuItem","Chip","MenuIcon","Dashboard","DashboardIcon","BugReport","IncidentIcon","Build","ProblemIcon","SwapHoriz","ChangeIcon","Store","ServiceIcon","Storage","CMDBIcon","MenuBook","KnowledgeIcon","Assessment","ReportingIcon","Security","SecurityIcon","SmartToy","AutomationIcon","AdminPanelSettings","AdminIcon","ExpandLess","ExpandMore","AccountCircle","Logout","AssessmentIcon","DarkMode","LightMode","useNavigate","useLocation","useAuth","useTheme","jsxDEV","_jsxDEV","drawerWidth","menuItems","text","icon","fileName","_jsxFileName","lineNumber","columnNumber","path","children","adminOnly","executiveOnly","Layout","_s","_user$roleData","_user$roleData2","_user$name","mobileOpen","setMobileOpen","openMenus","setOpenMenus","userMenuAnchor","setUserMenuAnchor","navigate","location","user","logout","hasModuleAccess","hasPermission","mode","toggleMode","handleDrawerToggle","handleMenuToggle","menuText","prev","handleNavigation","handleUserMenuOpen","event","currentTarget","handleUserMenuClose","handleLogout","drawer","variant","noWrap","component","map","item","disablePadding","onClick","selected","pathname","primary","in","timeout","unmountOnExit","child","sx","pl","display","position","width","sm","ml","color","edge","mr","flexGrow","alignItems","gap","transition","transform","label","roleData","name","size","bgcolor","fontWeight","height","charAt","flexShrink","open","onClose","ModalProps","keepMounted","xs","boxSizing","p","anchorEl","Boolean","anchorOrigin","vertical","horizontal","transformOrigin","disabled","secondary","email","_c","$RefreshReg$"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/src/components/Layout/Layout.tsx"],"sourcesContent":["import React, { useState, ReactNode } from 'react';\nimport {\n AppBar,\n Box,\n CssBaseline,\n Drawer,\n IconButton,\n List,\n ListItem,\n ListItemButton,\n ListItemIcon,\n ListItemText,\n Toolbar,\n Typography,\n Collapse,\n Divider,\n Avatar,\n Menu,\n MenuItem,\n Chip,\n Switch,\n FormControlLabel,\n} from '@mui/material';\nimport {\n Menu as MenuIcon,\n Dashboard as DashboardIcon,\n BugReport as IncidentIcon,\n Build as ProblemIcon,\n SwapHoriz as ChangeIcon,\n Store as ServiceIcon,\n Storage as CMDBIcon,\n MenuBook as KnowledgeIcon,\n Assessment as ReportingIcon,\n Security as SecurityIcon,\n SmartToy as AutomationIcon,\n AdminPanelSettings as AdminIcon,\n ExpandLess,\n ExpandMore,\n AccountCircle,\n Logout,\n Assessment as AssessmentIcon,\n DarkMode,\n LightMode,\n} from '@mui/icons-material';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport { useAuth } from '../Auth/AuthContext';\nimport { useTheme } from '../../theme/ThemeProvider';\nimport { motion } from 'framer-motion';\n\nconst drawerWidth = 280;\n\ninterface MenuItemChild {\n text: string;\n path: string;\n}\n\ninterface MenuItemType {\n text: string;\n icon: React.ReactElement;\n path: string;\n children?: MenuItemChild[];\n adminOnly?: boolean;\n executiveOnly?: boolean;\n}\n\ninterface LayoutProps {\n children: ReactNode;\n}\n\nconst menuItems: MenuItemType[] = [\n {\n text: 'Dashboard',\n icon: <DashboardIcon />,\n path: '/',\n },\n {\n text: 'Incident Management',\n icon: <IncidentIcon />,\n path: '/incident-management',\n children: [\n { text: 'Dashboard', path: '/incident-management' },\n { text: 'Incident Logging', path: '/incident-management/logging' },\n { text: 'Incident Tracking', path: '/incident-management/tracking' },\n { text: 'Lifecycle Management', path: '/incident-management/lifecycle' },\n { text: 'Self-Service Portal', path: '/incident-management/self-service' },\n ],\n },\n {\n text: 'Problem Management',\n icon: <ProblemIcon />,\n path: '/problem-management',\n children: [\n { text: 'Dashboard', path: '/problem-management' },\n { text: 'Root Cause Analysis', path: '/problem-management/root-cause' },\n { text: 'Problem Records', path: '/problem-management/records' },\n ],\n },\n {\n text: 'Change Management',\n icon: <ChangeIcon />,\n path: '/change-management',\n children: [\n { text: 'Dashboard', path: '/change-management' },\n { text: 'Change Requests', path: '/change-management/requests' },\n { text: 'Release Management', path: '/change-management/releases' },\n ],\n },\n {\n text: 'Service Catalog',\n icon: <ServiceIcon />,\n path: '/service-catalog',\n children: [\n { text: 'Service Catalog', path: '/service-catalog' },\n { text: 'Service Portal', path: '/service-portal' },\n ],\n },\n {\n text: 'Configuration Management',\n icon: <CMDBIcon />,\n path: '/cmdb',\n children: [\n { text: 'Dashboard', path: '/cmdb' },\n { text: 'Configuration Items', path: '/cmdb/configuration-items' },\n { text: 'Impact Analysis', path: '/cmdb/impact-analysis' },\n { text: 'Dependency Mapping', path: '/cmdb/dependency-mapping' },\n ],\n },\n {\n text: 'Knowledge Management',\n icon: <KnowledgeIcon />,\n path: '/knowledge-management',\n children: [\n { text: 'Dashboard', path: '/knowledge-management' },\n { text: 'Knowledge Articles', path: '/knowledge-management/articles' },\n ],\n },\n {\n text: 'Reporting & Analytics',\n icon: <ReportingIcon />,\n path: '/reporting',\n children: [\n { text: 'Dashboard', path: '/reporting' },\n { text: 'Analytics', path: '/reporting/analytics' },\n { text: 'Advanced Reporting', path: '/reporting/advanced' },\n ],\n },\n {\n text: 'Security & Compliance',\n icon: <SecurityIcon />,\n path: '/security',\n children: [\n { text: 'Dashboard', path: '/security' },\n { text: 'Security Incidents', path: '/security/incidents' },\n { text: 'Compliance Reports', path: '/security/compliance' },\n ],\n },\n {\n text: 'Automation & AI',\n icon: <AutomationIcon />,\n path: '/automation',\n children: [\n { text: 'Dashboard', path: '/automation' },\n { text: 'Virtual Agent', path: '/automation/virtual-agent' },\n { text: 'Workflow Automation', path: '/automation/workflows' },\n ],\n },\n {\n text: 'Administration',\n icon: <AdminIcon />,\n path: '/admin',\n children: [\n { text: 'Dashboard', path: '/admin' },\n { text: 'User Management', path: '/admin/users' },\n { text: 'SLA Management', path: '/admin/sla' },\n { text: 'Integrations', path: '/admin/integrations' },\n ],\n adminOnly: true,\n },\n {\n text: 'Executive Dashboard',\n icon: <AssessmentIcon />,\n path: '/executive',\n executiveOnly: true,\n },\n];\n\nconst Layout: React.FC<LayoutProps> = ({ children }) => {\n const [mobileOpen, setMobileOpen] = useState<boolean>(false);\n const [openMenus, setOpenMenus] = useState<Record<string, boolean>>({});\n const [userMenuAnchor, setUserMenuAnchor] = useState<null | HTMLElement>(null);\n const navigate = useNavigate();\n const location = useLocation();\n const { user, logout, hasModuleAccess, hasPermission } = useAuth();\n const { mode, toggleMode } = useTheme();\n\n const handleDrawerToggle = (): void => {\n setMobileOpen(!mobileOpen);\n };\n\n const handleMenuToggle = (menuText: string): void => {\n setOpenMenus(prev => ({\n ...prev,\n [menuText]: !prev[menuText]\n }));\n };\n\n const handleNavigation = (path: string): void => {\n navigate(path);\n setMobileOpen(false);\n };\n\n const handleUserMenuOpen = (event: React.MouseEvent<HTMLElement>): void => {\n setUserMenuAnchor(event.currentTarget);\n };\n\n const handleUserMenuClose = (): void => {\n setUserMenuAnchor(null);\n };\n\n const handleLogout = (): void => {\n logout();\n handleUserMenuClose();\n };\n\n const drawer = (\n <div>\n <Toolbar>\n <Typography variant=\"h6\" noWrap component=\"div\">\n ETB - Enterprise IT Services\n </Typography>\n </Toolbar>\n <Divider />\n <List>\n {menuItems.map((item) => {\n // Check if user has access to admin modules\n if (item.adminOnly && !hasModuleAccess('admin')) {\n return null;\n }\n \n // Check if user has access to executive modules\n if (item.executiveOnly && !hasPermission('executive.view')) {\n return null;\n }\n \n return (\n <div key={item.text}>\n <ListItem disablePadding>\n <ListItemButton\n onClick={() => {\n if (item.children) {\n handleMenuToggle(item.text);\n } else {\n handleNavigation(item.path);\n }\n }}\n selected={location.pathname === item.path}\n >\n <ListItemIcon>{item.icon}</ListItemIcon>\n <ListItemText primary={item.text} />\n {item.children && (\n openMenus[item.text] ? <ExpandLess /> : <ExpandMore />\n )}\n </ListItemButton>\n </ListItem>\n {item.children && (\n <Collapse in={openMenus[item.text]} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding>\n {item.children.map((child) => (\n <ListItemButton\n key={child.text}\n sx={{ pl: 4 }}\n onClick={() => handleNavigation(child.path)}\n selected={location.pathname === child.path}\n >\n <ListItemText primary={child.text} />\n </ListItemButton>\n ))}\n </List>\n </Collapse>\n )}\n </div>\n );\n })}\n </List>\n </div>\n );\n\n return (\n <Box sx={{ display: 'flex' }}>\n <CssBaseline />\n <AppBar\n position=\"fixed\"\n sx={{\n width: { sm: `calc(100% - ${drawerWidth}px)` },\n ml: { sm: `${drawerWidth}px` },\n }}\n >\n <Toolbar>\n <IconButton\n color=\"inherit\"\n aria-label=\"open drawer\"\n edge=\"start\"\n onClick={handleDrawerToggle}\n sx={{ mr: 2, display: { sm: 'none' } }}\n >\n <MenuIcon />\n </IconButton>\n <Typography variant=\"h6\" noWrap component=\"div\" sx={{ flexGrow: 1 }}>\n Enterprise IT Services Management System\n </Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>\n <IconButton\n onClick={toggleMode}\n sx={{ \n color: 'inherit',\n transition: 'transform 0.2s ease-in-out',\n '&:hover': {\n transform: 'scale(1.1)',\n }\n }}\n >\n {mode === 'light' ? <DarkMode /> : <LightMode />}\n </IconButton>\n <Chip\n label={user?.roleData?.name || 'User'}\n size=\"small\"\n sx={{\n bgcolor: user?.roleData?.color || 'default',\n color: 'white',\n fontWeight: 600,\n }}\n />\n <IconButton\n color=\"inherit\"\n onClick={handleUserMenuOpen}\n sx={{\n transition: 'transform 0.2s ease-in-out',\n '&:hover': {\n transform: 'scale(1.05)',\n }\n }}\n >\n <Avatar sx={{ width: 32, height: 32, bgcolor: 'secondary.main' }}>\n {user?.name?.charAt(0) || 'U'}\n </Avatar>\n </IconButton>\n </Box>\n </Toolbar>\n </AppBar>\n <Box\n component=\"nav\"\n sx={{ width: { sm: drawerWidth }, flexShrink: { sm: 0 } }}\n aria-label=\"mailbox folders\"\n >\n <Drawer\n variant=\"temporary\"\n open={mobileOpen}\n onClose={handleDrawerToggle}\n ModalProps={{\n keepMounted: true,\n }}\n sx={{\n display: { xs: 'block', sm: 'none' },\n '& .MuiDrawer-paper': { boxSizing: 'border-box', width: drawerWidth },\n }}\n >\n {drawer}\n </Drawer>\n <Drawer\n variant=\"permanent\"\n sx={{\n display: { xs: 'none', sm: 'block' },\n '& .MuiDrawer-paper': { boxSizing: 'border-box', width: drawerWidth },\n }}\n open\n >\n {drawer}\n </Drawer>\n </Box>\n <Box\n component=\"main\"\n sx={{\n flexGrow: 1,\n p: 3,\n width: { sm: `calc(100% - ${drawerWidth}px)` },\n }}\n >\n <Toolbar />\n {children}\n </Box>\n \n {/* User Menu */}\n <Menu\n anchorEl={userMenuAnchor}\n open={Boolean(userMenuAnchor)}\n onClose={handleUserMenuClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <MenuItem disabled>\n <ListItemIcon>\n <AccountCircle />\n </ListItemIcon>\n <ListItemText\n primary={user?.name}\n secondary={user?.email}\n />\n </MenuItem>\n <Divider />\n <MenuItem onClick={handleLogout}>\n <ListItemIcon>\n <Logout />\n </ListItemIcon>\n <ListItemText primary=\"Logout\" />\n </MenuItem>\n </Menu>\n </Box>\n );\n}\n\nexport default Layout;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}