@erpsquad/common 1.10.8-test → 1.10.9-test
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{ai-summary-D9QajB4_.js → ai-summary-4NVNEHfi.js} +2 -2
- package/dist/chunks/{ai-summary-D9QajB4_.js.map → ai-summary-4NVNEHfi.js.map} +1 -1
- package/dist/chunks/{ai-summary-FqAUpafL.esm.js → ai-summary-f8clWLbW.esm.js} +65 -44
- package/dist/chunks/{ai-summary-FqAUpafL.esm.js.map → ai-summary-f8clWLbW.esm.js.map} +1 -1
- package/dist/chunks/{android-12-switch-BVabRCje.esm.js → android-12-switch-BUbQYnRQ.esm.js} +53 -35
- package/dist/chunks/{android-12-switch-BVabRCje.esm.js.map → android-12-switch-BUbQYnRQ.esm.js.map} +1 -1
- package/dist/chunks/android-12-switch-CphTHRb8.js +2 -0
- package/dist/chunks/{android-12-switch-DMaoWQwq.js.map → android-12-switch-CphTHRb8.js.map} +1 -1
- package/dist/chunks/{appbar-6Ucw59ku.js → appbar-C6Es9HGk.js} +2 -2
- package/dist/chunks/{appbar-6Ucw59ku.js.map → appbar-C6Es9HGk.js.map} +1 -1
- package/dist/chunks/{appbar-mDf1LZ0u.esm.js → appbar-CKrHdx9n.esm.js} +2 -2
- package/dist/chunks/{appbar-mDf1LZ0u.esm.js.map → appbar-CKrHdx9n.esm.js.map} +1 -1
- package/dist/chunks/{default-data-CwLgBvlI.esm.js → default-data-BsZWgQGR.esm.js} +3 -3
- package/dist/chunks/{default-data-CwLgBvlI.esm.js.map → default-data-BsZWgQGR.esm.js.map} +1 -1
- package/dist/chunks/{default-data-D2cqOmp4.js → default-data-Dsjlvwev.js} +2 -2
- package/dist/chunks/{default-data-D2cqOmp4.js.map → default-data-Dsjlvwev.js.map} +1 -1
- package/dist/chunks/{fullScreen-VlXxoepU.js → fullScreen-BBpaDn-A.js} +2 -2
- package/dist/chunks/{fullScreen-VlXxoepU.js.map → fullScreen-BBpaDn-A.js.map} +1 -1
- package/dist/chunks/{fullScreen-B9d2_kak.esm.js → fullScreen-Dn-3Tkwm.esm.js} +2 -2
- package/dist/chunks/{fullScreen-B9d2_kak.esm.js.map → fullScreen-Dn-3Tkwm.esm.js.map} +1 -1
- package/dist/chunks/index-B9CFxEZ9.js +2 -0
- package/dist/chunks/index-B9CFxEZ9.js.map +1 -0
- package/dist/chunks/{index-iPYNYnNP.esm.js → index-wf5q5BST.esm.js} +73 -66
- package/dist/chunks/{index-iPYNYnNP.esm.js.map → index-wf5q5BST.esm.js.map} +1 -1
- package/dist/chunks/{migration-utils-TYitNMC7.js → migration-utils-9IXhe_fj.js} +2 -2
- package/dist/chunks/{migration-utils-TYitNMC7.js.map → migration-utils-9IXhe_fj.js.map} +1 -1
- package/dist/chunks/{migration-utils-BRjncD-b.esm.js → migration-utils-DGoEzQUj.esm.js} +2 -2
- package/dist/chunks/{migration-utils-BRjncD-b.esm.js.map → migration-utils-DGoEzQUj.esm.js.map} +1 -1
- package/dist/chunks/{sidebar-DJREtRnK.js → sidebar-B3SExDRU.js} +2 -2
- package/dist/chunks/{sidebar-DJREtRnK.js.map → sidebar-B3SExDRU.js.map} +1 -1
- package/dist/chunks/{sidebar-D_3INLNa.esm.js → sidebar-n9Y25HU-.esm.js} +2 -2
- package/dist/chunks/{sidebar-D_3INLNa.esm.js.map → sidebar-n9Y25HU-.esm.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-CUf5Onkp.js → sidebarScreen-Dxb_e58p.js} +2 -2
- package/dist/chunks/{sidebarScreen-CUf5Onkp.js.map → sidebarScreen-Dxb_e58p.js.map} +1 -1
- package/dist/chunks/{sidebarScreen-CLjYZOzQ.esm.js → sidebarScreen-_Zt2pSOx.esm.js} +3 -3
- package/dist/chunks/{sidebarScreen-CLjYZOzQ.esm.js.map → sidebarScreen-_Zt2pSOx.esm.js.map} +1 -1
- package/dist/components/index.esm.js +121 -103
- package/dist/components/index.js +1 -1
- package/dist/index.esm.js +218 -200
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/index.esm.js +2 -2
- package/dist/layout/index.js +1 -1
- package/dist/src/components/index.d.ts +18 -1
- package/dist/utils/index.esm.js +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/views/index.esm.js +5 -5
- package/dist/views/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/android-12-switch-DMaoWQwq.js +0 -2
- package/dist/chunks/index-BQ2NBHDS.js +0 -2
- package/dist/chunks/index-BQ2NBHDS.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),r=require("react"),n=require("react-router-dom"),o=require("@mui/material/styles"),l=require("@mui/material/Drawer"),t=require("@mui/material/List"),i=require("@mui/icons-material/ChevronLeft"),a=require("@mui/icons-material/ChevronRight"),s=require("@mui/material/ListItem"),u=require("@mui/material/ListItemButton"),c=require("@mui/material/ListItemIcon"),d=require("@mui/icons-material/ExpandLess"),m=require("@mui/icons-material/ExpandMore"),p=require("@mui/material/Typography"),h=require("@mui/material/Box"),b=require("@mui/material"),g=require("@mui/material/Collapse"),x=require("./useAuth-C1y8BBuX.js"),v=require("./images-DrJQoSCu.js");;/* empty css */const f=require("./appbar-6Ucw59ku.js"),y=require("./useLangauge-p2qKwusp.js"),C=require("@mui/material/SvgIcon"),j=require("./api-config-CkfRrKRY.js"),k=require("./pathname.rental-Br768eN2.js"),w=require("./tick-ChY3vEPD.js"),S=({svgPath:n,sx:o={},color:l="inherit",fontSize:t="medium",...i})=>{const[a,s]=r.useState(null),[u,c]=r.useState(!0),[d,m]=r.useState(!1),p=b.useTheme(),h="inherit"===(g=l)?"currentColor":"primary"===g?p.palette.primary.main:"secondary"===g?p.palette.secondary.main:"action"===g?p.palette.action.active:"disabled"===g?p.palette.action.disabled:"error"===g?p.palette.error.main:"info"===g?p.palette.info.main:"success"===g?p.palette.success.main:"warning"===g?p.palette.warning.main:"grey"===g?p.palette.grey.main:g;var g;r.useEffect(()=>{n&&(async()=>{try{c(!0),m(!1);const e=await fetch(n);if(!e.ok)throw new Error("Failed to fetch SVG");const r=await e.text();s(r)}catch(e){console.error("Error loading SVG:",e),m(!0)}finally{c(!1)}})()},[n]);const x=r.useMemo(()=>{if(!a)return null;try{const e=(new DOMParser).parseFromString(a,"image/svg+xml").querySelector("svg");if(!e)return null;const n=(e,o=0)=>{const l=e.tagName.toLowerCase(),t={};Array.from(e.attributes).forEach(e=>{let r=e.name;"class"===r&&(r="className"),r.includes("-")&&(r=r.replace(/-([a-z])/g,(e,r)=>r.toUpperCase()));let n=e.value;h&&"currentColor"!==h&&("fill"===r&&"none"!==n&&(n=h),"stroke"===r&&"none"!==n&&(n=h)),t[r]=n}),t.key=o;const i=Array.from(e.children).map((e,r)=>n(e,`${o}-${r}`));return 1===e.childNodes.length&&3===e.childNodes[0].nodeType&&i.push(e.textContent),r.createElement(l,t,i.length>0?i:null)};return Array.from(e.children).map((e,r)=>n(e,r))}catch(e){return console.error("Error parsing SVG:",e),null}},[a,h]);return u?e.jsx(C,{sx:{width:24,height:24,...o},color:l,fontSize:t,...i,children:e.jsx("circle",{cx:"12",cy:"12",r:"8",fill:"currentColor",opacity:"0.3"})}):d||!x?e.jsx(C,{sx:{width:24,height:24,...o},color:l,fontSize:t,...i,children:e.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})}):e.jsx(C,{sx:{color:h,fill:"none",...o},fontSize:t,fontWeight:500,viewBox:"0 0 16 16",...i,children:x})};let z;const L=e=>{var r,n;return{width:z,transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.enteringScreen}),overflowX:"hidden",display:"flex",flexDirection:"column",justifyContent:"space-between",borderRight:`1px solid ${null==(r=e.palette.theme)?void 0:r.secondary[200]}`,backgroundColor:null==(n=e.palette.theme)?void 0:n.secondary[100]}},q=e=>{var r,n;return{transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.leavingScreen}),overflowX:"hidden",width:`calc(${e.spacing(7)} + 1px)`,[e.breakpoints.up("sm")]:{width:`calc(${e.spacing(8)} + 1px)`},borderRight:`1px solid ${null==(r=e.palette.theme)?void 0:r.secondary[200]}`,backgroundColor:null==(n=e.palette.theme)?void 0:n.secondary[100]}},I=o.styled(l,{shouldForwardProp:e=>"open"!==e})(({theme:e,open:r})=>{var n,o,l;return{width:z,flexShrink:0,whiteSpace:"nowrap",boxSizing:"border-box",".MuiDrawer-paper":{backgroundColor:null==(l=null==(o=null==(n=null==e?void 0:e.palette)?void 0:n.theme)?void 0:o.secondary)?void 0:l[100],overflow:"visible !important",zIndex:1201},...r&&{...L(e),"& .MuiDrawer-paper":L(e)},...!r&&{...q(e),"& .MuiDrawer-paper":q(e)}}}),E=o.styled("div")(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",padding:e.spacing(0,2),...e.mixins.toolbar,minHeight:64})),M=o.styled(b.Paper)(({theme:e})=>{var r,n,o,l;return{minWidth:250,maxWidth:350,maxHeight:"80vh",overflowY:"auto",backgroundColor:(null==(n=null==(r=e.palette.theme)?void 0:r.secondary)?void 0:n[100])||e.palette.background.paper,borderRadius:12,boxShadow:"0 8px 32px rgba(0, 0, 0, 0.12)",border:`1px solid ${(null==(l=null==(o=e.palette.theme)?void 0:o.secondary)?void 0:l[200])||e.palette.divider}`,"&.MuiPaper-root":{transformOrigin:"top left"},"&::-webkit-scrollbar":{width:6},"&::-webkit-scrollbar-track":{backgroundColor:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:"rgba(0, 0, 0, 0.2)",borderRadius:3}}}),R=o.styled(h)(({theme:e})=>{var r,n,o,l;return{padding:e.spacing(1,2),borderBottom:`1px solid ${(null==(n=null==(r=e.palette.theme)?void 0:r.secondary)?void 0:n[200])||e.palette.divider}`,backgroundColor:(null==(l=null==(o=e.palette.theme)?void 0:o.secondary)?void 0:l[50])||e.palette.grey[50]}}),$=({menu:n,anchorEl:o,open:l,onClose:i,onItemClick:d,onSubmenuClick:m,getActiveClassIf:g,breadcrumb:v,onBreadcrumbClick:f})=>{var y;return e.jsx(b.ClickAwayListener,{onClickAway:i,children:e.jsx(b.Popover,{open:l,anchorEl:o,onClose:i,anchorOrigin:{vertical:"center",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"},PaperComponent:M,elevation:1,disableRestoreFocus:!0,disableAutoFocus:!0,disableEnforceFocus:!0,sx:{ml:.5,"& .MuiPopover-paper":{marginTop:0,pointerEvents:"auto"}},transitionDuration:200,children:e.jsxs(h,{children:[v.length<=1?null:e.jsx(R,{children:e.jsx(h,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:.5},children:v.map((n,o)=>e.jsxs(r.Fragment,{children:[o>0&&e.jsx(a,{sx:{fontSize:14,color:"theme.secondary.400"}}),e.jsx(p,{variant:"caption",onClick:()=>f(n,o),sx:{cursor:o<v.length-1?"pointer":"default",color:o<v.length-1?"primary.main":"theme.secondary.600",fontWeight:o===v.length-1?600:400,fontSize:"0.75rem","&:hover":o<v.length-1?{textDecoration:"underline"}:{}},children:n.label})]},o))})}),e.jsxs(h,{children:[e.jsx(p,{variant:"subtitle2",sx:{px:2,py:1,fontWeight:600,color:"theme.secondary.1000",borderBottom:v.length>1?"none":"1px solid",borderColor:"theme.secondary.200",mb:.5,fontSize:"0.875rem"},children:n.label}),e.jsx(t,{component:"div",sx:{py:0},children:null==(y=n.submenu)?void 0:y.map((r,n)=>{var o;const l=g([...(null==r?void 0:r.connectedRoutes)||[],r.link]);return e.jsx(s,{disablePadding:!0,children:e.jsxs(u,{onClick:e=>{var n;(null==(n=r.submenu)?void 0:n.length)?m(r,e):(d(r),i())},selected:l,sx:e=>{var r,n;return{minHeight:32,borderRadius:1.5,mb:.25,position:"relative","&.Mui-selected":{backgroundColor:null==(r=e.palette.theme)?void 0:r.primary[100],color:"primary.main","& .MuiListItemIcon-root":{color:"primary.main"}},"&.Mui-selected:hover":{backgroundColor:null==(n=e.palette.theme)?void 0:n.primary[200]},"&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)"}}},children:[r.icon&&e.jsx(c,{sx:{minWidth:32},children:e.jsx("img",{src:r.icon,alt:r.label+" icon",style:{opacity:.8}})}),e.jsx(x.Typography,{type:"s3",weight:"normal",color:"theme.secondary.1000",sx:{flexGrow:1,fontSize:"0.875rem",lineHeight:1.4},children:r.label}),(null==(o=r.submenu)?void 0:o.length)>0&&e.jsx(a,{sx:{fontSize:18,color:"theme.secondary.500",ml:1}})]})},n)})})]})]})})})};exports.Sidebar=o=>{const l=n.useNavigate(),C=n.useLocation(),{currentLanguage:L}=y.useLanguage(),q=r.useMemo(()=>"rtl"===(null==L?void 0:L.direction),[L]),[M,R]=r.useState({open:!1,anchorEl:null,menu:null,breadcrumb:[]}),[B,A]=r.useState([]),[T,O]=r.useState(""),[P,D]=r.useState([]),[F,N]=r.useState(!1),W=r.useCallback(e=>{const r=Array.isArray(e)?e.map(e=>({path:e})):[{path:e}];return Boolean(n.matchRoutes(r,C))},[C]),H=r.useCallback(e=>{var r;if(!(null==(r=e.submenu)?void 0:r.length))return!1;for(const n of e.submenu)if(W([...(null==n?void 0:n.connectedRoutes)||[],n.link])||H(n))return!0;return!1},[W]),G=r.useCallback(e=>{var r,n;const o=[];return e.link&&o.push(e.link),(null==(r=e.connectedRoutes)?void 0:r.length)&&o.push(...e.connectedRoutes),(null==(n=e.submenu)?void 0:n.length)&&e.submenu.forEach(e=>{o.push(...G(e))}),o},[]),V=r.useCallback((e,r)=>{var n,l;e.stopPropagation(),!o.open&&(null==(n=r.submenu)?void 0:n.length)>0&&(M.open&&(null==(l=M.menu)?void 0:l.label)===r.label?R({open:!1,anchorEl:null,menu:null,breadcrumb:[]}):R({open:!0,anchorEl:e.currentTarget,menu:r,breadcrumb:[r]}))},[o.open,M]),Y=r.useCallback((e,r)=>{var n;(null==(n=e.submenu)?void 0:n.length)&&R(r=>({...r,menu:e,breadcrumb:[...r.breadcrumb,e]}))},[]),J=r.useCallback((e,r)=>{R(n=>({...n,menu:e,breadcrumb:n.breadcrumb.slice(0,r+1)}))},[]),X=r.useCallback(()=>{R({open:!1,anchorEl:null,menu:null,breadcrumb:[]})},[]),_=r.useCallback(e=>{l(e.link)},[l]),U=r.useCallback((e,r,n)=>{var t,i,a,s;if(o.open||!((null==(t=e.submenu)?void 0:t.length)>0))if(null==(i=e.submenu)?void 0:i.length)if((null==(a=e.submenu)?void 0:a.length)&&(null==(s=e.submenu[n])?void 0:s.link))l(`${e.link}${e.submenu[n].link}`);else{const n=`${(null==r?void 0:r.label)||""}-${e.label}`;if(P.includes(n))if(r){const e=P.filter(e=>e!==n);D([...e])}else D([]);else D(r?[...P,n]:[n])}else l(e.link),r||D([])},[o.open,l,P]),K=r.useCallback((e,r)=>e.filter(e=>{var n,o,l,t;return(null==(o=null==(n=null==e?void 0:e.label)?void 0:n.toLowerCase())?void 0:o.includes(r))?e:(null==(l=null==e?void 0:e.submenu)?void 0:l.length)?(e.submenu=K(null==e?void 0:e.submenu,r),(null==(t=e.submenu)?void 0:t.length)>0?e:null):null}).filter(Boolean),[]),Q=r.useCallback(e=>{if(e){const r=e.toLowerCase(),n=(null==o?void 0:o.menu)?JSON.parse(JSON.stringify(o.menu)):[],l=K(n,r);A(l)}else A(o.menu||[])},[o.menu,K]),Z=r.useCallback(()=>N(!0),[]),ee=r.useCallback(()=>N(!1),[]),re=r.useCallback((r,n,l)=>null==r?void 0:r.map((r,i)=>{var p,b;const v=`${(null==n?void 0:n.label)||""}-${r.label}`,y=W([...(null==r?void 0:r.connectedRoutes)||[],r.link]),C=!o.open&&H(r),j=y||C;return e.jsx(f.Tooltip,{title:r.label,placement:"right",arrow:!0,disableHoverListener:o.open,disableFocusListener:o.open,disableTouchListener:o.open,children:e.jsxs(s,{disablePadding:!0,sx:{display:"block",...q&&{padding:0}},children:[e.jsxs(u,{onClick:e=>{var l;!o.open&&(null==(l=r.submenu)?void 0:l.length)>0?V(e,r):U(r,n,(null==r?void 0:r.submenu)?-1:i)},selected:j,sx:e=>{var n,l,t,i,a,s;return{minHeight:(o.open,32),justifyContent:o.open?"initial":"center",display:"flex",alignItems:"center",borderRadius:2,gap:1,position:"relative",transition:"all 0.2s ease-in-out","&.Mui-selected":{backgroundColor:null==(n=e.palette.theme)?void 0:n.primary[100],color:null==(l=e.palette.theme)?void 0:l.primary[800],"& .MuiListItemIcon-root":{color:null==(t=e.palette.theme)?void 0:t.primary[800]},"& .MuiTypography-root":{color:null==(i=e.palette.theme)?void 0:i.primary[800],fontWeight:500}},"&.Mui-selected:hover":{backgroundColor:null==(a=e.palette.theme)?void 0:a.primary[200]},"&:hover":{backgroundColor:o.open?"rgba(0, 0, 0, 0.04)":"rgba(0, 0, 0, 0.08)",transform:o.open?"none":"scale(1.02)"},...!o.open&&(null==(s=r.submenu)?void 0:s.length)>0&&{cursor:"pointer","&::after":{content:'""',position:"absolute",...q?{left:8,borderRight:"5px solid"}:{right:8,borderLeft:"5px solid"},top:"25%",transform:"translateY(-50%)",width:0,height:0,borderTop:"4px solid transparent",borderBottom:"4px solid transparent",borderColor:"currentColor transparent transparent transparent",opacity:.7}}}},children:[e.jsx(c,{sx:{minWidth:o.open?"auto":0,...q?{ml:0}:{},justifyContent:"center",display:"flex",alignItems:"center",transition:"all 0.2s ease-in-out"},children:r.icon?e.jsx(S,{svgPath:r.icon,color:j?"primary":"grey",fontSize:o.open?"small":"medium"}):e.jsx(a,{sx:{fontSize:o.open?24:28,transition:"all 0.2s ease-in-out"}})}),o.open&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",flexGrow:1,position:"relative",overflow:"hidden"},children:[e.jsx(x.Typography,{type:"s3",weight:0===l?"medium":"normal",color:"theme.secondary.1000",sx:{flexGrow:1,pl:1.5*l,fontSize:0===l?"0.875rem":"0.8125rem",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r.label}),(null==(p=r.submenu)?void 0:p.length)>0&&e.jsx(h,{sx:{ml:1,display:"flex",alignItems:"center",transition:"transform 0.2s ease-in-out"},children:P.includes(v)?e.jsx(d,{sx:{fontSize:20,color:"theme.secondary.600"}}):e.jsx(m,{sx:{fontSize:20,color:"theme.secondary.600"}})})]})]}),P.includes(v)&&(null==(b=r.submenu)?void 0:b.length)>0&&o.open&&e.jsx(g,{in:P.includes(v),timeout:"auto",unmountOnExit:!0,children:e.jsx(t,{component:"div",disablePadding:!0,sx:{mt:.5},children:re(r.submenu,r,l+1)})})]})},`${r.label}-${i}`)}),[o.open,P,W,V,U,H,q]);r.useEffect(()=>{var e;if(Q(T),null==(e=o.menu)?void 0:e.length){const e=[],r=(n,o="")=>{n.forEach(n=>{var l;if(null==(l=null==n?void 0:n.submenu)?void 0:l.length){const l=`${o}-${n.label}`,t=G(n);W(t)&&(e.push(l),r(n.submenu,n.label))}})};r(o.menu),D(e)}},[W,Q,o.menu,T,G]),r.useEffect(()=>{o.open&&X()},[o.open,X]),z=o.width;const ne=j.getApiConfig().appLogo||v.images.logo,oe=j.getApiConfig().appFavicon||v.images.favicon;return e.jsxs(e.Fragment,{children:[e.jsx(I,{variant:"permanent",open:o.open,anchor:"rtl"===document.body.dir?"right":"left",onMouseEnter:o.handleMouseEnter,onMouseLeave:o.handleMouseLeave,children:e.jsxs(h,{sx:{display:"flex",flexDirection:"column",height:"100%",backgroundColor:"grey.100"},children:[e.jsx(h,{sx:e=>{var r,n;return{borderBottom:`1px solid ${(null==(n=null==(r=e.palette.theme)?void 0:r.secondary)?void 0:n[200])||e.palette.divider}`}},children:e.jsx(E,{children:e.jsx("img",{src:o.open?ne:oe,alt:o.open?"logo":"favicon",width:!o.open&&40,height:55,style:{transition:"all 0.3s ease-in-out",filter:"brightness(1.1)",cursor:"pointer"},onClick:()=>l(o.dashboardPath||k.Pathname.DASHBOARD)})})}),o.open?e.jsx(h,{sx:{px:1.5,py:1.5,borderBottom:"1px solid",borderColor:"theme.secondary.200"},children:e.jsx(f.SearchBar,{className:"sidebar-search",handleSearch:O,placeholder:"Search menu...",value:T,sx:{"&.MuiTextField-root":{backgroundColor:"grey.200",border:"1px solid",borderColor:"grey.200",borderRadius:1}}})}):e.jsx(b.ClickAwayListener,{onClickAway:ee,children:e.jsx(h,{sx:{p:1,pb:0,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(f.Tooltip,{title:e.jsx(f.SearchBar,{className:"sidebar-search",handleSearch:O,placeholder:"Search menu...",value:T,sx:{"&.MuiTextField-root":{backgroundColor:"transparent"}}}),placement:"right",arrow:!0,sx:{p:0,backgroundColor:"grey.200",border:"1px solid",borderColor:"grey.300","& .MuiTooltip-arrow":{color:"grey.300"},ml:"8px !important"},open:F,children:e.jsx(b.IconButton,{color:"inherit",sx:{borderRadius:2,p:1.5,backgroundColor:F?"grey.200":"inherit"},onClick:Z,children:T.trim()?e.jsx(w.SearchStatus,{}):e.jsx(w.Search,{})})})})}),e.jsx(h,{sx:{flexGrow:1,overflowY:"auto",py:1,"&::-webkit-scrollbar":{width:6},"&::-webkit-scrollbar-track":{backgroundColor:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:"rgba(0, 0, 0, 0.2)",borderRadius:3}},children:e.jsx(t,{className:"sidebar-list",sx:{p:0},children:re(B,null,0)})}),o.open&&e.jsx(h,{sx:{borderTop:"1px solid",borderColor:"theme.secondary.200",backgroundColor:"rgba(255, 255, 255, 0.5)"},children:e.jsxs(h,{sx:{padding:".75rem 1.5rem",display:"flex",alignItems:"self-start",gap:.5,justifyContent:"center"},children:[e.jsx(p,{sx:{color:"theme.secondary.600",fontSize:".85rem",fontWeight:500},children:"Crafted with"}),e.jsx(b.Icon,{sx:{color:"theme.error.500",width:"1rem",height:"1rem",fontSize:".75rem"},children:"❤️"}),e.jsx(p,{sx:{color:"theme.secondary.600",fontSize:".75rem",fontWeight:500},children:e.jsx("img",{src:v.images.erp_logo})})]})})]})}),e.jsx(b.IconButton,{size:"small",onClick:()=>o.forcedOpen?o.handleDrawerClose():o.handleDrawerOpen(),className:q?"drawer-expand-btn_rtl":"drawer-expand-btn",sx:{ml:"auto",backgroundColor:"rgba(0, 0, 0, 0.04)","&:hover":{backgroundColor:"grey.100"},width:"30px",height:"30px",borderRadius:"8px",borderTopLeftRadius:0,borderBottomLeftRadius:0,borderColor:"grey.500",...q?o.forcedOpen?{right:"299px",left:"auto"}:{right:"63px !important",left:"auto"}:o.forcedOpen?{left:"299px",right:"auto"}:{left:"63px !important",right:"auto"},transition:"all 0.3s ease-in-out"},children:"rtl"===o.theme.direction?o.forcedOpen?e.jsx(a,{fontSize:"small"}):e.jsx(i,{fontSize:"small"}):o.forcedOpen?e.jsx(i,{fontSize:"small"}):e.jsx(a,{fontSize:"small"})}),M.menu&&e.jsx($,{menu:M.menu,anchorEl:M.anchorEl,open:M.open,onClose:X,onItemClick:_,onSubmenuClick:Y,getActiveClassIf:W,breadcrumb:M.breadcrumb,onBreadcrumbClick:J})]})};
|
|
2
|
-
//# sourceMappingURL=sidebar-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),r=require("react"),n=require("react-router-dom"),o=require("@mui/material/styles"),l=require("@mui/material/Drawer"),t=require("@mui/material/List"),i=require("@mui/icons-material/ChevronLeft"),a=require("@mui/icons-material/ChevronRight"),s=require("@mui/material/ListItem"),u=require("@mui/material/ListItemButton"),c=require("@mui/material/ListItemIcon"),d=require("@mui/icons-material/ExpandLess"),m=require("@mui/icons-material/ExpandMore"),p=require("@mui/material/Typography"),h=require("@mui/material/Box"),b=require("@mui/material"),g=require("@mui/material/Collapse"),x=require("./useAuth-C1y8BBuX.js"),v=require("./images-DrJQoSCu.js");;/* empty css */const f=require("./appbar-C6Es9HGk.js"),y=require("./useLangauge-p2qKwusp.js"),C=require("@mui/material/SvgIcon"),j=require("./api-config-CkfRrKRY.js"),k=require("./pathname.rental-Br768eN2.js"),w=require("./tick-ChY3vEPD.js"),S=({svgPath:n,sx:o={},color:l="inherit",fontSize:t="medium",...i})=>{const[a,s]=r.useState(null),[u,c]=r.useState(!0),[d,m]=r.useState(!1),p=b.useTheme(),h="inherit"===(g=l)?"currentColor":"primary"===g?p.palette.primary.main:"secondary"===g?p.palette.secondary.main:"action"===g?p.palette.action.active:"disabled"===g?p.palette.action.disabled:"error"===g?p.palette.error.main:"info"===g?p.palette.info.main:"success"===g?p.palette.success.main:"warning"===g?p.palette.warning.main:"grey"===g?p.palette.grey.main:g;var g;r.useEffect(()=>{n&&(async()=>{try{c(!0),m(!1);const e=await fetch(n);if(!e.ok)throw new Error("Failed to fetch SVG");const r=await e.text();s(r)}catch(e){console.error("Error loading SVG:",e),m(!0)}finally{c(!1)}})()},[n]);const x=r.useMemo(()=>{if(!a)return null;try{const e=(new DOMParser).parseFromString(a,"image/svg+xml").querySelector("svg");if(!e)return null;const n=(e,o=0)=>{const l=e.tagName.toLowerCase(),t={};Array.from(e.attributes).forEach(e=>{let r=e.name;"class"===r&&(r="className"),r.includes("-")&&(r=r.replace(/-([a-z])/g,(e,r)=>r.toUpperCase()));let n=e.value;h&&"currentColor"!==h&&("fill"===r&&"none"!==n&&(n=h),"stroke"===r&&"none"!==n&&(n=h)),t[r]=n}),t.key=o;const i=Array.from(e.children).map((e,r)=>n(e,`${o}-${r}`));return 1===e.childNodes.length&&3===e.childNodes[0].nodeType&&i.push(e.textContent),r.createElement(l,t,i.length>0?i:null)};return Array.from(e.children).map((e,r)=>n(e,r))}catch(e){return console.error("Error parsing SVG:",e),null}},[a,h]);return u?e.jsx(C,{sx:{width:24,height:24,...o},color:l,fontSize:t,...i,children:e.jsx("circle",{cx:"12",cy:"12",r:"8",fill:"currentColor",opacity:"0.3"})}):d||!x?e.jsx(C,{sx:{width:24,height:24,...o},color:l,fontSize:t,...i,children:e.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})}):e.jsx(C,{sx:{color:h,fill:"none",...o},fontSize:t,fontWeight:500,viewBox:"0 0 16 16",...i,children:x})};let z;const L=e=>{var r,n;return{width:z,transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.enteringScreen}),overflowX:"hidden",display:"flex",flexDirection:"column",justifyContent:"space-between",borderRight:`1px solid ${null==(r=e.palette.theme)?void 0:r.secondary[200]}`,backgroundColor:null==(n=e.palette.theme)?void 0:n.secondary[100]}},q=e=>{var r,n;return{transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.leavingScreen}),overflowX:"hidden",width:`calc(${e.spacing(7)} + 1px)`,[e.breakpoints.up("sm")]:{width:`calc(${e.spacing(8)} + 1px)`},borderRight:`1px solid ${null==(r=e.palette.theme)?void 0:r.secondary[200]}`,backgroundColor:null==(n=e.palette.theme)?void 0:n.secondary[100]}},I=o.styled(l,{shouldForwardProp:e=>"open"!==e})(({theme:e,open:r})=>{var n,o,l;return{width:z,flexShrink:0,whiteSpace:"nowrap",boxSizing:"border-box",".MuiDrawer-paper":{backgroundColor:null==(l=null==(o=null==(n=null==e?void 0:e.palette)?void 0:n.theme)?void 0:o.secondary)?void 0:l[100],overflow:"visible !important",zIndex:1201},...r&&{...L(e),"& .MuiDrawer-paper":L(e)},...!r&&{...q(e),"& .MuiDrawer-paper":q(e)}}}),E=o.styled("div")(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"center",padding:e.spacing(0,2),...e.mixins.toolbar,minHeight:64})),M=o.styled(b.Paper)(({theme:e})=>{var r,n,o,l;return{minWidth:250,maxWidth:350,maxHeight:"80vh",overflowY:"auto",backgroundColor:(null==(n=null==(r=e.palette.theme)?void 0:r.secondary)?void 0:n[100])||e.palette.background.paper,borderRadius:12,boxShadow:"0 8px 32px rgba(0, 0, 0, 0.12)",border:`1px solid ${(null==(l=null==(o=e.palette.theme)?void 0:o.secondary)?void 0:l[200])||e.palette.divider}`,"&.MuiPaper-root":{transformOrigin:"top left"},"&::-webkit-scrollbar":{width:6},"&::-webkit-scrollbar-track":{backgroundColor:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:"rgba(0, 0, 0, 0.2)",borderRadius:3}}}),R=o.styled(h)(({theme:e})=>{var r,n,o,l;return{padding:e.spacing(1,2),borderBottom:`1px solid ${(null==(n=null==(r=e.palette.theme)?void 0:r.secondary)?void 0:n[200])||e.palette.divider}`,backgroundColor:(null==(l=null==(o=e.palette.theme)?void 0:o.secondary)?void 0:l[50])||e.palette.grey[50]}}),$=({menu:n,anchorEl:o,open:l,onClose:i,onItemClick:d,onSubmenuClick:m,getActiveClassIf:g,breadcrumb:v,onBreadcrumbClick:f})=>{var y;return e.jsx(b.ClickAwayListener,{onClickAway:i,children:e.jsx(b.Popover,{open:l,anchorEl:o,onClose:i,anchorOrigin:{vertical:"center",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"},PaperComponent:M,elevation:1,disableRestoreFocus:!0,disableAutoFocus:!0,disableEnforceFocus:!0,sx:{ml:.5,"& .MuiPopover-paper":{marginTop:0,pointerEvents:"auto"}},transitionDuration:200,children:e.jsxs(h,{children:[v.length<=1?null:e.jsx(R,{children:e.jsx(h,{sx:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:.5},children:v.map((n,o)=>e.jsxs(r.Fragment,{children:[o>0&&e.jsx(a,{sx:{fontSize:14,color:"theme.secondary.400"}}),e.jsx(p,{variant:"caption",onClick:()=>f(n,o),sx:{cursor:o<v.length-1?"pointer":"default",color:o<v.length-1?"primary.main":"theme.secondary.600",fontWeight:o===v.length-1?600:400,fontSize:"0.75rem","&:hover":o<v.length-1?{textDecoration:"underline"}:{}},children:n.label})]},o))})}),e.jsxs(h,{children:[e.jsx(p,{variant:"subtitle2",sx:{px:2,py:1,fontWeight:600,color:"theme.secondary.1000",borderBottom:v.length>1?"none":"1px solid",borderColor:"theme.secondary.200",mb:.5,fontSize:"0.875rem"},children:n.label}),e.jsx(t,{component:"div",sx:{py:0},children:null==(y=n.submenu)?void 0:y.map((r,n)=>{var o;const l=g([...(null==r?void 0:r.connectedRoutes)||[],r.link]);return e.jsx(s,{disablePadding:!0,children:e.jsxs(u,{onClick:e=>{var n;(null==(n=r.submenu)?void 0:n.length)?m(r,e):(d(r),i())},selected:l,sx:e=>{var r,n;return{minHeight:32,borderRadius:1.5,mb:.25,position:"relative","&.Mui-selected":{backgroundColor:null==(r=e.palette.theme)?void 0:r.primary[100],color:"primary.main","& .MuiListItemIcon-root":{color:"primary.main"}},"&.Mui-selected:hover":{backgroundColor:null==(n=e.palette.theme)?void 0:n.primary[200]},"&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)"}}},children:[r.icon&&e.jsx(c,{sx:{minWidth:32},children:e.jsx("img",{src:r.icon,alt:r.label+" icon",style:{opacity:.8}})}),e.jsx(x.Typography,{type:"s3",weight:"normal",color:"theme.secondary.1000",sx:{flexGrow:1,fontSize:"0.875rem",lineHeight:1.4},children:r.label}),(null==(o=r.submenu)?void 0:o.length)>0&&e.jsx(a,{sx:{fontSize:18,color:"theme.secondary.500",ml:1}})]})},n)})})]})]})})})};exports.Sidebar=o=>{const l=n.useNavigate(),C=n.useLocation(),{currentLanguage:L}=y.useLanguage(),q=r.useMemo(()=>"rtl"===(null==L?void 0:L.direction),[L]),[M,R]=r.useState({open:!1,anchorEl:null,menu:null,breadcrumb:[]}),[B,A]=r.useState([]),[T,O]=r.useState(""),[P,D]=r.useState([]),[F,N]=r.useState(!1),W=r.useCallback(e=>{const r=Array.isArray(e)?e.map(e=>({path:e})):[{path:e}];return Boolean(n.matchRoutes(r,C))},[C]),H=r.useCallback(e=>{var r;if(!(null==(r=e.submenu)?void 0:r.length))return!1;for(const n of e.submenu)if(W([...(null==n?void 0:n.connectedRoutes)||[],n.link])||H(n))return!0;return!1},[W]),G=r.useCallback(e=>{var r,n;const o=[];return e.link&&o.push(e.link),(null==(r=e.connectedRoutes)?void 0:r.length)&&o.push(...e.connectedRoutes),(null==(n=e.submenu)?void 0:n.length)&&e.submenu.forEach(e=>{o.push(...G(e))}),o},[]),V=r.useCallback((e,r)=>{var n,l;e.stopPropagation(),!o.open&&(null==(n=r.submenu)?void 0:n.length)>0&&(M.open&&(null==(l=M.menu)?void 0:l.label)===r.label?R({open:!1,anchorEl:null,menu:null,breadcrumb:[]}):R({open:!0,anchorEl:e.currentTarget,menu:r,breadcrumb:[r]}))},[o.open,M]),Y=r.useCallback((e,r)=>{var n;(null==(n=e.submenu)?void 0:n.length)&&R(r=>({...r,menu:e,breadcrumb:[...r.breadcrumb,e]}))},[]),J=r.useCallback((e,r)=>{R(n=>({...n,menu:e,breadcrumb:n.breadcrumb.slice(0,r+1)}))},[]),X=r.useCallback(()=>{R({open:!1,anchorEl:null,menu:null,breadcrumb:[]})},[]),_=r.useCallback(e=>{l(e.link)},[l]),U=r.useCallback((e,r,n)=>{var t,i,a,s;if(o.open||!((null==(t=e.submenu)?void 0:t.length)>0))if(null==(i=e.submenu)?void 0:i.length)if((null==(a=e.submenu)?void 0:a.length)&&(null==(s=e.submenu[n])?void 0:s.link))l(`${e.link}${e.submenu[n].link}`);else{const n=`${(null==r?void 0:r.label)||""}-${e.label}`;if(P.includes(n))if(r){const e=P.filter(e=>e!==n);D([...e])}else D([]);else D(r?[...P,n]:[n])}else l(e.link),r||D([])},[o.open,l,P]),K=r.useCallback((e,r)=>e.filter(e=>{var n,o,l,t;return(null==(o=null==(n=null==e?void 0:e.label)?void 0:n.toLowerCase())?void 0:o.includes(r))?e:(null==(l=null==e?void 0:e.submenu)?void 0:l.length)?(e.submenu=K(null==e?void 0:e.submenu,r),(null==(t=e.submenu)?void 0:t.length)>0?e:null):null}).filter(Boolean),[]),Q=r.useCallback(e=>{if(e){const r=e.toLowerCase(),n=(null==o?void 0:o.menu)?JSON.parse(JSON.stringify(o.menu)):[],l=K(n,r);A(l)}else A(o.menu||[])},[o.menu,K]),Z=r.useCallback(()=>N(!0),[]),ee=r.useCallback(()=>N(!1),[]),re=r.useCallback((r,n,l)=>null==r?void 0:r.map((r,i)=>{var p,b;const v=`${(null==n?void 0:n.label)||""}-${r.label}`,y=W([...(null==r?void 0:r.connectedRoutes)||[],r.link]),C=!o.open&&H(r),j=y||C;return e.jsx(f.Tooltip,{title:r.label,placement:"right",arrow:!0,disableHoverListener:o.open,disableFocusListener:o.open,disableTouchListener:o.open,children:e.jsxs(s,{disablePadding:!0,sx:{display:"block",...q&&{padding:0}},children:[e.jsxs(u,{onClick:e=>{var l;!o.open&&(null==(l=r.submenu)?void 0:l.length)>0?V(e,r):U(r,n,(null==r?void 0:r.submenu)?-1:i)},selected:j,sx:e=>{var n,l,t,i,a,s;return{minHeight:(o.open,32),justifyContent:o.open?"initial":"center",display:"flex",alignItems:"center",borderRadius:2,gap:1,position:"relative",transition:"all 0.2s ease-in-out","&.Mui-selected":{backgroundColor:null==(n=e.palette.theme)?void 0:n.primary[100],color:null==(l=e.palette.theme)?void 0:l.primary[800],"& .MuiListItemIcon-root":{color:null==(t=e.palette.theme)?void 0:t.primary[800]},"& .MuiTypography-root":{color:null==(i=e.palette.theme)?void 0:i.primary[800],fontWeight:500}},"&.Mui-selected:hover":{backgroundColor:null==(a=e.palette.theme)?void 0:a.primary[200]},"&:hover":{backgroundColor:o.open?"rgba(0, 0, 0, 0.04)":"rgba(0, 0, 0, 0.08)",transform:o.open?"none":"scale(1.02)"},...!o.open&&(null==(s=r.submenu)?void 0:s.length)>0&&{cursor:"pointer","&::after":{content:'""',position:"absolute",...q?{left:8,borderRight:"5px solid"}:{right:8,borderLeft:"5px solid"},top:"25%",transform:"translateY(-50%)",width:0,height:0,borderTop:"4px solid transparent",borderBottom:"4px solid transparent",borderColor:"currentColor transparent transparent transparent",opacity:.7}}}},children:[e.jsx(c,{sx:{minWidth:o.open?"auto":0,...q?{ml:0}:{},justifyContent:"center",display:"flex",alignItems:"center",transition:"all 0.2s ease-in-out"},children:r.icon?e.jsx(S,{svgPath:r.icon,color:j?"primary":"grey",fontSize:o.open?"small":"medium"}):e.jsx(a,{sx:{fontSize:o.open?24:28,transition:"all 0.2s ease-in-out"}})}),o.open&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",flexGrow:1,position:"relative",overflow:"hidden"},children:[e.jsx(x.Typography,{type:"s3",weight:0===l?"medium":"normal",color:"theme.secondary.1000",sx:{flexGrow:1,pl:1.5*l,fontSize:0===l?"0.875rem":"0.8125rem",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r.label}),(null==(p=r.submenu)?void 0:p.length)>0&&e.jsx(h,{sx:{ml:1,display:"flex",alignItems:"center",transition:"transform 0.2s ease-in-out"},children:P.includes(v)?e.jsx(d,{sx:{fontSize:20,color:"theme.secondary.600"}}):e.jsx(m,{sx:{fontSize:20,color:"theme.secondary.600"}})})]})]}),P.includes(v)&&(null==(b=r.submenu)?void 0:b.length)>0&&o.open&&e.jsx(g,{in:P.includes(v),timeout:"auto",unmountOnExit:!0,children:e.jsx(t,{component:"div",disablePadding:!0,sx:{mt:.5},children:re(r.submenu,r,l+1)})})]})},`${r.label}-${i}`)}),[o.open,P,W,V,U,H,q]);r.useEffect(()=>{var e;if(Q(T),null==(e=o.menu)?void 0:e.length){const e=[],r=(n,o="")=>{n.forEach(n=>{var l;if(null==(l=null==n?void 0:n.submenu)?void 0:l.length){const l=`${o}-${n.label}`,t=G(n);W(t)&&(e.push(l),r(n.submenu,n.label))}})};r(o.menu),D(e)}},[W,Q,o.menu,T,G]),r.useEffect(()=>{o.open&&X()},[o.open,X]),z=o.width;const ne=j.getApiConfig().appLogo||v.images.logo,oe=j.getApiConfig().appFavicon||v.images.favicon;return e.jsxs(e.Fragment,{children:[e.jsx(I,{variant:"permanent",open:o.open,anchor:"rtl"===document.body.dir?"right":"left",onMouseEnter:o.handleMouseEnter,onMouseLeave:o.handleMouseLeave,children:e.jsxs(h,{sx:{display:"flex",flexDirection:"column",height:"100%",backgroundColor:"grey.100"},children:[e.jsx(h,{sx:e=>{var r,n;return{borderBottom:`1px solid ${(null==(n=null==(r=e.palette.theme)?void 0:r.secondary)?void 0:n[200])||e.palette.divider}`}},children:e.jsx(E,{children:e.jsx("img",{src:o.open?ne:oe,alt:o.open?"logo":"favicon",width:!o.open&&40,height:55,style:{transition:"all 0.3s ease-in-out",filter:"brightness(1.1)",cursor:"pointer"},onClick:()=>l(o.dashboardPath||k.Pathname.DASHBOARD)})})}),o.open?e.jsx(h,{sx:{px:1.5,py:1.5,borderBottom:"1px solid",borderColor:"theme.secondary.200"},children:e.jsx(f.SearchBar,{className:"sidebar-search",handleSearch:O,placeholder:"Search menu...",value:T,sx:{"&.MuiTextField-root":{backgroundColor:"grey.200",border:"1px solid",borderColor:"grey.200",borderRadius:1}}})}):e.jsx(b.ClickAwayListener,{onClickAway:ee,children:e.jsx(h,{sx:{p:1,pb:0,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(f.Tooltip,{title:e.jsx(f.SearchBar,{className:"sidebar-search",handleSearch:O,placeholder:"Search menu...",value:T,sx:{"&.MuiTextField-root":{backgroundColor:"transparent"}}}),placement:"right",arrow:!0,sx:{p:0,backgroundColor:"grey.200",border:"1px solid",borderColor:"grey.300","& .MuiTooltip-arrow":{color:"grey.300"},ml:"8px !important"},open:F,children:e.jsx(b.IconButton,{color:"inherit",sx:{borderRadius:2,p:1.5,backgroundColor:F?"grey.200":"inherit"},onClick:Z,children:T.trim()?e.jsx(w.SearchStatus,{}):e.jsx(w.Search,{})})})})}),e.jsx(h,{sx:{flexGrow:1,overflowY:"auto",py:1,"&::-webkit-scrollbar":{width:6},"&::-webkit-scrollbar-track":{backgroundColor:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:"rgba(0, 0, 0, 0.2)",borderRadius:3}},children:e.jsx(t,{className:"sidebar-list",sx:{p:0},children:re(B,null,0)})}),o.open&&e.jsx(h,{sx:{borderTop:"1px solid",borderColor:"theme.secondary.200",backgroundColor:"rgba(255, 255, 255, 0.5)"},children:e.jsxs(h,{sx:{padding:".75rem 1.5rem",display:"flex",alignItems:"self-start",gap:.5,justifyContent:"center"},children:[e.jsx(p,{sx:{color:"theme.secondary.600",fontSize:".85rem",fontWeight:500},children:"Crafted with"}),e.jsx(b.Icon,{sx:{color:"theme.error.500",width:"1rem",height:"1rem",fontSize:".75rem"},children:"❤️"}),e.jsx(p,{sx:{color:"theme.secondary.600",fontSize:".75rem",fontWeight:500},children:e.jsx("img",{src:v.images.erp_logo})})]})})]})}),e.jsx(b.IconButton,{size:"small",onClick:()=>o.forcedOpen?o.handleDrawerClose():o.handleDrawerOpen(),className:q?"drawer-expand-btn_rtl":"drawer-expand-btn",sx:{ml:"auto",backgroundColor:"rgba(0, 0, 0, 0.04)","&:hover":{backgroundColor:"grey.100"},width:"30px",height:"30px",borderRadius:"8px",borderTopLeftRadius:0,borderBottomLeftRadius:0,borderColor:"grey.500",...q?o.forcedOpen?{right:"299px",left:"auto"}:{right:"63px !important",left:"auto"}:o.forcedOpen?{left:"299px",right:"auto"}:{left:"63px !important",right:"auto"},transition:"all 0.3s ease-in-out"},children:"rtl"===o.theme.direction?o.forcedOpen?e.jsx(a,{fontSize:"small"}):e.jsx(i,{fontSize:"small"}):o.forcedOpen?e.jsx(i,{fontSize:"small"}):e.jsx(a,{fontSize:"small"})}),M.menu&&e.jsx($,{menu:M.menu,anchorEl:M.anchorEl,open:M.open,onClose:X,onItemClick:_,onSubmenuClick:Y,getActiveClassIf:W,breadcrumb:M.breadcrumb,onBreadcrumbClick:J})]})};
|
|
2
|
+
//# sourceMappingURL=sidebar-B3SExDRU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-DJREtRnK.js","sources":["../../src/assets/dynamic-svg-icon/dynamic-svg-icon.tsx","../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo } from 'react';\r\nimport { useTheme } from '@mui/material';\r\nimport SvgIcon from '@mui/material/SvgIcon';\r\n\r\n// Fixed DynamicSvgIcon without dangerouslySetInnerHTML conflict\r\nconst DynamicSvgIcon = ({ \r\n svgPath, \r\n sx = {}, \r\n color = 'inherit', \r\n fontSize = 'medium',\r\n ...props \r\n}) => {\r\n const [svgContent, setSvgContent] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState(false);\r\n const theme = useTheme();\r\n\r\n // Get the actual color value from theme\r\n const getColorValue = (colorProp) => {\r\n if (colorProp === 'inherit') return 'currentColor';\r\n if (colorProp === 'primary') return theme.palette.primary.main;\r\n if (colorProp === 'secondary') return theme.palette.secondary.main;\r\n if (colorProp === 'action') return theme.palette.action.active;\r\n if (colorProp === 'disabled') return theme.palette.action.disabled;\r\n if (colorProp === 'error') return theme.palette.error.main;\r\n if (colorProp === 'info') return theme.palette.info.main;\r\n if (colorProp === 'success') return theme.palette.success.main;\r\n if (colorProp === 'warning') return theme.palette.warning.main;\r\n if (colorProp === 'grey') return theme.palette.grey.main;\r\n return colorProp; // Assume it's a custom color value\r\n };\r\n\r\n const actualColor = getColorValue(color);\r\n\r\n useEffect(() => {\r\n if (!svgPath) return;\r\n\r\n const fetchSvg = async () => {\r\n try {\r\n setLoading(true);\r\n setError(false);\r\n \r\n const response = await fetch(svgPath);\r\n if (!response.ok) throw new Error('Failed to fetch SVG');\r\n \r\n const svgText = await response.text();\r\n setSvgContent(svgText);\r\n } catch (err) {\r\n console.error('Error loading SVG:', err);\r\n setError(true);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n fetchSvg();\r\n }, [svgPath]);\r\n\r\n // Parse SVG content and create React elements\r\n const svgElements = useMemo(() => {\r\n if (!svgContent) return null;\r\n\r\n try {\r\n // Create a temporary DOM element to parse the SVG\r\n const parser = new DOMParser();\r\n const svgDoc = parser.parseFromString(svgContent, 'image/svg+xml');\r\n const svgElement = svgDoc.querySelector('svg');\r\n \r\n if (!svgElement) return null;\r\n\r\n // Convert SVG children to React elements\r\n const convertToReactElement = (element, index = 0) => {\r\n const tagName = element.tagName.toLowerCase();\r\n const props = {};\r\n \r\n // Copy attributes\r\n Array.from(element.attributes).forEach(attr => {\r\n let propName = attr.name;\r\n \r\n // Convert attribute names to React props\r\n if (propName === 'class') propName = 'className';\r\n if (propName.includes('-')) {\r\n propName = propName.replace(/-([a-z])/g, (match, letter) => letter.toUpperCase());\r\n }\r\n \r\n let propValue = attr.value;\r\n \r\n // Apply color overrides\r\n if (actualColor && actualColor !== 'currentColor') {\r\n if (propName === 'fill' && propValue !== 'none') {\r\n propValue = actualColor;\r\n }\r\n if (propName === 'stroke' && propValue !== 'none') {\r\n propValue = actualColor;\r\n }\r\n }\r\n \r\n props[propName] = propValue;\r\n });\r\n\r\n props.key = index;\r\n\r\n // Handle children\r\n const children = Array.from(element.children).map((child, childIndex) =>\r\n convertToReactElement(child, `${index}-${childIndex}`)\r\n );\r\n\r\n // Handle text content\r\n if (element.childNodes.length === 1 && element.childNodes[0].nodeType === 3) {\r\n children.push(element.textContent);\r\n }\r\n\r\n return React.createElement(tagName, props, children.length > 0 ? children : null);\r\n };\r\n\r\n // Convert all children of the SVG element\r\n return Array.from(svgElement.children).map((child, index) =>\r\n convertToReactElement(child, index)\r\n );\r\n } catch (err) {\r\n console.error('Error parsing SVG:', err);\r\n return null;\r\n }\r\n }, [svgContent, actualColor]);\r\n\r\n if (loading) {\r\n return (\r\n <SvgIcon \r\n sx={{ \r\n width: 24, \r\n height: 24,\r\n ...sx \r\n }}\r\n color={color}\r\n fontSize={fontSize}\r\n {...props}\r\n >\r\n <circle cx=\"12\" cy=\"12\" r=\"8\" fill=\"currentColor\" opacity=\"0.3\" />\r\n </SvgIcon>\r\n );\r\n }\r\n\r\n if (error || !svgElements) {\r\n return (\r\n <SvgIcon \r\n sx={{ \r\n width: 24, \r\n height: 24,\r\n ...sx \r\n }}\r\n color={color}\r\n fontSize={fontSize}\r\n {...props}\r\n >\r\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" />\r\n </SvgIcon>\r\n );\r\n }\r\n\r\n return (\r\n <SvgIcon \r\n sx={{ \r\n color: actualColor,\r\n fill:'none',\r\n ...sx \r\n }}\r\n fontSize={fontSize}\r\n fontWeight={500}\r\n viewBox='0 0 16 16'\r\n {...props}\r\n >\r\n {svgElements}\r\n </SvgIcon>\r\n );\r\n};\r\n\r\nexport { DynamicSvgIcon };\r\nexport default DynamicSvgIcon","/* eslint-disable unused-imports/no-unused-vars */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { matchRoutes, useLocation, useNavigate } from 'react-router-dom'\r\n\r\nimport { styled, Theme, CSSObject } from '@mui/material/styles'\r\nimport MuiDrawer from '@mui/material/Drawer'\r\nimport List from '@mui/material/List'\r\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft'\r\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight'\r\nimport ListItem from '@mui/material/ListItem'\r\nimport ListItemButton from '@mui/material/ListItemButton'\r\nimport ListItemIcon from '@mui/material/ListItemIcon'\r\nimport IconExpandLess from '@mui/icons-material/ExpandLess'\r\nimport IconExpandMore from '@mui/icons-material/ExpandMore'\r\nimport Typography from '@mui/material/Typography'\r\nimport Box from '@mui/material/Box'\r\nimport { Icon, IconButton, Popover, Paper, ClickAwayListener } from '@mui/material'\r\nimport Collapse from '@mui/material/Collapse'\r\n\r\nimport Text from '../typography/typography'\r\nimport images from '../../assets/images'\r\n\r\nimport './sidebar.scss'\r\nimport SearchBar from '../search-bar/search-bar'\r\nimport Tooltip from '../tooltip/Tooltip'\r\nimport { useLanguage } from '../../hooks/useLangauge'\r\nimport DynamicSvgIcon from '../../assets/dynamic-svg-icon/dynamic-svg-icon'\r\nimport { Search, SearchStatus } from '../icons'\r\nimport { Pathname } from '../../constants/pathnames'\r\nimport { getApiConfig } from '@/utils'\r\n\r\n// Types\r\ninterface MenuItem {\r\n\tlabel: string\r\n\tlink: string\r\n\ticon?: string\r\n\tsubmenu?: MenuItem[]\r\n\tconnectedRoutes?: string[]\r\n}\r\n\r\ninterface CollapsedSubmenuState {\r\n\topen: boolean\r\n\tanchorEl: HTMLElement | null\r\n\tmenu: MenuItem | null\r\n\tbreadcrumb: MenuItem[]\r\n}\r\n\r\nlet drawerWidth: any\r\n\r\nconst openedMixin = (theme: Theme): CSSObject => ({\r\n\twidth: drawerWidth,\r\n\ttransition: theme.transitions.create('width', {\r\n\t\teasing: theme.transitions.easing.sharp,\r\n\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t}),\r\n\toverflowX: 'hidden',\r\n\tdisplay: 'flex',\r\n\tflexDirection: 'column',\r\n\tjustifyContent: 'space-between',\r\n\tborderRight: `1px solid ${theme.palette.theme?.secondary[200]}`,\r\n\tbackgroundColor: theme.palette.theme?.secondary[100],\r\n})\r\n\r\nconst closedMixin = (theme: Theme): CSSObject => ({\r\n\ttransition: theme.transitions.create('width', {\r\n\t\teasing: theme.transitions.easing.sharp,\r\n\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t}),\r\n\toverflowX: 'hidden',\r\n\twidth: `calc(${theme.spacing(7)} + 1px)`,\r\n\t[theme.breakpoints.up('sm')]: {\r\n\t\twidth: `calc(${theme.spacing(8)} + 1px)`,\r\n\t},\r\n\tborderRight: `1px solid ${theme.palette.theme?.secondary[200]}`,\r\n\tbackgroundColor: theme.palette.theme?.secondary[100],\r\n})\r\n\r\nconst Drawer = styled(MuiDrawer, {\r\n\tshouldForwardProp: (prop) => prop !== 'open',\r\n})(({ theme, open }) => ({\r\n\twidth: drawerWidth,\r\n\tflexShrink: 0,\r\n\twhiteSpace: 'nowrap',\r\n\tboxSizing: 'border-box',\r\n\t'.MuiDrawer-paper': {\r\n\t\tbackgroundColor: theme?.palette?.theme?.secondary?.[100],\r\n\t\toverflow: 'visible !important',\r\n\t\tzIndex: 1201,\r\n\t},\r\n\t...(open && {\r\n\t\t...openedMixin(theme),\r\n\t\t'& .MuiDrawer-paper': openedMixin(theme),\r\n\t}),\r\n\t...(!open && {\r\n\t\t...closedMixin(theme),\r\n\t\t'& .MuiDrawer-paper': closedMixin(theme),\r\n\t}),\r\n}))\r\n\r\nconst DrawerHeader = styled('div')(({ theme }) => ({\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\tjustifyContent: 'center',\r\n\tpadding: theme.spacing(0, 2),\r\n\t...theme.mixins.toolbar,\r\n\tminHeight: 64,\r\n}))\r\n\r\nconst SubmenuPopover = styled(Paper)(({ theme }) => ({\r\n\tminWidth: 250,\r\n\tmaxWidth: 350,\r\n\tmaxHeight: '80vh',\r\n\toverflowY: 'auto',\r\n\tbackgroundColor: theme.palette.theme?.secondary?.[100] || theme.palette.background.paper,\r\n\tborderRadius: 12,\r\n\tboxShadow: '0 8px 32px rgba(0, 0, 0, 0.12)',\r\n\tborder: `1px solid ${theme.palette.theme?.secondary?.[200] || theme.palette.divider}`,\r\n\t'&.MuiPaper-root': {\r\n\t\ttransformOrigin: 'top left',\r\n\t},\r\n\t'&::-webkit-scrollbar': {\r\n\t\twidth: 6,\r\n\t},\r\n\t'&::-webkit-scrollbar-track': {\r\n\t\tbackgroundColor: 'transparent',\r\n\t},\r\n\t'&::-webkit-scrollbar-thumb': {\r\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n\t\tborderRadius: 3,\r\n\t},\r\n}))\r\n\r\nconst BreadcrumbContainer = styled(Box)(({ theme }) => ({\r\n\tpadding: theme.spacing(1, 2),\r\n\tborderBottom: `1px solid ${theme.palette.theme?.secondary?.[200] || theme.palette.divider}`,\r\n\tbackgroundColor: theme.palette.theme?.secondary?.[50] || theme.palette.grey[50],\r\n}))\r\n\r\n// Enhanced CollapsedSubmenu component with nested support\r\nconst CollapsedSubmenu: React.FC<{\r\n\tmenu: MenuItem\r\n\tanchorEl: HTMLElement | null\r\n\topen: boolean\r\n\tonClose: () => void\r\n\tonItemClick: (item: MenuItem) => void\r\n\tonSubmenuClick: (item: MenuItem, event: React.MouseEvent<HTMLElement>) => void\r\n\tgetActiveClassIf: (paths: string[] | string) => boolean\r\n\tbreadcrumb: MenuItem[]\r\n\tonBreadcrumbClick: (item: MenuItem, index: number) => void\r\n}> = ({\r\n\tmenu,\r\n\tanchorEl,\r\n\topen,\r\n\tonClose,\r\n\tonItemClick,\r\n\tonSubmenuClick,\r\n\tgetActiveClassIf,\r\n\tbreadcrumb,\r\n\tonBreadcrumbClick,\r\n}) => {\r\n\t\tconst renderBreadcrumb = () => {\r\n\t\t\tif (breadcrumb.length <= 1) return null\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<BreadcrumbContainer>\r\n\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 0.5 }}>\r\n\t\t\t\t\t\t{breadcrumb.map((item, index) => (\r\n\t\t\t\t\t\t\t<React.Fragment key={index}>\r\n\t\t\t\t\t\t\t\t{index > 0 && <ChevronRightIcon sx={{ fontSize: 14, color: 'theme.secondary.400' }} />}\r\n\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\tvariant=\"caption\"\r\n\t\t\t\t\t\t\t\t\tonClick={() => onBreadcrumbClick(item, index)}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcursor: index < breadcrumb.length - 1 ? 'pointer' : 'default',\r\n\t\t\t\t\t\t\t\t\t\tcolor: index < breadcrumb.length - 1 ? 'primary.main' : 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: index === breadcrumb.length - 1 ? 600 : 400,\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '0.75rem',\r\n\t\t\t\t\t\t\t\t\t\t'&:hover':\r\n\t\t\t\t\t\t\t\t\t\t\tindex < breadcrumb.length - 1\r\n\t\t\t\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextDecoration: 'underline',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t: {},\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{item.label}\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t</React.Fragment>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</BreadcrumbContainer>\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<ClickAwayListener onClickAway={onClose}>\r\n\t\t\t\t<Popover\r\n\t\t\t\t\topen={open}\r\n\t\t\t\t\tanchorEl={anchorEl}\r\n\t\t\t\t\tonClose={onClose}\r\n\t\t\t\t\tanchorOrigin={{\r\n\t\t\t\t\t\tvertical: 'center',\r\n\t\t\t\t\t\thorizontal: 'right',\r\n\t\t\t\t\t}}\r\n\t\t\t\t\ttransformOrigin={{\r\n\t\t\t\t\t\tvertical: 'center',\r\n\t\t\t\t\t\thorizontal: 'left',\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tPaperComponent={SubmenuPopover}\r\n\t\t\t\t\televation={1}\r\n\t\t\t\t\tdisableRestoreFocus\r\n\t\t\t\t\tdisableAutoFocus\r\n\t\t\t\t\tdisableEnforceFocus\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tml: 0.5,\r\n\t\t\t\t\t\t'& .MuiPopover-paper': {\r\n\t\t\t\t\t\t\t// overflow: 'visible',\r\n\t\t\t\t\t\t\tmarginTop: 0,\r\n\t\t\t\t\t\t\tpointerEvents: 'auto',\r\n\t\t\t\t\t\t\t// border: '1px solid',\r\n\t\t\t\t\t\t\t// borderColor: 'theme.secondary.200',\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t\ttransitionDuration={200}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t{renderBreadcrumb()}\r\n\r\n\t\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\tvariant=\"subtitle2\"\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\t\tpy: 1,\r\n\t\t\t\t\t\t\t\t\tfontWeight: 600,\r\n\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.1000',\r\n\t\t\t\t\t\t\t\t\tborderBottom: breadcrumb.length > 1 ? 'none' : '1px solid',\r\n\t\t\t\t\t\t\t\t\tborderColor: 'theme.secondary.200',\r\n\t\t\t\t\t\t\t\t\tmb: 0.5,\r\n\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{menu.label}\r\n\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t<List component=\"div\" sx={{ py: 0 }}>\r\n\t\t\t\t\t\t\t\t{menu.submenu?.map((subItem: MenuItem, index: number) => {\r\n\t\t\t\t\t\t\t\t\tconst isActive = getActiveClassIf([...(subItem?.connectedRoutes || []), ...[subItem.link]])\r\n\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t<ListItem key={index} disablePadding>\r\n\t\t\t\t\t\t\t\t\t\t\t<ListItemButton\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (subItem.submenu?.length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSubmenuClick(subItem, e)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonItemClick(subItem)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tselected={isActive}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={(theme) => ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tminHeight: 32,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// px: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// py: 0.75,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1.5,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// mx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmb: 0.25,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'&.Mui-selected': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[100],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'primary.main',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'& .MuiListItemIcon-root': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'primary.main',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'&.Mui-selected:hover': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[200],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{subItem.icon && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ListItemIcon sx={{ minWidth: 32 }}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc={subItem.icon}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talt={subItem.label + ' icon'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// width={20}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// height={20}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ opacity: 0.8 }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ListItemIcon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Text\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype={'s3'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tweight=\"normal\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={'theme.secondary.1000'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.4,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{subItem.label}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{subItem.submenu?.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ChevronRightIcon\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 18,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.500',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tml: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</ListItemButton>\r\n\t\t\t\t\t\t\t\t\t\t</ListItem>\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t</List>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Popover>\r\n\t\t\t</ClickAwayListener>\r\n\t\t)\r\n\t}\r\n\r\ninterface SidebarProps {\r\n\twidth: number\r\n\topen: boolean\r\n\tmenu: MenuItem[]\r\n\ttheme: any\r\n\tforcedOpen: boolean\r\n\thandleMouseEnter: () => void\r\n\thandleMouseLeave: () => void\r\n\thandleDrawerClose: () => void\r\n\thandleDrawerOpen: () => void\r\n\tdashboardPath?: string\r\n}\r\n\r\nexport const Sidebar: React.FC<SidebarProps> = (props) => {\r\n\tconst navigate = useNavigate()\r\n\tconst currentLocation = useLocation()\r\n\tconst { currentLanguage } = useLanguage()\r\n\tconst isRtl = useMemo(() => currentLanguage?.direction === 'rtl', [currentLanguage])\r\n\tconst [collapsedSubmenuState, setCollapsedSubmenuState] = useState<CollapsedSubmenuState>({\r\n\t\topen: false,\r\n\t\tanchorEl: null,\r\n\t\tmenu: null,\r\n\t\tbreadcrumb: [],\r\n\t})\r\n\r\n\tconst [menus, setMenus] = useState<MenuItem[]>([])\r\n\tconst [search, setSearch] = useState<string>('')\r\n\tconst [openSubmenuArray, setOpenSubmenuArray] = useState<string[]>([])\r\n\tconst [isOpenSearchTooltop, setIsOpenSearchTooltop] = useState<boolean>(false)\r\n\r\n\t// Enhanced active class checker\r\n\tconst getActiveClassIf = useCallback(\r\n\t\t(paths: string[] | string) => {\r\n\t\t\tconst shouldMatch: { path: string }[] = Array.isArray(paths)\r\n\t\t\t\t? paths.map((path: string) => ({ path }))\r\n\t\t\t\t: [{ path: paths }]\r\n\r\n\t\t\treturn Boolean(matchRoutes(shouldMatch, currentLocation))\r\n\t\t},\r\n\t\t[currentLocation]\r\n\t)\r\n\r\n\t// Find if any submenu item is active (for parent selection when collapsed)\r\n\tconst isSubmenuActive = useCallback(\r\n\t\t(menu: MenuItem): boolean => {\r\n\t\t\tif (!menu.submenu?.length) return false\r\n\r\n\t\t\tfor (const subItem of menu.submenu) {\r\n\t\t\t\tconst isActive = getActiveClassIf([...(subItem?.connectedRoutes || []), ...[subItem.link]])\r\n\r\n\t\t\t\tif (isActive || isSubmenuActive(subItem)) {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false\r\n\t\t},\r\n\t\t[getActiveClassIf]\r\n\t)\r\n\r\n\t// Get all menu paths for a menu item (including nested)\r\n\tconst getAllMenuPaths = useCallback((menu: MenuItem): string[] => {\r\n\t\tconst paths: string[] = []\r\n\r\n\t\tif (menu.link) {\r\n\t\t\tpaths.push(menu.link)\r\n\t\t}\r\n\r\n\t\tif (menu.connectedRoutes?.length) {\r\n\t\t\tpaths.push(...menu.connectedRoutes)\r\n\t\t}\r\n\r\n\t\tif (menu.submenu?.length) {\r\n\t\t\tmenu.submenu.forEach((subItem) => {\r\n\t\t\t\tpaths.push(...getAllMenuPaths(subItem))\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn paths\r\n\t}, [])\r\n\r\n\t// Enhanced collapsed menu click handler\r\n\tconst handleCollapsedMenuClick = useCallback(\r\n\t\t(event: React.MouseEvent<HTMLElement>, menu: MenuItem) => {\r\n\t\t\tevent.stopPropagation()\r\n\r\n\t\t\tif (!props.open && menu.submenu?.length > 0) {\r\n\t\t\t\tif (collapsedSubmenuState.open && collapsedSubmenuState.menu?.label === menu.label) {\r\n\t\t\t\t\tsetCollapsedSubmenuState({\r\n\t\t\t\t\t\topen: false,\r\n\t\t\t\t\t\tanchorEl: null,\r\n\t\t\t\t\t\tmenu: null,\r\n\t\t\t\t\t\tbreadcrumb: [],\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsetCollapsedSubmenuState({\r\n\t\t\t\t\t\topen: true,\r\n\t\t\t\t\t\tanchorEl: event.currentTarget,\r\n\t\t\t\t\t\tmenu: menu,\r\n\t\t\t\t\t\tbreadcrumb: [menu],\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t[props.open, collapsedSubmenuState]\r\n\t)\r\n\r\n\t// Handle submenu navigation in collapsed mode\r\n\tconst handleCollapsedSubmenuClick = useCallback((item: MenuItem, event: React.MouseEvent<HTMLElement>) => {\r\n\t\tif (item.submenu?.length) {\r\n\t\t\tsetCollapsedSubmenuState((prev) => ({\r\n\t\t\t\t...prev,\r\n\t\t\t\tmenu: item,\r\n\t\t\t\tbreadcrumb: [...prev.breadcrumb, item],\r\n\t\t\t}))\r\n\t\t}\r\n\t}, [])\r\n\r\n\t// Handle breadcrumb navigation\r\n\tconst handleBreadcrumbClick = useCallback((item: MenuItem, index: number) => {\r\n\t\tsetCollapsedSubmenuState((prev) => ({\r\n\t\t\t...prev,\r\n\t\t\tmenu: item,\r\n\t\t\tbreadcrumb: prev.breadcrumb.slice(0, index + 1),\r\n\t\t}))\r\n\t}, [])\r\n\r\n\tconst handleCollapsedSubmenuClose = useCallback(() => {\r\n\t\tsetCollapsedSubmenuState({\r\n\t\t\topen: false,\r\n\t\t\tanchorEl: null,\r\n\t\t\tmenu: null,\r\n\t\t\tbreadcrumb: [],\r\n\t\t})\r\n\t}, [])\r\n\r\n\tconst handleSubmenuItemClick = useCallback(\r\n\t\t(item: MenuItem) => {\r\n\t\t\tnavigate(item.link)\r\n\t\t},\r\n\t\t[navigate]\r\n\t)\r\n\r\n\t// Enhanced menu click handler\r\n\tconst handleMenuClick = useCallback(\r\n\t\t(menu: MenuItem, parent: MenuItem | null, index: number) => {\r\n\t\t\tif (!props.open && menu.submenu?.length > 0) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (!menu.submenu?.length) {\r\n\t\t\t\tnavigate(menu.link)\r\n\t\t\t\tif (!parent) {\r\n\t\t\t\t\tsetOpenSubmenuArray([])\r\n\t\t\t\t}\r\n\t\t\t} else if (menu.submenu?.length && menu.submenu[index]?.link) {\r\n\t\t\t\tnavigate(`${menu.link}${menu.submenu[index].link}`)\r\n\t\t\t} else {\r\n\t\t\t\tconst menuKey = `${parent?.label || ''}-${menu.label}`\r\n\r\n\t\t\t\tif (openSubmenuArray.includes(menuKey)) {\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\tconst newSubArray = openSubmenuArray.filter((f) => f !== menuKey)\r\n\t\t\t\t\t\tsetOpenSubmenuArray([...newSubArray])\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsetOpenSubmenuArray([])\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\tsetOpenSubmenuArray([...openSubmenuArray, menuKey])\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsetOpenSubmenuArray([menuKey])\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t[props.open, navigate, openSubmenuArray]\r\n\t)\r\n\r\n\t// Enhanced search functionality\r\n\tconst filterMenuOnSearch = useCallback((menu: MenuItem[], search: string): MenuItem[] => {\r\n\t\treturn menu\r\n\t\t\t.filter((m: MenuItem) => {\r\n\t\t\t\tif (m?.label?.toLowerCase()?.includes(search)) {\r\n\t\t\t\t\treturn m\r\n\t\t\t\t} else if (m?.submenu?.length) {\r\n\t\t\t\t\tm.submenu = filterMenuOnSearch(m?.submenu, search)\r\n\t\t\t\t\treturn m.submenu?.length > 0 ? m : null\r\n\t\t\t\t}\r\n\t\t\t\treturn null\r\n\t\t\t})\r\n\t\t\t.filter(Boolean)\r\n\t}, [])\r\n\r\n\tconst handleSidebarSearch = useCallback(\r\n\t\t(search: string) => {\r\n\t\t\tif (!search) {\r\n\t\t\t\tsetMenus(props.menu || [])\r\n\t\t\t} else {\r\n\t\t\t\tconst searchTerm = search.toLowerCase()\r\n\t\t\t\tconst menuItems = props?.menu ? JSON.parse(JSON.stringify(props.menu)) : []\r\n\t\t\t\tconst filteredMenu = filterMenuOnSearch(menuItems, searchTerm)\r\n\t\t\t\tsetMenus(filteredMenu)\r\n\t\t\t}\r\n\t\t},\r\n\t\t[props.menu, filterMenuOnSearch]\r\n\t)\r\n\r\n\tconst handleOpenSearchTooltip = useCallback(() => setIsOpenSearchTooltop(true), []);\r\n\tconst handleCloseSearchTooltip = useCallback(() => setIsOpenSearchTooltop(false), []);\r\n\r\n\t// Enhanced menu renderer with better nested support\r\n\tconst renderMenu = useCallback(\r\n\t\t(menus: MenuItem[], parent: MenuItem | null, level: number) => {\r\n\t\t\treturn menus?.map((menu: MenuItem, index: number) => {\r\n\t\t\t\tconst menuKey = `${parent?.label || ''}-${menu.label}`\r\n\t\t\t\tconst isMenuActive = getActiveClassIf([...(menu?.connectedRoutes || []), ...[menu.link]])\r\n\r\n\t\t\t\t// Check if any nested submenu is active (for collapsed state parent selection)\r\n\t\t\t\tconst hasActiveSubmenu = !props.open && isSubmenuActive(menu)\r\n\t\t\t\tconst shouldHighlightParent = isMenuActive || hasActiveSubmenu\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Tooltip\r\n\t\t\t\t\t\ttitle={menu.label}\r\n\t\t\t\t\t\tplacement=\"right\"\r\n\t\t\t\t\t\tarrow\r\n\t\t\t\t\t\tkey={`${menu.label}-${index}`}\r\n\t\t\t\t\t\tdisableHoverListener={props.open}\r\n\t\t\t\t\t\tdisableFocusListener={props.open}\r\n\t\t\t\t\t\tdisableTouchListener={props.open}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ListItem\r\n\t\t\t\t\t\t\tdisablePadding\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tdisplay: 'block',\r\n\t\t\t\t\t\t\t\t// mb: 0.5,\r\n\t\t\t\t\t\t\t\t...(isRtl && {\r\n\t\t\t\t\t\t\t\t\tpadding: 0,\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<ListItemButton\r\n\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\tif (!props.open && menu.submenu?.length > 0) {\r\n\t\t\t\t\t\t\t\t\t\thandleCollapsedMenuClick(e, menu)\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\thandleMenuClick(menu, parent, menu?.submenu ? -1 : index)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tselected={shouldHighlightParent}\r\n\t\t\t\t\t\t\t\tsx={(theme) => ({\r\n\t\t\t\t\t\t\t\t\tminHeight: props.open ? 32 : 32,\r\n\t\t\t\t\t\t\t\t\tjustifyContent: props.open ? 'initial' : 'center',\r\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\tborderRadius: 2,\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t// mx: props.open ? 1 : 0.5,\r\n\t\t\t\t\t\t\t\t\t// px: props.open ? 2 : 1,\r\n\t\t\t\t\t\t\t\t\t// py: 1,\r\n\t\t\t\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease-in-out',\r\n\r\n\t\t\t\t\t\t\t\t\t'&.Mui-selected': {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[100],\r\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.primary[800],\r\n\t\t\t\t\t\t\t\t\t\t'& .MuiListItemIcon-root': {\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.primary[800],\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t'& .MuiTypography-root': {\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.primary[800],\r\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t'&.Mui-selected:hover': {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[200],\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: props.open ? 'rgba(0, 0, 0, 0.04)' : 'rgba(0, 0, 0, 0.08)',\r\n\t\t\t\t\t\t\t\t\t\ttransform: props.open ? 'none' : 'scale(1.02)',\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t...(!props.open &&\r\n\t\t\t\t\t\t\t\t\t\tmenu.submenu?.length > 0 && {\r\n\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\t\t\t\t\t'&::after': {\r\n\t\t\t\t\t\t\t\t\t\t\tcontent: '\"\"',\r\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\t\t\t\t...(isRtl\r\n\t\t\t\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tleft: 8,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRight: '5px solid',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tright: 8,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderLeft: '5px solid',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t\t\t\ttop: '25%',\r\n\t\t\t\t\t\t\t\t\t\t\ttransform: 'translateY(-50%)',\r\n\t\t\t\t\t\t\t\t\t\t\twidth: 0,\r\n\t\t\t\t\t\t\t\t\t\t\theight: 0,\r\n\t\t\t\t\t\t\t\t\t\t\tborderTop: '4px solid transparent',\r\n\t\t\t\t\t\t\t\t\t\t\tborderBottom: '4px solid transparent',\r\n\t\t\t\t\t\t\t\t\t\t\tborderColor: 'currentColor transparent transparent transparent',\r\n\t\t\t\t\t\t\t\t\t\t\topacity: 0.7,\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<ListItemIcon\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tminWidth: props.open ? 'auto' : 0,\r\n\t\t\t\t\t\t\t\t\t\t// mr: props.open ? 1 : 'auto',\r\n\t\t\t\t\t\t\t\t\t\t...(isRtl ? { ml: 0 } : {}),\r\n\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\r\n\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease-in-out',\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{menu.icon ? (\r\n\t\t\t\t\t\t\t\t\t\t<DynamicSvgIcon svgPath={menu.icon} color={shouldHighlightParent ? 'primary' : 'grey'} fontSize={props.open ? 'small' : 'medium'} />\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<ChevronRightIcon\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: props.open ? 24 : 28,\r\n\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease-in-out',\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</ListItemIcon>\r\n\r\n\t\t\t\t\t\t\t\t{props.open && (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t\t\t\t\t\toverflow: 'hidden',\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Text\r\n\t\t\t\t\t\t\t\t\t\t\ttype={'s3'}\r\n\t\t\t\t\t\t\t\t\t\t\tweight={level === 0 ? 'medium' : 'normal'}\r\n\t\t\t\t\t\t\t\t\t\t\tcolor={'theme.secondary.1000'}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\tpl: level * 1.5,\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: level === 0 ? '0.875rem' : '0.8125rem',\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.4,\r\n\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: 'nowrap',\r\n\t\t\t\t\t\t\t\t\t\t\t\toverflow: 'hidden',\r\n\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: 'ellipsis',\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{menu.label}\r\n\t\t\t\t\t\t\t\t\t\t</Text>\r\n\r\n\t\t\t\t\t\t\t\t\t\t{menu.submenu?.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tml: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'transform 0.2s ease-in-out',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{openSubmenuArray.includes(menuKey) ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconExpandLess\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 20,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconExpandMore\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 20,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</ListItemButton>\r\n\r\n\t\t\t\t\t\t\t{openSubmenuArray.includes(menuKey) && menu.submenu?.length > 0 && props.open && (\r\n\t\t\t\t\t\t\t\t<Collapse in={openSubmenuArray.includes(menuKey)} timeout=\"auto\" unmountOnExit>\r\n\t\t\t\t\t\t\t\t\t<List component=\"div\" disablePadding sx={{ mt: 0.5 }}>\r\n\t\t\t\t\t\t\t\t\t\t{renderMenu(menu.submenu, menu, level + 1)}\r\n\t\t\t\t\t\t\t\t\t</List>\r\n\t\t\t\t\t\t\t\t</Collapse>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</ListItem>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t)\r\n\t\t\t})\r\n\t\t},\r\n\t\t[props.open, openSubmenuArray, getActiveClassIf, handleCollapsedMenuClick, handleMenuClick, isSubmenuActive, isRtl]\r\n\t)\r\n\r\n\t// Enhanced useEffect for auto-expanding active menus\r\n\tuseEffect(() => {\r\n\t\thandleSidebarSearch(search)\r\n\r\n\t\tif (props.menu?.length) {\r\n\t\t\tconst expandedMenus: string[] = []\r\n\r\n\t\t\tconst checkAndExpandMenu = (menuItems: MenuItem[], parentLabel = '') => {\r\n\t\t\t\tmenuItems.forEach((menu) => {\r\n\t\t\t\t\tif (menu?.submenu?.length) {\r\n\t\t\t\t\t\tconst menuKey = `${parentLabel}-${menu.label}`\r\n\t\t\t\t\t\tconst allPaths = getAllMenuPaths(menu)\r\n\r\n\t\t\t\t\t\tif (getActiveClassIf(allPaths)) {\r\n\t\t\t\t\t\t\texpandedMenus.push(menuKey)\r\n\t\t\t\t\t\t\tcheckAndExpandMenu(menu.submenu, menu.label)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tcheckAndExpandMenu(props.menu)\r\n\t\t\tsetOpenSubmenuArray(expandedMenus)\r\n\t\t}\r\n\t}, [getActiveClassIf, handleSidebarSearch, props.menu, search, getAllMenuPaths])\r\n\r\n\tuseEffect(() => {\r\n\t\tif (props.open) {\r\n\t\t\thandleCollapsedSubmenuClose()\r\n\t\t}\r\n\t}, [props.open, handleCollapsedSubmenuClose])\r\n\r\n\tdrawerWidth = props.width\r\n\r\n\tconst appLogo = getApiConfig().appLogo || images.logo\r\n\tconst appFavicon = getApiConfig().appFavicon || images.favicon\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Drawer\r\n\t\t\t\tvariant=\"permanent\"\r\n\t\t\t\topen={props.open}\r\n\t\t\t\tanchor={document.body.dir === 'rtl' ? 'right' : 'left'}\r\n\t\t\t\tonMouseEnter={props.handleMouseEnter}\r\n\t\t\t\tonMouseLeave={props.handleMouseLeave}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\tflexDirection: 'column',\r\n\t\t\t\t\t\theight: '100%',\r\n\t\t\t\t\t\tbackgroundColor: 'grey.100',\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{/* Header */}\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={(theme) => ({\r\n\t\t\t\t\t\t\tborderBottom: `1px solid ${theme.palette.theme?.secondary?.[200] || theme.palette.divider}`,\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<DrawerHeader>\r\n\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\tsrc={props.open ? appLogo : appFavicon}\r\n\t\t\t\t\t\t\t\talt={props.open ? 'logo' : 'favicon'}\r\n\t\t\t\t\t\t\t\twidth={!props.open && 40}\r\n\t\t\t\t\t\t\t\theight={55}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttransition: 'all 0.3s ease-in-out',\r\n\t\t\t\t\t\t\t\t\tfilter: 'brightness(1.1)',\r\n\t\t\t\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => navigate(props.dashboardPath || Pathname.DASHBOARD)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</DrawerHeader>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t{/* Search Bar */}\r\n\t\t\t\t\t{props.open ? (\r\n\t\t\t\t\t\t<Box sx={{ px: 1.5, py: 1.5, borderBottom: '1px solid', borderColor: 'theme.secondary.200' }}>\r\n\t\t\t\t\t\t\t<SearchBar className=\"sidebar-search\" handleSearch={setSearch} placeholder=\"Search menu...\" value={search} sx={{ '&.MuiTextField-root': { backgroundColor: 'grey.200', border: '1px solid', borderColor: 'grey.200', borderRadius: 1 } }} />\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<ClickAwayListener onClickAway={handleCloseSearchTooltip}>\r\n\t\t\t\t\t\t\t<Box sx={{ p: 1, pb: 0, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n\t\t\t\t\t\t\t\t<Tooltip\r\n\t\t\t\t\t\t\t\t\ttitle={\r\n\t\t\t\t\t\t\t\t\t\t<SearchBar\r\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"sidebar-search\"\r\n\t\t\t\t\t\t\t\t\t\t\thandleSearch={setSearch}\r\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Search menu...\"\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={search}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ '&.MuiTextField-root': { backgroundColor: 'transparent' } }}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tplacement=\"right\"\r\n\t\t\t\t\t\t\t\t\tarrow\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tp: 0,\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\r\n\t\t\t\t\t\t\t\t\t\tborder: '1px solid',\r\n\t\t\t\t\t\t\t\t\t\tborderColor: 'grey.300',\r\n\t\t\t\t\t\t\t\t\t\t'& .MuiTooltip-arrow': {\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: 'grey.300',\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\tml: '8px !important'\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\topen={isOpenSearchTooltop}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<IconButton color='inherit' sx={{ borderRadius: 2, p: 1.5, backgroundColor: isOpenSearchTooltop ? 'grey.200' : 'inherit' }} onClick={handleOpenSearchTooltip}>\r\n\t\t\t\t\t\t\t\t\t\t{search.trim() ? <SearchStatus /> : <Search />}\r\n\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</ClickAwayListener>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{/* Menu List */}\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\toverflowY: 'auto',\r\n\t\t\t\t\t\t\tpy: 1,\r\n\t\t\t\t\t\t\t'&::-webkit-scrollbar': {\r\n\t\t\t\t\t\t\t\twidth: 6,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t'&::-webkit-scrollbar-track': {\r\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t'&::-webkit-scrollbar-thumb': {\r\n\t\t\t\t\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n\t\t\t\t\t\t\t\tborderRadius: 3,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<List className=\"sidebar-list\" sx={{ p: 0 }}>\r\n\t\t\t\t\t\t\t{renderMenu(menus, null, 0)}\r\n\t\t\t\t\t\t</List>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t{/* Footer */}\r\n\t\t\t\t\t{props.open && (\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tborderTop: '1px solid',\r\n\t\t\t\t\t\t\t\tborderColor: 'theme.secondary.200',\r\n\t\t\t\t\t\t\t\tbackgroundColor: 'rgba(255, 255, 255, 0.5)',\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tpadding: '.75rem 1.5rem',\r\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\talignItems: 'self-start',\r\n\t\t\t\t\t\t\t\t\tgap: 0.5,\r\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '.85rem',\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\tCrafted with\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t<Icon\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: 'theme.error.500',\r\n\t\t\t\t\t\t\t\t\t\twidth: '1rem',\r\n\t\t\t\t\t\t\t\t\t\theight: '1rem',\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '.75rem',\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t❤️\r\n\t\t\t\t\t\t\t\t</Icon>\r\n\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '.75rem',\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<img src={images.erp_logo} />\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Box>\r\n\t\t\t</Drawer>\r\n\t\t\t<IconButton\r\n\t\t\t\tsize=\"small\"\r\n\t\t\t\tonClick={() => (props.forcedOpen ? props.handleDrawerClose() : props.handleDrawerOpen())}\r\n\t\t\t\tclassName={isRtl ? 'drawer-expand-btn_rtl' : 'drawer-expand-btn'}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tml: 'auto',\r\n\t\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\tbackgroundColor: 'grey.100',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// transition: 'all 0.2s ease-in-out',\r\n\t\t\t\t\twidth: '30px',\r\n\t\t\t\t\theight: '30px',\r\n\t\t\t\t\tborderRadius: `8px`,\r\n\t\t\t\t\tborderTopLeftRadius: 0,\r\n\t\t\t\t\tborderBottomLeftRadius: 0,\r\n\t\t\t\t\tborderColor: 'grey.500',\r\n\t\t\t\t\t...(isRtl\r\n\t\t\t\t\t\t? !props.forcedOpen\r\n\t\t\t\t\t\t\t? { right: '63px !important', left: 'auto' }\r\n\t\t\t\t\t\t\t: { right: '299px', left: 'auto' }\r\n\t\t\t\t\t\t: !props.forcedOpen\r\n\t\t\t\t\t\t\t? { left: '63px !important', right: 'auto' }\r\n\t\t\t\t\t\t\t: { left: '299px', right: 'auto' }),\r\n\t\t\t\t\ttransition: 'all 0.3s ease-in-out',\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t{props.theme.direction === 'rtl' ? (\r\n\t\t\t\t\tprops.forcedOpen ? (\r\n\t\t\t\t\t\t<ChevronRightIcon fontSize=\"small\" />\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<ChevronLeftIcon fontSize=\"small\" />\r\n\t\t\t\t\t)\r\n\t\t\t\t) : props.forcedOpen ? (\r\n\t\t\t\t\t<ChevronLeftIcon fontSize=\"small\" />\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<ChevronRightIcon fontSize=\"small\" />\r\n\t\t\t\t)}\r\n\t\t\t</IconButton>\r\n\t\t\t{/* Collapsed Submenu Popover */}\r\n\t\t\t{collapsedSubmenuState.menu && (\r\n\t\t\t\t<CollapsedSubmenu\r\n\t\t\t\t\tmenu={collapsedSubmenuState.menu}\r\n\t\t\t\t\tanchorEl={collapsedSubmenuState.anchorEl}\r\n\t\t\t\t\topen={collapsedSubmenuState.open}\r\n\t\t\t\t\tonClose={handleCollapsedSubmenuClose}\r\n\t\t\t\t\tonItemClick={handleSubmenuItemClick}\r\n\t\t\t\t\tonSubmenuClick={handleCollapsedSubmenuClick}\r\n\t\t\t\t\tgetActiveClassIf={getActiveClassIf}\r\n\t\t\t\t\tbreadcrumb={collapsedSubmenuState.breadcrumb}\r\n\t\t\t\t\tonBreadcrumbClick={handleBreadcrumbClick}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t</>\r\n\t)\r\n}\r\n\r\nexport default Sidebar\r\n"],"names":["DynamicSvgIcon","svgPath","sx","color","fontSize","props","svgContent","setSvgContent","useState","loading","setLoading","error","setError","theme","useTheme","actualColor","colorProp","palette","primary","main","secondary","action","active","disabled","info","success","warning","grey","useEffect","async","response","fetch","ok","Error","svgText","text","err","console","fetchSvg","svgElements","useMemo","svgElement","DOMParser","parseFromString","querySelector","convertToReactElement","element","index","tagName","toLowerCase","Array","from","attributes","forEach","attr","propName","name","includes","replace","match","letter","toUpperCase","propValue","value","key","children","map","child","childIndex","childNodes","length","nodeType","push","textContent","React","createElement","jsx","SvgIcon","width","height","cx","cy","r","fill","opacity","d","fontWeight","viewBox","drawerWidth","openedMixin","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","display","flexDirection","justifyContent","borderRight","_a","backgroundColor","_b","closedMixin","leavingScreen","spacing","breakpoints","up","Drawer","styled","MuiDrawer","shouldForwardProp","prop","open","flexShrink","whiteSpace","boxSizing","_c","overflow","zIndex","DrawerHeader","alignItems","padding","mixins","toolbar","minHeight","SubmenuPopover","Paper","minWidth","maxWidth","maxHeight","overflowY","background","paper","borderRadius","boxShadow","border","_d","divider","transformOrigin","BreadcrumbContainer","Box","borderBottom","CollapsedSubmenu","menu","anchorEl","onClose","onItemClick","onSubmenuClick","getActiveClassIf","breadcrumb","onBreadcrumbClick","ClickAwayListener","onClickAway","Popover","anchorOrigin","vertical","horizontal","PaperComponent","elevation","disableRestoreFocus","disableAutoFocus","disableEnforceFocus","ml","marginTop","pointerEvents","transitionDuration","flexWrap","gap","item","jsxs","Fragment","ChevronRightIcon","Typography","variant","onClick","cursor","textDecoration","label","px","py","borderColor","mb","List","component","submenu","subItem","isActive","connectedRoutes","link","ListItem","disablePadding","ListItemButton","e","selected","position","icon","ListItemIcon","src","alt","style","Text","type","weight","flexGrow","lineHeight","navigate","useNavigate","currentLocation","useLocation","currentLanguage","useLanguage","isRtl","direction","collapsedSubmenuState","setCollapsedSubmenuState","menus","setMenus","search","setSearch","openSubmenuArray","setOpenSubmenuArray","isOpenSearchTooltop","setIsOpenSearchTooltop","useCallback","paths","shouldMatch","isArray","path","Boolean","matchRoutes","isSubmenuActive","getAllMenuPaths","handleCollapsedMenuClick","event","stopPropagation","currentTarget","handleCollapsedSubmenuClick","prev","handleBreadcrumbClick","slice","handleCollapsedSubmenuClose","handleSubmenuItemClick","handleMenuClick","parent","menuKey","newSubArray","filter","f","filterMenuOnSearch","m","handleSidebarSearch","searchTerm","menuItems","JSON","parse","stringify","filteredMenu","handleOpenSearchTooltip","handleCloseSearchTooltip","renderMenu","level","isMenuActive","hasActiveSubmenu","shouldHighlightParent","Tooltip","title","placement","arrow","disableHoverListener","disableFocusListener","disableTouchListener","_e","transform","_f","content","left","right","borderLeft","top","borderTop","pl","textOverflow","IconExpandLess","IconExpandMore","Collapse","in","timeout","unmountOnExit","mt","expandedMenus","checkAndExpandMenu","parentLabel","allPaths","appLogo","getApiConfig","images","logo","appFavicon","favicon","anchor","document","body","dir","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","dashboardPath","Pathname","DASHBOARD","SearchBar","className","handleSearch","placeholder","p","pb","IconButton","trim","SearchStatus","Search","Icon","erp_logo","size","forcedOpen","handleDrawerClose","handleDrawerOpen","borderTopLeftRadius","borderBottomLeftRadius","ChevronLeftIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sidebar-B3SExDRU.js","sources":["../../src/assets/dynamic-svg-icon/dynamic-svg-icon.tsx","../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import React, { useState, useEffect, useMemo } from 'react';\r\nimport { useTheme } from '@mui/material';\r\nimport SvgIcon from '@mui/material/SvgIcon';\r\n\r\n// Fixed DynamicSvgIcon without dangerouslySetInnerHTML conflict\r\nconst DynamicSvgIcon = ({ \r\n svgPath, \r\n sx = {}, \r\n color = 'inherit', \r\n fontSize = 'medium',\r\n ...props \r\n}) => {\r\n const [svgContent, setSvgContent] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState(false);\r\n const theme = useTheme();\r\n\r\n // Get the actual color value from theme\r\n const getColorValue = (colorProp) => {\r\n if (colorProp === 'inherit') return 'currentColor';\r\n if (colorProp === 'primary') return theme.palette.primary.main;\r\n if (colorProp === 'secondary') return theme.palette.secondary.main;\r\n if (colorProp === 'action') return theme.palette.action.active;\r\n if (colorProp === 'disabled') return theme.palette.action.disabled;\r\n if (colorProp === 'error') return theme.palette.error.main;\r\n if (colorProp === 'info') return theme.palette.info.main;\r\n if (colorProp === 'success') return theme.palette.success.main;\r\n if (colorProp === 'warning') return theme.palette.warning.main;\r\n if (colorProp === 'grey') return theme.palette.grey.main;\r\n return colorProp; // Assume it's a custom color value\r\n };\r\n\r\n const actualColor = getColorValue(color);\r\n\r\n useEffect(() => {\r\n if (!svgPath) return;\r\n\r\n const fetchSvg = async () => {\r\n try {\r\n setLoading(true);\r\n setError(false);\r\n \r\n const response = await fetch(svgPath);\r\n if (!response.ok) throw new Error('Failed to fetch SVG');\r\n \r\n const svgText = await response.text();\r\n setSvgContent(svgText);\r\n } catch (err) {\r\n console.error('Error loading SVG:', err);\r\n setError(true);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n fetchSvg();\r\n }, [svgPath]);\r\n\r\n // Parse SVG content and create React elements\r\n const svgElements = useMemo(() => {\r\n if (!svgContent) return null;\r\n\r\n try {\r\n // Create a temporary DOM element to parse the SVG\r\n const parser = new DOMParser();\r\n const svgDoc = parser.parseFromString(svgContent, 'image/svg+xml');\r\n const svgElement = svgDoc.querySelector('svg');\r\n \r\n if (!svgElement) return null;\r\n\r\n // Convert SVG children to React elements\r\n const convertToReactElement = (element, index = 0) => {\r\n const tagName = element.tagName.toLowerCase();\r\n const props = {};\r\n \r\n // Copy attributes\r\n Array.from(element.attributes).forEach(attr => {\r\n let propName = attr.name;\r\n \r\n // Convert attribute names to React props\r\n if (propName === 'class') propName = 'className';\r\n if (propName.includes('-')) {\r\n propName = propName.replace(/-([a-z])/g, (match, letter) => letter.toUpperCase());\r\n }\r\n \r\n let propValue = attr.value;\r\n \r\n // Apply color overrides\r\n if (actualColor && actualColor !== 'currentColor') {\r\n if (propName === 'fill' && propValue !== 'none') {\r\n propValue = actualColor;\r\n }\r\n if (propName === 'stroke' && propValue !== 'none') {\r\n propValue = actualColor;\r\n }\r\n }\r\n \r\n props[propName] = propValue;\r\n });\r\n\r\n props.key = index;\r\n\r\n // Handle children\r\n const children = Array.from(element.children).map((child, childIndex) =>\r\n convertToReactElement(child, `${index}-${childIndex}`)\r\n );\r\n\r\n // Handle text content\r\n if (element.childNodes.length === 1 && element.childNodes[0].nodeType === 3) {\r\n children.push(element.textContent);\r\n }\r\n\r\n return React.createElement(tagName, props, children.length > 0 ? children : null);\r\n };\r\n\r\n // Convert all children of the SVG element\r\n return Array.from(svgElement.children).map((child, index) =>\r\n convertToReactElement(child, index)\r\n );\r\n } catch (err) {\r\n console.error('Error parsing SVG:', err);\r\n return null;\r\n }\r\n }, [svgContent, actualColor]);\r\n\r\n if (loading) {\r\n return (\r\n <SvgIcon \r\n sx={{ \r\n width: 24, \r\n height: 24,\r\n ...sx \r\n }}\r\n color={color}\r\n fontSize={fontSize}\r\n {...props}\r\n >\r\n <circle cx=\"12\" cy=\"12\" r=\"8\" fill=\"currentColor\" opacity=\"0.3\" />\r\n </SvgIcon>\r\n );\r\n }\r\n\r\n if (error || !svgElements) {\r\n return (\r\n <SvgIcon \r\n sx={{ \r\n width: 24, \r\n height: 24,\r\n ...sx \r\n }}\r\n color={color}\r\n fontSize={fontSize}\r\n {...props}\r\n >\r\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" />\r\n </SvgIcon>\r\n );\r\n }\r\n\r\n return (\r\n <SvgIcon \r\n sx={{ \r\n color: actualColor,\r\n fill:'none',\r\n ...sx \r\n }}\r\n fontSize={fontSize}\r\n fontWeight={500}\r\n viewBox='0 0 16 16'\r\n {...props}\r\n >\r\n {svgElements}\r\n </SvgIcon>\r\n );\r\n};\r\n\r\nexport { DynamicSvgIcon };\r\nexport default DynamicSvgIcon","/* eslint-disable unused-imports/no-unused-vars */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { matchRoutes, useLocation, useNavigate } from 'react-router-dom'\r\n\r\nimport { styled, Theme, CSSObject } from '@mui/material/styles'\r\nimport MuiDrawer from '@mui/material/Drawer'\r\nimport List from '@mui/material/List'\r\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft'\r\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight'\r\nimport ListItem from '@mui/material/ListItem'\r\nimport ListItemButton from '@mui/material/ListItemButton'\r\nimport ListItemIcon from '@mui/material/ListItemIcon'\r\nimport IconExpandLess from '@mui/icons-material/ExpandLess'\r\nimport IconExpandMore from '@mui/icons-material/ExpandMore'\r\nimport Typography from '@mui/material/Typography'\r\nimport Box from '@mui/material/Box'\r\nimport { Icon, IconButton, Popover, Paper, ClickAwayListener } from '@mui/material'\r\nimport Collapse from '@mui/material/Collapse'\r\n\r\nimport Text from '../typography/typography'\r\nimport images from '../../assets/images'\r\n\r\nimport './sidebar.scss'\r\nimport SearchBar from '../search-bar/search-bar'\r\nimport Tooltip from '../tooltip/Tooltip'\r\nimport { useLanguage } from '../../hooks/useLangauge'\r\nimport DynamicSvgIcon from '../../assets/dynamic-svg-icon/dynamic-svg-icon'\r\nimport { Search, SearchStatus } from '../icons'\r\nimport { Pathname } from '../../constants/pathnames'\r\nimport { getApiConfig } from '@/utils'\r\n\r\n// Types\r\ninterface MenuItem {\r\n\tlabel: string\r\n\tlink: string\r\n\ticon?: string\r\n\tsubmenu?: MenuItem[]\r\n\tconnectedRoutes?: string[]\r\n}\r\n\r\ninterface CollapsedSubmenuState {\r\n\topen: boolean\r\n\tanchorEl: HTMLElement | null\r\n\tmenu: MenuItem | null\r\n\tbreadcrumb: MenuItem[]\r\n}\r\n\r\nlet drawerWidth: any\r\n\r\nconst openedMixin = (theme: Theme): CSSObject => ({\r\n\twidth: drawerWidth,\r\n\ttransition: theme.transitions.create('width', {\r\n\t\teasing: theme.transitions.easing.sharp,\r\n\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t}),\r\n\toverflowX: 'hidden',\r\n\tdisplay: 'flex',\r\n\tflexDirection: 'column',\r\n\tjustifyContent: 'space-between',\r\n\tborderRight: `1px solid ${theme.palette.theme?.secondary[200]}`,\r\n\tbackgroundColor: theme.palette.theme?.secondary[100],\r\n})\r\n\r\nconst closedMixin = (theme: Theme): CSSObject => ({\r\n\ttransition: theme.transitions.create('width', {\r\n\t\teasing: theme.transitions.easing.sharp,\r\n\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t}),\r\n\toverflowX: 'hidden',\r\n\twidth: `calc(${theme.spacing(7)} + 1px)`,\r\n\t[theme.breakpoints.up('sm')]: {\r\n\t\twidth: `calc(${theme.spacing(8)} + 1px)`,\r\n\t},\r\n\tborderRight: `1px solid ${theme.palette.theme?.secondary[200]}`,\r\n\tbackgroundColor: theme.palette.theme?.secondary[100],\r\n})\r\n\r\nconst Drawer = styled(MuiDrawer, {\r\n\tshouldForwardProp: (prop) => prop !== 'open',\r\n})(({ theme, open }) => ({\r\n\twidth: drawerWidth,\r\n\tflexShrink: 0,\r\n\twhiteSpace: 'nowrap',\r\n\tboxSizing: 'border-box',\r\n\t'.MuiDrawer-paper': {\r\n\t\tbackgroundColor: theme?.palette?.theme?.secondary?.[100],\r\n\t\toverflow: 'visible !important',\r\n\t\tzIndex: 1201,\r\n\t},\r\n\t...(open && {\r\n\t\t...openedMixin(theme),\r\n\t\t'& .MuiDrawer-paper': openedMixin(theme),\r\n\t}),\r\n\t...(!open && {\r\n\t\t...closedMixin(theme),\r\n\t\t'& .MuiDrawer-paper': closedMixin(theme),\r\n\t}),\r\n}))\r\n\r\nconst DrawerHeader = styled('div')(({ theme }) => ({\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\tjustifyContent: 'center',\r\n\tpadding: theme.spacing(0, 2),\r\n\t...theme.mixins.toolbar,\r\n\tminHeight: 64,\r\n}))\r\n\r\nconst SubmenuPopover = styled(Paper)(({ theme }) => ({\r\n\tminWidth: 250,\r\n\tmaxWidth: 350,\r\n\tmaxHeight: '80vh',\r\n\toverflowY: 'auto',\r\n\tbackgroundColor: theme.palette.theme?.secondary?.[100] || theme.palette.background.paper,\r\n\tborderRadius: 12,\r\n\tboxShadow: '0 8px 32px rgba(0, 0, 0, 0.12)',\r\n\tborder: `1px solid ${theme.palette.theme?.secondary?.[200] || theme.palette.divider}`,\r\n\t'&.MuiPaper-root': {\r\n\t\ttransformOrigin: 'top left',\r\n\t},\r\n\t'&::-webkit-scrollbar': {\r\n\t\twidth: 6,\r\n\t},\r\n\t'&::-webkit-scrollbar-track': {\r\n\t\tbackgroundColor: 'transparent',\r\n\t},\r\n\t'&::-webkit-scrollbar-thumb': {\r\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n\t\tborderRadius: 3,\r\n\t},\r\n}))\r\n\r\nconst BreadcrumbContainer = styled(Box)(({ theme }) => ({\r\n\tpadding: theme.spacing(1, 2),\r\n\tborderBottom: `1px solid ${theme.palette.theme?.secondary?.[200] || theme.palette.divider}`,\r\n\tbackgroundColor: theme.palette.theme?.secondary?.[50] || theme.palette.grey[50],\r\n}))\r\n\r\n// Enhanced CollapsedSubmenu component with nested support\r\nconst CollapsedSubmenu: React.FC<{\r\n\tmenu: MenuItem\r\n\tanchorEl: HTMLElement | null\r\n\topen: boolean\r\n\tonClose: () => void\r\n\tonItemClick: (item: MenuItem) => void\r\n\tonSubmenuClick: (item: MenuItem, event: React.MouseEvent<HTMLElement>) => void\r\n\tgetActiveClassIf: (paths: string[] | string) => boolean\r\n\tbreadcrumb: MenuItem[]\r\n\tonBreadcrumbClick: (item: MenuItem, index: number) => void\r\n}> = ({\r\n\tmenu,\r\n\tanchorEl,\r\n\topen,\r\n\tonClose,\r\n\tonItemClick,\r\n\tonSubmenuClick,\r\n\tgetActiveClassIf,\r\n\tbreadcrumb,\r\n\tonBreadcrumbClick,\r\n}) => {\r\n\t\tconst renderBreadcrumb = () => {\r\n\t\t\tif (breadcrumb.length <= 1) return null\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<BreadcrumbContainer>\r\n\t\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 0.5 }}>\r\n\t\t\t\t\t\t{breadcrumb.map((item, index) => (\r\n\t\t\t\t\t\t\t<React.Fragment key={index}>\r\n\t\t\t\t\t\t\t\t{index > 0 && <ChevronRightIcon sx={{ fontSize: 14, color: 'theme.secondary.400' }} />}\r\n\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\tvariant=\"caption\"\r\n\t\t\t\t\t\t\t\t\tonClick={() => onBreadcrumbClick(item, index)}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcursor: index < breadcrumb.length - 1 ? 'pointer' : 'default',\r\n\t\t\t\t\t\t\t\t\t\tcolor: index < breadcrumb.length - 1 ? 'primary.main' : 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: index === breadcrumb.length - 1 ? 600 : 400,\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '0.75rem',\r\n\t\t\t\t\t\t\t\t\t\t'&:hover':\r\n\t\t\t\t\t\t\t\t\t\t\tindex < breadcrumb.length - 1\r\n\t\t\t\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextDecoration: 'underline',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t: {},\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{item.label}\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t</React.Fragment>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</BreadcrumbContainer>\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<ClickAwayListener onClickAway={onClose}>\r\n\t\t\t\t<Popover\r\n\t\t\t\t\topen={open}\r\n\t\t\t\t\tanchorEl={anchorEl}\r\n\t\t\t\t\tonClose={onClose}\r\n\t\t\t\t\tanchorOrigin={{\r\n\t\t\t\t\t\tvertical: 'center',\r\n\t\t\t\t\t\thorizontal: 'right',\r\n\t\t\t\t\t}}\r\n\t\t\t\t\ttransformOrigin={{\r\n\t\t\t\t\t\tvertical: 'center',\r\n\t\t\t\t\t\thorizontal: 'left',\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tPaperComponent={SubmenuPopover}\r\n\t\t\t\t\televation={1}\r\n\t\t\t\t\tdisableRestoreFocus\r\n\t\t\t\t\tdisableAutoFocus\r\n\t\t\t\t\tdisableEnforceFocus\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tml: 0.5,\r\n\t\t\t\t\t\t'& .MuiPopover-paper': {\r\n\t\t\t\t\t\t\t// overflow: 'visible',\r\n\t\t\t\t\t\t\tmarginTop: 0,\r\n\t\t\t\t\t\t\tpointerEvents: 'auto',\r\n\t\t\t\t\t\t\t// border: '1px solid',\r\n\t\t\t\t\t\t\t// borderColor: 'theme.secondary.200',\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}}\r\n\t\t\t\t\ttransitionDuration={200}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t{renderBreadcrumb()}\r\n\r\n\t\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\tvariant=\"subtitle2\"\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tpx: 2,\r\n\t\t\t\t\t\t\t\t\tpy: 1,\r\n\t\t\t\t\t\t\t\t\tfontWeight: 600,\r\n\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.1000',\r\n\t\t\t\t\t\t\t\t\tborderBottom: breadcrumb.length > 1 ? 'none' : '1px solid',\r\n\t\t\t\t\t\t\t\t\tborderColor: 'theme.secondary.200',\r\n\t\t\t\t\t\t\t\t\tmb: 0.5,\r\n\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{menu.label}\r\n\t\t\t\t\t\t\t</Typography>\r\n\r\n\t\t\t\t\t\t\t<List component=\"div\" sx={{ py: 0 }}>\r\n\t\t\t\t\t\t\t\t{menu.submenu?.map((subItem: MenuItem, index: number) => {\r\n\t\t\t\t\t\t\t\t\tconst isActive = getActiveClassIf([...(subItem?.connectedRoutes || []), ...[subItem.link]])\r\n\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t<ListItem key={index} disablePadding>\r\n\t\t\t\t\t\t\t\t\t\t\t<ListItemButton\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (subItem.submenu?.length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSubmenuClick(subItem, e)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonItemClick(subItem)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tselected={isActive}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={(theme) => ({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tminHeight: 32,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// px: 2,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// py: 0.75,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1.5,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// mx: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmb: 0.25,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'&.Mui-selected': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[100],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'primary.main',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'& .MuiListItemIcon-root': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'primary.main',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'&.Mui-selected:hover': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[200],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{subItem.icon && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ListItemIcon sx={{ minWidth: 32 }}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc={subItem.icon}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talt={subItem.label + ' icon'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// width={20}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// height={20}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ opacity: 0.8 }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ListItemIcon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<Text\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype={'s3'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tweight=\"normal\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={'theme.secondary.1000'}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '0.875rem',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.4,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{subItem.label}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{subItem.submenu?.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ChevronRightIcon\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 18,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.500',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tml: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</ListItemButton>\r\n\t\t\t\t\t\t\t\t\t\t</ListItem>\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t</List>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t</Box>\r\n\t\t\t\t</Popover>\r\n\t\t\t</ClickAwayListener>\r\n\t\t)\r\n\t}\r\n\r\ninterface SidebarProps {\r\n\twidth: number\r\n\topen: boolean\r\n\tmenu: MenuItem[]\r\n\ttheme: any\r\n\tforcedOpen: boolean\r\n\thandleMouseEnter: () => void\r\n\thandleMouseLeave: () => void\r\n\thandleDrawerClose: () => void\r\n\thandleDrawerOpen: () => void\r\n\tdashboardPath?: string\r\n}\r\n\r\nexport const Sidebar: React.FC<SidebarProps> = (props) => {\r\n\tconst navigate = useNavigate()\r\n\tconst currentLocation = useLocation()\r\n\tconst { currentLanguage } = useLanguage()\r\n\tconst isRtl = useMemo(() => currentLanguage?.direction === 'rtl', [currentLanguage])\r\n\tconst [collapsedSubmenuState, setCollapsedSubmenuState] = useState<CollapsedSubmenuState>({\r\n\t\topen: false,\r\n\t\tanchorEl: null,\r\n\t\tmenu: null,\r\n\t\tbreadcrumb: [],\r\n\t})\r\n\r\n\tconst [menus, setMenus] = useState<MenuItem[]>([])\r\n\tconst [search, setSearch] = useState<string>('')\r\n\tconst [openSubmenuArray, setOpenSubmenuArray] = useState<string[]>([])\r\n\tconst [isOpenSearchTooltop, setIsOpenSearchTooltop] = useState<boolean>(false)\r\n\r\n\t// Enhanced active class checker\r\n\tconst getActiveClassIf = useCallback(\r\n\t\t(paths: string[] | string) => {\r\n\t\t\tconst shouldMatch: { path: string }[] = Array.isArray(paths)\r\n\t\t\t\t? paths.map((path: string) => ({ path }))\r\n\t\t\t\t: [{ path: paths }]\r\n\r\n\t\t\treturn Boolean(matchRoutes(shouldMatch, currentLocation))\r\n\t\t},\r\n\t\t[currentLocation]\r\n\t)\r\n\r\n\t// Find if any submenu item is active (for parent selection when collapsed)\r\n\tconst isSubmenuActive = useCallback(\r\n\t\t(menu: MenuItem): boolean => {\r\n\t\t\tif (!menu.submenu?.length) return false\r\n\r\n\t\t\tfor (const subItem of menu.submenu) {\r\n\t\t\t\tconst isActive = getActiveClassIf([...(subItem?.connectedRoutes || []), ...[subItem.link]])\r\n\r\n\t\t\t\tif (isActive || isSubmenuActive(subItem)) {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false\r\n\t\t},\r\n\t\t[getActiveClassIf]\r\n\t)\r\n\r\n\t// Get all menu paths for a menu item (including nested)\r\n\tconst getAllMenuPaths = useCallback((menu: MenuItem): string[] => {\r\n\t\tconst paths: string[] = []\r\n\r\n\t\tif (menu.link) {\r\n\t\t\tpaths.push(menu.link)\r\n\t\t}\r\n\r\n\t\tif (menu.connectedRoutes?.length) {\r\n\t\t\tpaths.push(...menu.connectedRoutes)\r\n\t\t}\r\n\r\n\t\tif (menu.submenu?.length) {\r\n\t\t\tmenu.submenu.forEach((subItem) => {\r\n\t\t\t\tpaths.push(...getAllMenuPaths(subItem))\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn paths\r\n\t}, [])\r\n\r\n\t// Enhanced collapsed menu click handler\r\n\tconst handleCollapsedMenuClick = useCallback(\r\n\t\t(event: React.MouseEvent<HTMLElement>, menu: MenuItem) => {\r\n\t\t\tevent.stopPropagation()\r\n\r\n\t\t\tif (!props.open && menu.submenu?.length > 0) {\r\n\t\t\t\tif (collapsedSubmenuState.open && collapsedSubmenuState.menu?.label === menu.label) {\r\n\t\t\t\t\tsetCollapsedSubmenuState({\r\n\t\t\t\t\t\topen: false,\r\n\t\t\t\t\t\tanchorEl: null,\r\n\t\t\t\t\t\tmenu: null,\r\n\t\t\t\t\t\tbreadcrumb: [],\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsetCollapsedSubmenuState({\r\n\t\t\t\t\t\topen: true,\r\n\t\t\t\t\t\tanchorEl: event.currentTarget,\r\n\t\t\t\t\t\tmenu: menu,\r\n\t\t\t\t\t\tbreadcrumb: [menu],\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t[props.open, collapsedSubmenuState]\r\n\t)\r\n\r\n\t// Handle submenu navigation in collapsed mode\r\n\tconst handleCollapsedSubmenuClick = useCallback((item: MenuItem, event: React.MouseEvent<HTMLElement>) => {\r\n\t\tif (item.submenu?.length) {\r\n\t\t\tsetCollapsedSubmenuState((prev) => ({\r\n\t\t\t\t...prev,\r\n\t\t\t\tmenu: item,\r\n\t\t\t\tbreadcrumb: [...prev.breadcrumb, item],\r\n\t\t\t}))\r\n\t\t}\r\n\t}, [])\r\n\r\n\t// Handle breadcrumb navigation\r\n\tconst handleBreadcrumbClick = useCallback((item: MenuItem, index: number) => {\r\n\t\tsetCollapsedSubmenuState((prev) => ({\r\n\t\t\t...prev,\r\n\t\t\tmenu: item,\r\n\t\t\tbreadcrumb: prev.breadcrumb.slice(0, index + 1),\r\n\t\t}))\r\n\t}, [])\r\n\r\n\tconst handleCollapsedSubmenuClose = useCallback(() => {\r\n\t\tsetCollapsedSubmenuState({\r\n\t\t\topen: false,\r\n\t\t\tanchorEl: null,\r\n\t\t\tmenu: null,\r\n\t\t\tbreadcrumb: [],\r\n\t\t})\r\n\t}, [])\r\n\r\n\tconst handleSubmenuItemClick = useCallback(\r\n\t\t(item: MenuItem) => {\r\n\t\t\tnavigate(item.link)\r\n\t\t},\r\n\t\t[navigate]\r\n\t)\r\n\r\n\t// Enhanced menu click handler\r\n\tconst handleMenuClick = useCallback(\r\n\t\t(menu: MenuItem, parent: MenuItem | null, index: number) => {\r\n\t\t\tif (!props.open && menu.submenu?.length > 0) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (!menu.submenu?.length) {\r\n\t\t\t\tnavigate(menu.link)\r\n\t\t\t\tif (!parent) {\r\n\t\t\t\t\tsetOpenSubmenuArray([])\r\n\t\t\t\t}\r\n\t\t\t} else if (menu.submenu?.length && menu.submenu[index]?.link) {\r\n\t\t\t\tnavigate(`${menu.link}${menu.submenu[index].link}`)\r\n\t\t\t} else {\r\n\t\t\t\tconst menuKey = `${parent?.label || ''}-${menu.label}`\r\n\r\n\t\t\t\tif (openSubmenuArray.includes(menuKey)) {\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\tconst newSubArray = openSubmenuArray.filter((f) => f !== menuKey)\r\n\t\t\t\t\t\tsetOpenSubmenuArray([...newSubArray])\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsetOpenSubmenuArray([])\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\tsetOpenSubmenuArray([...openSubmenuArray, menuKey])\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsetOpenSubmenuArray([menuKey])\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t[props.open, navigate, openSubmenuArray]\r\n\t)\r\n\r\n\t// Enhanced search functionality\r\n\tconst filterMenuOnSearch = useCallback((menu: MenuItem[], search: string): MenuItem[] => {\r\n\t\treturn menu\r\n\t\t\t.filter((m: MenuItem) => {\r\n\t\t\t\tif (m?.label?.toLowerCase()?.includes(search)) {\r\n\t\t\t\t\treturn m\r\n\t\t\t\t} else if (m?.submenu?.length) {\r\n\t\t\t\t\tm.submenu = filterMenuOnSearch(m?.submenu, search)\r\n\t\t\t\t\treturn m.submenu?.length > 0 ? m : null\r\n\t\t\t\t}\r\n\t\t\t\treturn null\r\n\t\t\t})\r\n\t\t\t.filter(Boolean)\r\n\t}, [])\r\n\r\n\tconst handleSidebarSearch = useCallback(\r\n\t\t(search: string) => {\r\n\t\t\tif (!search) {\r\n\t\t\t\tsetMenus(props.menu || [])\r\n\t\t\t} else {\r\n\t\t\t\tconst searchTerm = search.toLowerCase()\r\n\t\t\t\tconst menuItems = props?.menu ? JSON.parse(JSON.stringify(props.menu)) : []\r\n\t\t\t\tconst filteredMenu = filterMenuOnSearch(menuItems, searchTerm)\r\n\t\t\t\tsetMenus(filteredMenu)\r\n\t\t\t}\r\n\t\t},\r\n\t\t[props.menu, filterMenuOnSearch]\r\n\t)\r\n\r\n\tconst handleOpenSearchTooltip = useCallback(() => setIsOpenSearchTooltop(true), []);\r\n\tconst handleCloseSearchTooltip = useCallback(() => setIsOpenSearchTooltop(false), []);\r\n\r\n\t// Enhanced menu renderer with better nested support\r\n\tconst renderMenu = useCallback(\r\n\t\t(menus: MenuItem[], parent: MenuItem | null, level: number) => {\r\n\t\t\treturn menus?.map((menu: MenuItem, index: number) => {\r\n\t\t\t\tconst menuKey = `${parent?.label || ''}-${menu.label}`\r\n\t\t\t\tconst isMenuActive = getActiveClassIf([...(menu?.connectedRoutes || []), ...[menu.link]])\r\n\r\n\t\t\t\t// Check if any nested submenu is active (for collapsed state parent selection)\r\n\t\t\t\tconst hasActiveSubmenu = !props.open && isSubmenuActive(menu)\r\n\t\t\t\tconst shouldHighlightParent = isMenuActive || hasActiveSubmenu\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Tooltip\r\n\t\t\t\t\t\ttitle={menu.label}\r\n\t\t\t\t\t\tplacement=\"right\"\r\n\t\t\t\t\t\tarrow\r\n\t\t\t\t\t\tkey={`${menu.label}-${index}`}\r\n\t\t\t\t\t\tdisableHoverListener={props.open}\r\n\t\t\t\t\t\tdisableFocusListener={props.open}\r\n\t\t\t\t\t\tdisableTouchListener={props.open}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ListItem\r\n\t\t\t\t\t\t\tdisablePadding\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tdisplay: 'block',\r\n\t\t\t\t\t\t\t\t// mb: 0.5,\r\n\t\t\t\t\t\t\t\t...(isRtl && {\r\n\t\t\t\t\t\t\t\t\tpadding: 0,\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<ListItemButton\r\n\t\t\t\t\t\t\t\tonClick={(e) => {\r\n\t\t\t\t\t\t\t\t\tif (!props.open && menu.submenu?.length > 0) {\r\n\t\t\t\t\t\t\t\t\t\thandleCollapsedMenuClick(e, menu)\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\thandleMenuClick(menu, parent, menu?.submenu ? -1 : index)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tselected={shouldHighlightParent}\r\n\t\t\t\t\t\t\t\tsx={(theme) => ({\r\n\t\t\t\t\t\t\t\t\tminHeight: props.open ? 32 : 32,\r\n\t\t\t\t\t\t\t\t\tjustifyContent: props.open ? 'initial' : 'center',\r\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\tborderRadius: 2,\r\n\t\t\t\t\t\t\t\t\tgap: 1,\r\n\t\t\t\t\t\t\t\t\t// mx: props.open ? 1 : 0.5,\r\n\t\t\t\t\t\t\t\t\t// px: props.open ? 2 : 1,\r\n\t\t\t\t\t\t\t\t\t// py: 1,\r\n\t\t\t\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease-in-out',\r\n\r\n\t\t\t\t\t\t\t\t\t'&.Mui-selected': {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[100],\r\n\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.primary[800],\r\n\t\t\t\t\t\t\t\t\t\t'& .MuiListItemIcon-root': {\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.primary[800],\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t'& .MuiTypography-root': {\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.primary[800],\r\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t'&.Mui-selected:hover': {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.primary[200],\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: props.open ? 'rgba(0, 0, 0, 0.04)' : 'rgba(0, 0, 0, 0.08)',\r\n\t\t\t\t\t\t\t\t\t\ttransform: props.open ? 'none' : 'scale(1.02)',\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t...(!props.open &&\r\n\t\t\t\t\t\t\t\t\t\tmenu.submenu?.length > 0 && {\r\n\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\t\t\t\t\t'&::after': {\r\n\t\t\t\t\t\t\t\t\t\t\tcontent: '\"\"',\r\n\t\t\t\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\t\t\t\t...(isRtl\r\n\t\t\t\t\t\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tleft: 8,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRight: '5px solid',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tright: 8,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderLeft: '5px solid',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t\t\t\ttop: '25%',\r\n\t\t\t\t\t\t\t\t\t\t\ttransform: 'translateY(-50%)',\r\n\t\t\t\t\t\t\t\t\t\t\twidth: 0,\r\n\t\t\t\t\t\t\t\t\t\t\theight: 0,\r\n\t\t\t\t\t\t\t\t\t\t\tborderTop: '4px solid transparent',\r\n\t\t\t\t\t\t\t\t\t\t\tborderBottom: '4px solid transparent',\r\n\t\t\t\t\t\t\t\t\t\t\tborderColor: 'currentColor transparent transparent transparent',\r\n\t\t\t\t\t\t\t\t\t\t\topacity: 0.7,\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<ListItemIcon\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tminWidth: props.open ? 'auto' : 0,\r\n\t\t\t\t\t\t\t\t\t\t// mr: props.open ? 1 : 'auto',\r\n\t\t\t\t\t\t\t\t\t\t...(isRtl ? { ml: 0 } : {}),\r\n\t\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\r\n\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease-in-out',\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{menu.icon ? (\r\n\t\t\t\t\t\t\t\t\t\t<DynamicSvgIcon svgPath={menu.icon} color={shouldHighlightParent ? 'primary' : 'grey'} fontSize={props.open ? 'small' : 'medium'} />\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<ChevronRightIcon\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: props.open ? 24 : 28,\r\n\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'all 0.2s ease-in-out',\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</ListItemIcon>\r\n\r\n\t\t\t\t\t\t\t\t{props.open && (\r\n\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\t\t\t\t\t\t\toverflow: 'hidden',\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Text\r\n\t\t\t\t\t\t\t\t\t\t\ttype={'s3'}\r\n\t\t\t\t\t\t\t\t\t\t\tweight={level === 0 ? 'medium' : 'normal'}\r\n\t\t\t\t\t\t\t\t\t\t\tcolor={'theme.secondary.1000'}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\tpl: level * 1.5,\r\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: level === 0 ? '0.875rem' : '0.8125rem',\r\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: 1.4,\r\n\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: 'nowrap',\r\n\t\t\t\t\t\t\t\t\t\t\t\toverflow: 'hidden',\r\n\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: 'ellipsis',\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{menu.label}\r\n\t\t\t\t\t\t\t\t\t\t</Text>\r\n\r\n\t\t\t\t\t\t\t\t\t\t{menu.submenu?.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tml: 1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: 'transform 0.2s ease-in-out',\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{openSubmenuArray.includes(menuKey) ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconExpandLess\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 20,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconExpandMore\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: 20,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</ListItemButton>\r\n\r\n\t\t\t\t\t\t\t{openSubmenuArray.includes(menuKey) && menu.submenu?.length > 0 && props.open && (\r\n\t\t\t\t\t\t\t\t<Collapse in={openSubmenuArray.includes(menuKey)} timeout=\"auto\" unmountOnExit>\r\n\t\t\t\t\t\t\t\t\t<List component=\"div\" disablePadding sx={{ mt: 0.5 }}>\r\n\t\t\t\t\t\t\t\t\t\t{renderMenu(menu.submenu, menu, level + 1)}\r\n\t\t\t\t\t\t\t\t\t</List>\r\n\t\t\t\t\t\t\t\t</Collapse>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</ListItem>\r\n\t\t\t\t\t</Tooltip>\r\n\t\t\t\t)\r\n\t\t\t})\r\n\t\t},\r\n\t\t[props.open, openSubmenuArray, getActiveClassIf, handleCollapsedMenuClick, handleMenuClick, isSubmenuActive, isRtl]\r\n\t)\r\n\r\n\t// Enhanced useEffect for auto-expanding active menus\r\n\tuseEffect(() => {\r\n\t\thandleSidebarSearch(search)\r\n\r\n\t\tif (props.menu?.length) {\r\n\t\t\tconst expandedMenus: string[] = []\r\n\r\n\t\t\tconst checkAndExpandMenu = (menuItems: MenuItem[], parentLabel = '') => {\r\n\t\t\t\tmenuItems.forEach((menu) => {\r\n\t\t\t\t\tif (menu?.submenu?.length) {\r\n\t\t\t\t\t\tconst menuKey = `${parentLabel}-${menu.label}`\r\n\t\t\t\t\t\tconst allPaths = getAllMenuPaths(menu)\r\n\r\n\t\t\t\t\t\tif (getActiveClassIf(allPaths)) {\r\n\t\t\t\t\t\t\texpandedMenus.push(menuKey)\r\n\t\t\t\t\t\t\tcheckAndExpandMenu(menu.submenu, menu.label)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tcheckAndExpandMenu(props.menu)\r\n\t\t\tsetOpenSubmenuArray(expandedMenus)\r\n\t\t}\r\n\t}, [getActiveClassIf, handleSidebarSearch, props.menu, search, getAllMenuPaths])\r\n\r\n\tuseEffect(() => {\r\n\t\tif (props.open) {\r\n\t\t\thandleCollapsedSubmenuClose()\r\n\t\t}\r\n\t}, [props.open, handleCollapsedSubmenuClose])\r\n\r\n\tdrawerWidth = props.width\r\n\r\n\tconst appLogo = getApiConfig().appLogo || images.logo\r\n\tconst appFavicon = getApiConfig().appFavicon || images.favicon\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Drawer\r\n\t\t\t\tvariant=\"permanent\"\r\n\t\t\t\topen={props.open}\r\n\t\t\t\tanchor={document.body.dir === 'rtl' ? 'right' : 'left'}\r\n\t\t\t\tonMouseEnter={props.handleMouseEnter}\r\n\t\t\t\tonMouseLeave={props.handleMouseLeave}\r\n\t\t\t>\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\tflexDirection: 'column',\r\n\t\t\t\t\t\theight: '100%',\r\n\t\t\t\t\t\tbackgroundColor: 'grey.100',\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{/* Header */}\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={(theme) => ({\r\n\t\t\t\t\t\t\tborderBottom: `1px solid ${theme.palette.theme?.secondary?.[200] || theme.palette.divider}`,\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<DrawerHeader>\r\n\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\tsrc={props.open ? appLogo : appFavicon}\r\n\t\t\t\t\t\t\t\talt={props.open ? 'logo' : 'favicon'}\r\n\t\t\t\t\t\t\t\twidth={!props.open && 40}\r\n\t\t\t\t\t\t\t\theight={55}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\ttransition: 'all 0.3s ease-in-out',\r\n\t\t\t\t\t\t\t\t\tfilter: 'brightness(1.1)',\r\n\t\t\t\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => navigate(props.dashboardPath || Pathname.DASHBOARD)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</DrawerHeader>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t{/* Search Bar */}\r\n\t\t\t\t\t{props.open ? (\r\n\t\t\t\t\t\t<Box sx={{ px: 1.5, py: 1.5, borderBottom: '1px solid', borderColor: 'theme.secondary.200' }}>\r\n\t\t\t\t\t\t\t<SearchBar className=\"sidebar-search\" handleSearch={setSearch} placeholder=\"Search menu...\" value={search} sx={{ '&.MuiTextField-root': { backgroundColor: 'grey.200', border: '1px solid', borderColor: 'grey.200', borderRadius: 1 } }} />\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<ClickAwayListener onClickAway={handleCloseSearchTooltip}>\r\n\t\t\t\t\t\t\t<Box sx={{ p: 1, pb: 0, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n\t\t\t\t\t\t\t\t<Tooltip\r\n\t\t\t\t\t\t\t\t\ttitle={\r\n\t\t\t\t\t\t\t\t\t\t<SearchBar\r\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"sidebar-search\"\r\n\t\t\t\t\t\t\t\t\t\t\thandleSearch={setSearch}\r\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Search menu...\"\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={search}\r\n\t\t\t\t\t\t\t\t\t\t\tsx={{ '&.MuiTextField-root': { backgroundColor: 'transparent' } }}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tplacement=\"right\"\r\n\t\t\t\t\t\t\t\t\tarrow\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tp: 0,\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: 'grey.200',\r\n\t\t\t\t\t\t\t\t\t\tborder: '1px solid',\r\n\t\t\t\t\t\t\t\t\t\tborderColor: 'grey.300',\r\n\t\t\t\t\t\t\t\t\t\t'& .MuiTooltip-arrow': {\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: 'grey.300',\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\tml: '8px !important'\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\topen={isOpenSearchTooltop}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<IconButton color='inherit' sx={{ borderRadius: 2, p: 1.5, backgroundColor: isOpenSearchTooltop ? 'grey.200' : 'inherit' }} onClick={handleOpenSearchTooltip}>\r\n\t\t\t\t\t\t\t\t\t\t{search.trim() ? <SearchStatus /> : <Search />}\r\n\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</ClickAwayListener>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{/* Menu List */}\r\n\t\t\t\t\t<Box\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tflexGrow: 1,\r\n\t\t\t\t\t\t\toverflowY: 'auto',\r\n\t\t\t\t\t\t\tpy: 1,\r\n\t\t\t\t\t\t\t'&::-webkit-scrollbar': {\r\n\t\t\t\t\t\t\t\twidth: 6,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t'&::-webkit-scrollbar-track': {\r\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t'&::-webkit-scrollbar-thumb': {\r\n\t\t\t\t\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n\t\t\t\t\t\t\t\tborderRadius: 3,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<List className=\"sidebar-list\" sx={{ p: 0 }}>\r\n\t\t\t\t\t\t\t{renderMenu(menus, null, 0)}\r\n\t\t\t\t\t\t</List>\r\n\t\t\t\t\t</Box>\r\n\r\n\t\t\t\t\t{/* Footer */}\r\n\t\t\t\t\t{props.open && (\r\n\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\tborderTop: '1px solid',\r\n\t\t\t\t\t\t\t\tborderColor: 'theme.secondary.200',\r\n\t\t\t\t\t\t\t\tbackgroundColor: 'rgba(255, 255, 255, 0.5)',\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Box\r\n\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\tpadding: '.75rem 1.5rem',\r\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\t\talignItems: 'self-start',\r\n\t\t\t\t\t\t\t\t\tgap: 0.5,\r\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '.85rem',\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\tCrafted with\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t\t<Icon\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: 'theme.error.500',\r\n\t\t\t\t\t\t\t\t\t\twidth: '1rem',\r\n\t\t\t\t\t\t\t\t\t\theight: '1rem',\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '.75rem',\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t❤️\r\n\t\t\t\t\t\t\t\t</Icon>\r\n\t\t\t\t\t\t\t\t<Typography\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tcolor: 'theme.secondary.600',\r\n\t\t\t\t\t\t\t\t\t\tfontSize: '.75rem',\r\n\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<img src={images.erp_logo} />\r\n\t\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Box>\r\n\t\t\t</Drawer>\r\n\t\t\t<IconButton\r\n\t\t\t\tsize=\"small\"\r\n\t\t\t\tonClick={() => (props.forcedOpen ? props.handleDrawerClose() : props.handleDrawerOpen())}\r\n\t\t\t\tclassName={isRtl ? 'drawer-expand-btn_rtl' : 'drawer-expand-btn'}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tml: 'auto',\r\n\t\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.04)',\r\n\t\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\tbackgroundColor: 'grey.100',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// transition: 'all 0.2s ease-in-out',\r\n\t\t\t\t\twidth: '30px',\r\n\t\t\t\t\theight: '30px',\r\n\t\t\t\t\tborderRadius: `8px`,\r\n\t\t\t\t\tborderTopLeftRadius: 0,\r\n\t\t\t\t\tborderBottomLeftRadius: 0,\r\n\t\t\t\t\tborderColor: 'grey.500',\r\n\t\t\t\t\t...(isRtl\r\n\t\t\t\t\t\t? !props.forcedOpen\r\n\t\t\t\t\t\t\t? { right: '63px !important', left: 'auto' }\r\n\t\t\t\t\t\t\t: { right: '299px', left: 'auto' }\r\n\t\t\t\t\t\t: !props.forcedOpen\r\n\t\t\t\t\t\t\t? { left: '63px !important', right: 'auto' }\r\n\t\t\t\t\t\t\t: { left: '299px', right: 'auto' }),\r\n\t\t\t\t\ttransition: 'all 0.3s ease-in-out',\r\n\t\t\t\t}}\r\n\t\t\t>\r\n\t\t\t\t{props.theme.direction === 'rtl' ? (\r\n\t\t\t\t\tprops.forcedOpen ? (\r\n\t\t\t\t\t\t<ChevronRightIcon fontSize=\"small\" />\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<ChevronLeftIcon fontSize=\"small\" />\r\n\t\t\t\t\t)\r\n\t\t\t\t) : props.forcedOpen ? (\r\n\t\t\t\t\t<ChevronLeftIcon fontSize=\"small\" />\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<ChevronRightIcon fontSize=\"small\" />\r\n\t\t\t\t)}\r\n\t\t\t</IconButton>\r\n\t\t\t{/* Collapsed Submenu Popover */}\r\n\t\t\t{collapsedSubmenuState.menu && (\r\n\t\t\t\t<CollapsedSubmenu\r\n\t\t\t\t\tmenu={collapsedSubmenuState.menu}\r\n\t\t\t\t\tanchorEl={collapsedSubmenuState.anchorEl}\r\n\t\t\t\t\topen={collapsedSubmenuState.open}\r\n\t\t\t\t\tonClose={handleCollapsedSubmenuClose}\r\n\t\t\t\t\tonItemClick={handleSubmenuItemClick}\r\n\t\t\t\t\tonSubmenuClick={handleCollapsedSubmenuClick}\r\n\t\t\t\t\tgetActiveClassIf={getActiveClassIf}\r\n\t\t\t\t\tbreadcrumb={collapsedSubmenuState.breadcrumb}\r\n\t\t\t\t\tonBreadcrumbClick={handleBreadcrumbClick}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t</>\r\n\t)\r\n}\r\n\r\nexport default Sidebar\r\n"],"names":["DynamicSvgIcon","svgPath","sx","color","fontSize","props","svgContent","setSvgContent","useState","loading","setLoading","error","setError","theme","useTheme","actualColor","colorProp","palette","primary","main","secondary","action","active","disabled","info","success","warning","grey","useEffect","async","response","fetch","ok","Error","svgText","text","err","console","fetchSvg","svgElements","useMemo","svgElement","DOMParser","parseFromString","querySelector","convertToReactElement","element","index","tagName","toLowerCase","Array","from","attributes","forEach","attr","propName","name","includes","replace","match","letter","toUpperCase","propValue","value","key","children","map","child","childIndex","childNodes","length","nodeType","push","textContent","React","createElement","jsx","SvgIcon","width","height","cx","cy","r","fill","opacity","d","fontWeight","viewBox","drawerWidth","openedMixin","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","display","flexDirection","justifyContent","borderRight","_a","backgroundColor","_b","closedMixin","leavingScreen","spacing","breakpoints","up","Drawer","styled","MuiDrawer","shouldForwardProp","prop","open","flexShrink","whiteSpace","boxSizing","_c","overflow","zIndex","DrawerHeader","alignItems","padding","mixins","toolbar","minHeight","SubmenuPopover","Paper","minWidth","maxWidth","maxHeight","overflowY","background","paper","borderRadius","boxShadow","border","_d","divider","transformOrigin","BreadcrumbContainer","Box","borderBottom","CollapsedSubmenu","menu","anchorEl","onClose","onItemClick","onSubmenuClick","getActiveClassIf","breadcrumb","onBreadcrumbClick","ClickAwayListener","onClickAway","Popover","anchorOrigin","vertical","horizontal","PaperComponent","elevation","disableRestoreFocus","disableAutoFocus","disableEnforceFocus","ml","marginTop","pointerEvents","transitionDuration","flexWrap","gap","item","jsxs","Fragment","ChevronRightIcon","Typography","variant","onClick","cursor","textDecoration","label","px","py","borderColor","mb","List","component","submenu","subItem","isActive","connectedRoutes","link","ListItem","disablePadding","ListItemButton","e","selected","position","icon","ListItemIcon","src","alt","style","Text","type","weight","flexGrow","lineHeight","navigate","useNavigate","currentLocation","useLocation","currentLanguage","useLanguage","isRtl","direction","collapsedSubmenuState","setCollapsedSubmenuState","menus","setMenus","search","setSearch","openSubmenuArray","setOpenSubmenuArray","isOpenSearchTooltop","setIsOpenSearchTooltop","useCallback","paths","shouldMatch","isArray","path","Boolean","matchRoutes","isSubmenuActive","getAllMenuPaths","handleCollapsedMenuClick","event","stopPropagation","currentTarget","handleCollapsedSubmenuClick","prev","handleBreadcrumbClick","slice","handleCollapsedSubmenuClose","handleSubmenuItemClick","handleMenuClick","parent","menuKey","newSubArray","filter","f","filterMenuOnSearch","m","handleSidebarSearch","searchTerm","menuItems","JSON","parse","stringify","filteredMenu","handleOpenSearchTooltip","handleCloseSearchTooltip","renderMenu","level","isMenuActive","hasActiveSubmenu","shouldHighlightParent","Tooltip","title","placement","arrow","disableHoverListener","disableFocusListener","disableTouchListener","_e","transform","_f","content","left","right","borderLeft","top","borderTop","pl","textOverflow","IconExpandLess","IconExpandMore","Collapse","in","timeout","unmountOnExit","mt","expandedMenus","checkAndExpandMenu","parentLabel","allPaths","appLogo","getApiConfig","images","logo","appFavicon","favicon","anchor","document","body","dir","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","dashboardPath","Pathname","DASHBOARD","SearchBar","className","handleSearch","placeholder","p","pb","IconButton","trim","SearchStatus","Search","Icon","erp_logo","size","forcedOpen","handleDrawerClose","handleDrawerOpen","borderTopLeftRadius","borderBottomLeftRadius","ChevronLeftIcon"],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ import Collapse from "@mui/material/Collapse";
|
|
|
18
18
|
import { T as Typography } from "./useAuth-CDeIJjEt.esm.js";
|
|
19
19
|
import { i as images } from "./images-ChUMOM-_.esm.js";
|
|
20
20
|
/* empty css */
|
|
21
|
-
import { e as Tooltip, S as SearchBar } from "./appbar-
|
|
21
|
+
import { e as Tooltip, S as SearchBar } from "./appbar-CKrHdx9n.esm.js";
|
|
22
22
|
import { u as useLanguage } from "./useLangauge-CmXInHk1.esm.js";
|
|
23
23
|
import SvgIcon from "@mui/material/SvgIcon";
|
|
24
24
|
import { g as getApiConfig } from "./api-config-GOys-syK.esm.js";
|
|
@@ -1021,4 +1021,4 @@ const Sidebar = (props) => {
|
|
|
1021
1021
|
export {
|
|
1022
1022
|
Sidebar as S
|
|
1023
1023
|
};
|
|
1024
|
-
//# sourceMappingURL=sidebar-
|
|
1024
|
+
//# sourceMappingURL=sidebar-n9Y25HU-.esm.js.map
|