varminer-app-header 1.12.9 → 2.0.1
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/LanguageSelector.d.ts.map +1 -1
- package/dist/index.esm.js +3 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +3 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageSelector.d.ts","sourceRoot":"","sources":["../src/LanguageSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LanguageSelector.d.ts","sourceRoot":"","sources":["../src/LanguageSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAgBzD,UAAU,qBAAqB;IAC7B,eAAe,EAAE,iBAAiB,CAAC;IACnC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACzD;AAED,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAsIrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -13,7 +13,6 @@ import { deepOrange } from '@mui/material/colors';
|
|
|
13
13
|
import * as React from 'react';
|
|
14
14
|
import React__default from 'react';
|
|
15
15
|
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
|
|
16
|
-
import { useNavigate } from 'react-router-dom';
|
|
17
16
|
|
|
18
17
|
const DrawerContext = React.createContext({
|
|
19
18
|
isDrawerOpen: false,
|
|
@@ -220,7 +219,6 @@ const languages = [
|
|
|
220
219
|
{ code: "es", name: "Spanish", flag: ESFlag },
|
|
221
220
|
];
|
|
222
221
|
const LanguageSelector = ({ currentLanguage, onLanguageChange, }) => {
|
|
223
|
-
const navigate = useNavigate();
|
|
224
222
|
const [anchorEl, setAnchorEl] = React__default.useState(null);
|
|
225
223
|
const open = Boolean(anchorEl);
|
|
226
224
|
const currentLang = languages.find((lang) => lang.code === currentLanguage) || languages[0];
|
|
@@ -239,11 +237,9 @@ const LanguageSelector = ({ currentLanguage, onLanguageChange, }) => {
|
|
|
239
237
|
const hash = window.location.hash;
|
|
240
238
|
// Find and replace existing locale /:locale/ with new locale
|
|
241
239
|
const newPath = currentPath.replace(/\/(en|es)\//, `/${languageCode}/`);
|
|
242
|
-
//
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
// Navigate using React Router to trigger proper re-render and translation
|
|
246
|
-
navigate(newPath + search + hash, { replace: true });
|
|
240
|
+
// Construct full URL and reload the page to apply translations
|
|
241
|
+
const fullUrl = newPath + search + hash;
|
|
242
|
+
window.location.href = fullUrl;
|
|
247
243
|
handleClose();
|
|
248
244
|
};
|
|
249
245
|
return (jsxs(Fragment, { children: [jsxs(Button, { onClick: handleClick, sx: {
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/DrawerContext.tsx","../src/utils/localStorage.ts","../src/utils/translations.ts","../src/asset/Impactomics.svg","../src/asset/flags/gb.png","../src/asset/flags/es.png","../src/LanguageSelector.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","export const getUserDataFromStorage = () => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n let userData = null;\r\n \r\n if (parsedOuter.userDetails) {\r\n const parsedUserDetails = parseNested(parsedOuter.userDetails);\r\n userData = parsedUserDetails.user || parsedUserDetails.data || parsedUserDetails;\r\n }\r\n \r\n if (!userData && parsedOuter.user) {\r\n const parsedUser = parseNested(parsedOuter.user);\r\n userData = parsedUser.user || parsedUser.data || parsedUser.currentUser || parsedUser;\r\n }\r\n \r\n if (!userData && parsedOuter.authDetails) {\r\n const parsedAuthDetails = parseNested(parsedOuter.authDetails);\r\n if (parsedAuthDetails.auth) {\r\n userData = parsedAuthDetails.auth.user || parsedAuthDetails.auth.userData;\r\n }\r\n if (!userData) {\r\n userData = parsedAuthDetails.user || parsedAuthDetails.userData || parsedAuthDetails.currentUser;\r\n }\r\n }\r\n \r\n if (!userData && parsedOuter.profile) {\r\n const parsedProfile = parseNested(parsedOuter.profile);\r\n userData = parsedProfile.user || parsedProfile.data || parsedProfile;\r\n }\r\n \r\n if (userData) {\r\n let name = userData.name || userData.fullName || userData.userName || \"\";\r\n if (!name && (userData.firstName || userData.lastName)) {\r\n name = [userData.firstName, userData.lastName].filter(Boolean).join(' ');\r\n }\r\n \r\n return {\r\n name: name || \"\",\r\n email: userData.email || userData.emailAddress || \"\",\r\n role: userData.role || userData.userRole || userData.designation || userData.title || \"\",\r\n avatar: userData.avatar || userData.profilePicture || userData.imageUrl || userData.profileImage,\r\n initials: userData.initials,\r\n };\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing user data from localStorage:\", err);\r\n return null;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport const getNotificationCountFromStorage = (): number => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.notifications) {\r\n const parsedNotifications = parseNested(parsedOuter.notifications);\r\n const count = parsedNotifications.count || parsedNotifications.unreadCount || parsedNotifications.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.notificationCount !== undefined) {\r\n return parsedApp.notificationCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing notification count from localStorage:\", err);\r\n }\r\n }\r\n return 0;\r\n};\r\n\r\nexport const getMessageCountFromStorage = (): number | undefined => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.messages) {\r\n const parsedMessages = parseNested(parsedOuter.messages);\r\n const count = parsedMessages.count || parsedMessages.unreadCount || parsedMessages.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.messageCount !== undefined) {\r\n return parsedApp.messageCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing message count from localStorage:\", err);\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const getI18nLocaleFromStorage = (): string | null => {\r\n try {\r\n return localStorage.getItem(\"lnc-i18n\");\r\n } catch (err) {\r\n console.error(\"Error getting i18n locale from localStorage:\", err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const setI18nLocaleToStorage = (locale: string): void => {\r\n try {\r\n localStorage.setItem(\"lnc-i18n\", locale);\r\n } catch (err) {\r\n console.error(\"Error setting i18n locale to localStorage:\", err);\r\n }\r\n};\r\n\r\n","export type SupportedLanguage = 'en' | 'es';\r\n\r\nexport interface Translations {\r\n accountSettings: string;\r\n profile: string;\r\n signOut: string;\r\n messages: string;\r\n notifications: string;\r\n online: string;\r\n offline: string;\r\n role: string;\r\n}\r\n\r\nexport const translations: Record<SupportedLanguage, Translations> = {\r\n en: {\r\n accountSettings: 'Account Settings',\r\n profile: 'Profile',\r\n signOut: 'Sign out',\r\n messages: 'Messages',\r\n notifications: 'Notifications',\r\n online: 'Online',\r\n offline: 'Offline',\r\n role: 'Role',\r\n },\r\n es: {\r\n accountSettings: 'Configuración de cuenta',\r\n profile: 'Perfil',\r\n signOut: 'Cerrar sesión',\r\n messages: 'Mensajes',\r\n notifications: 'Notificaciones',\r\n online: 'En línea',\r\n offline: 'Desconectado',\r\n role: 'Rol',\r\n },\r\n};\r\n\r\nexport const getTranslations = (language: SupportedLanguage = 'en'): Translations => {\r\n return translations[language] || translations.en;\r\n};\r\n\r\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%22134%22%20height%3D%2223%22%20viewBox%3D%220%200%20134%2023%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%2016.9641V0H2.29277V16.9641H0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M19.7586%204.39182C20.6034%204.36006%2021.361%204.53721%2022.0278%204.92659C22.3033%205.0887%2022.5771%205.30261%2022.8458%205.57C23.1146%205.83738%2023.3531%206.17663%2023.5647%206.58941C23.7764%207.00219%2023.946%207.49519%2024.077%208.07007C24.2064%208.64495%2024.2719%209.32011%2024.2719%2010.0972V16.9891H22.0765V10.6788C22.0765%209.95014%2021.9909%209.3151%2021.8195%208.77364C21.6482%208.23217%2021.4214%207.77929%2021.1359%207.41497C20.8504%207.05065%2020.5262%206.77992%2020.16%206.60111C19.7938%206.42396%2019.4243%206.33372%2019.0497%206.33372C18.6752%206.33372%2018.2821%206.42229%2017.9159%206.60111C17.5498%206.77992%2017.2205%207.05065%2016.9283%207.41497C16.636%207.77929%2016.3992%208.23217%2016.2211%208.77364C16.0414%209.31677%2015.9524%209.95014%2015.9524%2010.6788V16.9891H13.757V10.6788C13.757%209.95014%2013.6714%209.3151%2013.5017%208.77364C13.3304%208.23217%2013.1036%207.77929%2012.8181%207.41497C12.5342%207.05065%2012.2084%206.77992%2011.8422%206.60111C11.476%206.42396%2011.1065%206.33372%2010.7319%206.33372C10.3573%206.33372%209.9643%206.42229%209.59813%206.60111C9.23196%206.77992%208.90274%207.05065%208.61047%207.41497C8.3182%207.77929%208.08137%208.23217%207.90332%208.77364C7.72359%209.31677%207.63457%209.95014%207.63457%2010.6788V16.9891H5.3418V4.58734H7.63457V6.74817C7.97555%206.13318%208.36692%205.66859%208.80531%205.35274C9.24371%205.03689%209.6586%204.80627%2010.05%204.66088C10.5052%204.49877%2010.9688%204.4102%2011.4407%204.39349C12.027%204.36174%2012.588%204.45031%2013.1238%204.66088C13.5958%204.83969%2014.0627%205.13883%2014.5263%205.5583C14.9899%205.97943%2015.3511%206.62618%2015.6114%207.5002C15.9205%206.69135%2016.3102%206.07636%2016.7821%205.65522C17.2541%205.23409%2017.7093%204.92659%2018.1477%204.73274C18.6684%204.52217%2019.2043%204.40853%2019.7586%204.39349V4.39182Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M32.9558%204.39185C34.0291%204.44031%2034.9882%204.69934%2035.8348%205.16894C36.1926%205.3628%2036.5453%205.61013%2036.8964%205.90927C37.2457%206.20841%2037.5548%206.58108%2037.8236%207.02561C38.0923%207.47015%2038.3073%207.99323%2038.4702%208.59151C38.6332%209.18979%2038.7138%209.88666%2038.7138%2010.6788V10.8727C38.7138%2011.6665%2038.6315%2012.365%2038.4702%2012.9717C38.3073%2013.5783%2038.0923%2014.1047%2037.8236%2014.5492C37.5548%2014.9938%2037.2457%2015.3664%2036.8964%2015.6656C36.547%2015.9647%2036.1926%2016.2121%2035.8348%2016.4059C34.9882%2016.8588%2034.0291%2017.1095%2032.9558%2017.1579C32.5174%2017.1412%2032.0773%2017.061%2031.6389%2016.9156C31.2644%2016.7869%2030.8663%2016.5797%2030.443%2016.2973C30.0197%2016.0149%2029.63%2015.6138%2029.2723%2015.0957V22.8132H26.9795V4.5857H29.2723V6.47914C29.63%205.94604%2030.0197%205.5366%2030.443%205.25417C30.8663%204.97174%2031.2644%204.76452%2031.6389%204.63584C32.0773%204.49044%2032.5174%204.41023%2032.9558%204.39352V4.39185ZM36.4932%2010.6788C36.4932%209.95017%2036.3908%209.31512%2036.1875%208.77366C35.9843%208.2322%2035.7155%207.77931%2035.383%207.415C35.0487%207.05068%2034.6674%206.77995%2034.2357%206.60114C33.8041%206.42399%2033.3606%206.33375%2032.9071%206.33375C32.4536%206.33375%2032.0085%206.42232%2031.5768%206.60114C31.1451%206.77995%2030.7588%207.05068%2030.4178%207.415C30.0768%207.77931%2029.7997%208.2322%2029.588%208.77366C29.3764%209.3168%2029.2706%209.95017%2029.2706%2010.6788V10.8727C29.2706%2011.6013%2029.3764%2012.2363%2029.588%2012.7778C29.7997%2013.3209%2030.0752%2013.7738%2030.4178%2014.1365C30.7588%2014.5008%2031.1451%2014.7715%2031.5768%2014.9503C32.0068%2015.1291%2032.4502%2015.2177%2032.9071%2015.2177C33.364%2015.2177%2033.8057%2015.1291%2034.2357%2014.9503C34.6657%2014.7732%2035.0487%2014.5008%2035.383%2014.1365C35.7155%2013.7721%2035.9843%2013.3193%2036.1875%2012.7778C36.3908%2012.2363%2036.4932%2011.6013%2036.4932%2010.8727V10.6788Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M41.0529%205.99458C41.3301%205.8659%2041.6795%205.70714%2042.1011%205.52164C42.5243%205.33614%2042.9913%205.16234%2043.5036%205.00023C44.0159%204.83813%2044.5568%204.70109%2045.1262%204.58745C45.6956%204.47381%2046.2482%204.41699%2046.7857%204.41699C47.3232%204.41699%2047.8338%204.48551%2048.3226%204.62255C48.8097%204.75958%2049.238%204.99856%2049.6025%205.33781C49.9687%205.67706%2050.2576%206.13162%2050.4693%206.69647C50.6809%207.263%2050.7867%207.97492%2050.7867%208.83223V16.9876H48.6149V14.8769C48.4839%2015.2161%2048.2689%2015.5286%2047.9682%2015.8111C47.6675%2016.0935%2047.3215%2016.3375%2046.9318%2016.5397C46.5422%2016.7419%2046.1138%2016.8956%2045.6502%2017.0009C45.1866%2017.1062%2044.7197%2017.158%2044.2477%2017.158C43.7757%2017.158%2043.292%2017.0928%2042.8452%2016.9642C42.3984%2016.8355%2042.0003%2016.6333%2041.6492%2016.3575C41.2998%2016.0835%2041.0193%2015.7308%2040.8077%2015.3013C40.5961%2014.8735%2040.4902%2014.3505%2040.4902%2013.7355C40.4902%2012.9266%2040.6851%2012.223%2041.0764%2011.6248C41.4661%2011.0265%2042.0154%2010.5201%2042.7225%2010.1073C43.4297%209.69456%2044.2847%209.38372%2045.2841%209.17315C46.2835%208.96258%2047.3937%208.8573%2048.6132%208.8573V8.83223C48.6132%208.36263%2048.5561%207.96991%2048.4419%207.65573C48.3277%207.33987%2048.1647%207.08586%2047.9548%206.892C47.7431%206.69814%2047.5029%206.56111%2047.2359%206.47922C46.9671%206.39901%2046.6715%206.35722%2046.3456%206.35722C45.9072%206.35722%2045.4504%206.41739%2044.98%206.53938C44.508%206.66138%2044.0646%206.80176%2043.6497%206.96386C43.2348%207.12596%2042.8653%207.28306%2042.5395%207.4368C42.2136%207.59055%2041.9784%207.69918%2041.8323%207.76435L41.0512%205.99291L41.0529%205.99458ZM48.6149%2010.7507C48.0287%2010.7507%2047.3904%2010.7875%2046.7%2010.8594C46.008%2010.9329%2045.363%2011.0733%2044.76%2011.2838C44.1587%2011.4944%2043.6581%2011.7936%2043.26%2012.1813C42.862%2012.569%2042.6621%2013.0787%2042.6621%2013.7104C42.6621%2014.2769%2042.8821%2014.7014%2043.3205%2014.9855C43.7589%2015.2679%2044.2796%2015.41%2044.8826%2015.41C45.3059%2015.41%2045.7359%2015.3381%2046.176%2015.191C46.6144%2015.0457%2047.0175%2014.8234%2047.3837%2014.5243C47.7498%2014.2251%2048.0455%2013.8524%2048.2739%2013.4079C48.5007%2012.9634%2048.6149%2012.442%2048.6149%2011.842V10.7507Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M55.1523%2010.7991C55.1523%2011.5595%2055.2665%2012.228%2055.4933%2012.8012C55.72%2013.3761%2056.0207%2013.8523%2056.3953%2014.2334C56.7698%2014.6144%2057.1998%2014.9002%2057.6886%2015.0957C58.1757%2015.2895%2058.6796%2015.3865%2059.2004%2015.3865C59.8185%2015.3865%2060.44%2015.2528%2061.0665%2014.9854C61.693%2014.718%2062.2574%2014.3019%2062.7613%2013.7354L63.9085%2014.9971C63.3391%2015.7257%2062.6286%2016.2722%2061.7736%2016.6348C60.9204%2016.9992%2060.0301%2017.1813%2059.1029%2017.1813C58.3387%2017.1813%2057.5912%2017.051%2056.8589%2016.7936C56.1265%2016.5346%2055.4714%2016.1469%2054.8953%2015.6288C54.3175%2015.1107%2053.8539%2014.4473%2053.5045%2013.6384C53.1552%2012.8296%2052.9805%2011.8837%2052.9805%2010.7991C52.9805%209.71451%2053.1552%208.74857%2053.5045%207.94808C53.8539%207.14759%2054.3175%206.48413%2054.8953%205.95771C55.4731%205.43129%2056.1265%205.04024%2056.8589%204.78121C57.5912%204.52218%2058.3387%204.39349%2059.1029%204.39349C60.0301%204.39349%2060.9204%204.57565%2061.7736%204.93997C62.6269%205.30428%2063.3391%205.85076%2063.9085%206.57772L62.7613%207.83946C62.2574%207.27293%2061.6913%206.8568%2061.0665%206.58942C60.44%206.32203%2059.8185%206.18834%2059.2004%206.18834C58.6796%206.18834%2058.1757%206.28526%2057.6886%206.47912C57.2015%206.67298%2056.7698%206.96376%2056.3953%207.35314C56.0207%207.74086%2055.72%208.22383%2055.4933%208.79704C55.2648%209.37192%2055.1523%2010.0387%2055.1523%2010.7991Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M71.9846%2015.2662L72.1559%2016.8672C71.6352%2016.949%2071.1632%2017.0126%2070.7416%2017.061C70.3184%2017.1095%2069.9438%2017.1345%2069.6196%2017.1345C69.067%2017.1345%2068.6152%2017.066%2068.2658%2016.929C67.9164%2016.792%2067.6443%2016.5814%2067.4495%2016.2973C67.2546%2016.0149%2067.1202%2015.6505%2067.0463%2015.2043C66.9724%2014.7598%2066.9288%2014.2217%2066.912%2013.59V6.35715H64.9854V4.5857H66.912V2.6438H69.2047V4.5857H72.1324V6.35715H69.2047V13.59C69.2047%2013.9459%2069.2165%2014.2334%2069.2417%2014.4523C69.2669%2014.6712%2069.3677%2014.84%2069.5474%2014.962C69.7254%2015.084%2070.0059%2015.1642%2070.3889%2015.2043C70.7702%2015.2444%2071.3043%2015.2645%2071.9863%2015.2645L71.9846%2015.2662Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M100.591%204.39163C101.435%204.35988%20102.193%204.53703%20102.86%204.92641C103.135%205.08851%20103.409%205.30242%20103.678%205.56981C103.947%205.8372%20104.185%206.17645%20104.397%206.58923C104.608%207.00201%20104.778%207.495%20104.909%208.06989C105.038%208.64477%20105.104%209.31993%20105.104%2010.097V16.9889H102.909V10.6786C102.909%209.94996%20102.823%209.31491%20102.652%208.77345C102.48%208.23199%20102.253%207.7791%20101.968%207.41479C101.682%207.05047%20101.358%206.77974%20100.992%206.60093C100.626%206.42378%20100.256%206.33354%2099.8818%206.33354C99.5072%206.33354%2099.1142%206.42211%2098.748%206.60093C98.3818%206.77974%2098.0526%207.05047%2097.7603%207.41479C97.4681%207.7791%2097.2312%208.23199%2097.0532%208.77345C96.8734%209.31658%2096.7844%209.94996%2096.7844%2010.6786V16.9889H94.5891V10.6786C94.5891%209.94996%2094.5034%209.31491%2094.3338%208.77345C94.1624%208.23199%2093.9357%207.7791%2093.6501%207.41479C93.3663%207.05047%2093.0404%206.77974%2092.6742%206.60093C92.308%206.42378%2091.9385%206.33354%2091.564%206.33354C91.1894%206.33354%2090.7963%206.42211%2090.4302%206.60093C90.064%206.77974%2089.7348%207.05047%2089.4425%207.41479C89.1502%207.7791%2088.9134%208.23199%2088.7354%208.77345C88.5556%209.31658%2088.4666%209.94996%2088.4666%2010.6786V16.9889H86.1738V4.58716H88.4666V6.74799C88.8076%206.133%2089.199%205.66841%2089.6374%205.35256C90.0758%205.03671%2090.4906%204.80609%2090.882%204.66069C91.3372%204.49859%2091.8008%204.41002%2092.2728%204.3933C92.859%204.36155%2093.42%204.45013%2093.9558%204.66069C94.4278%204.83951%2094.8948%205.13865%2095.3584%205.55811C95.822%205.97925%2096.1831%206.62599%2096.4434%207.50002C96.7525%206.69117%2097.1422%206.07618%2097.6142%205.65504C98.0862%205.23391%2098.5414%204.92641%2098.9798%204.73255C99.5005%204.52199%20100.036%204.40834%20100.591%204.3933V4.39163Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M108.933%203.34883C108.559%203.34883%20108.241%203.22015%20107.982%202.96112C107.722%202.70209%20107.593%202.38624%20107.593%202.01524C107.593%201.64424%20107.722%201.32838%20107.982%201.06935C108.243%200.810321%20108.56%200.681641%20108.933%200.681641C109.306%200.681641%20109.629%200.811992%20109.897%201.06935C110.166%201.32838%20110.3%201.64424%20110.3%202.01524C110.3%202.38624%20110.166%202.70376%20109.897%202.96112C109.629%203.22015%20109.308%203.34883%20108.933%203.34883ZM107.786%2016.989V4.58717H110.104V16.989H107.786Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M114.569%2010.7989C114.569%2011.5593%20114.684%2012.2278%20114.91%2012.801C115.137%2013.3759%20115.438%2013.8522%20115.812%2014.2332C116.187%2014.6142%20116.617%2014.9%20117.106%2015.0955C117.593%2015.2894%20118.097%2015.3863%20118.617%2015.3863C119.235%2015.3863%20119.857%2015.2526%20120.483%2014.9852C121.11%2014.7178%20121.674%2014.3017%20122.178%2013.7352L123.326%2014.9969C122.756%2015.7255%20122.046%2016.272%20121.191%2016.6347C120.337%2016.999%20119.447%2017.1811%20118.52%2017.1811C117.756%2017.1811%20117.008%2017.0508%20116.276%2016.7934C115.544%2016.5344%20114.888%2016.1467%20114.312%2015.6286C113.734%2015.1106%20113.271%2014.4471%20112.922%2013.6382C112.572%2012.8294%20112.397%2011.8835%20112.397%2010.7989C112.397%209.71433%20112.572%208.74839%20112.922%207.9479C113.271%207.14741%20113.734%206.48395%20114.312%205.95753C114.89%205.43111%20115.544%205.04006%20116.276%204.78102C117.008%204.52199%20117.756%204.39331%20118.52%204.39331C119.447%204.39331%20120.337%204.57547%20121.191%204.93979C122.044%205.3041%20122.756%205.85058%20123.326%206.57754L122.178%207.83927C121.674%207.27274%20121.108%206.85662%20120.483%206.58923C119.857%206.32185%20119.235%206.18815%20118.617%206.18815C118.097%206.18815%20117.593%206.28508%20117.106%206.47894C116.619%206.67279%20116.187%206.96358%20115.812%207.35296C115.438%207.74067%20115.137%208.22364%20114.91%208.79685C114.682%209.37174%20114.569%2010.0385%20114.569%2010.7989Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M127.764%207.62027C127.764%207.94447%20127.914%208.21855%20128.216%208.44583C128.517%208.67311%20128.895%208.89036%20129.35%209.10093C129.805%209.31149%20130.3%209.53376%20130.838%209.76773C131.374%2010.0017%20131.871%2010.2858%20132.326%2010.6167C132.781%2010.9492%20133.159%2011.3537%20133.46%2011.83C133.761%2012.3079%20133.912%2012.8861%20133.912%2013.5646C133.912%2014.1796%20133.789%2014.7177%20133.546%2015.179C133.302%2015.6402%20132.98%2016.0213%20132.581%2016.3204C132.183%2016.6195%20131.72%2016.8468%20131.191%2017.0006C130.662%2017.1543%20130.114%2017.2312%20129.545%2017.2312C128.586%2017.2312%20127.653%2017.0206%20126.751%2016.5995C125.849%2016.1783%20125.146%2015.54%20124.642%2014.6826L125.958%2013.202C126.414%2013.9306%20126.943%2014.4604%20127.544%2014.7913C128.145%2015.1238%20128.732%2015.2893%20129.301%2015.2893C129.87%2015.2893%20130.358%2015.1355%20130.764%2014.828C131.171%2014.5205%20131.374%2014.0994%20131.374%2013.5663C131.374%2013.0967%20131.223%2012.7257%20130.922%2012.45C130.621%2012.1742%20130.252%2011.9369%20129.812%2011.7347C129.373%2011.5325%20128.888%2011.3386%20128.36%2011.1515C127.831%2010.966%20127.348%2010.7303%20126.909%2010.4479C126.471%2010.1655%20126.1%209.80115%20125.799%209.35495C125.498%208.91041%20125.347%208.32383%20125.347%207.5952C125.347%207.06042%20125.456%206.5925%20125.676%206.18807C125.896%205.78365%20126.189%205.44774%20126.555%205.18035C126.921%204.91297%20127.339%204.71075%20127.811%204.57372C128.283%204.43668%20128.77%204.36816%20129.274%204.36816C130.007%204.36816%20130.717%204.50186%20131.409%204.76924C132.099%205.03663%20132.665%205.4444%20133.104%205.99422L131.811%207.32948C131.404%206.8766%20130.989%206.5457%20130.566%206.33514C130.143%206.12457%20129.744%206.01928%20129.37%206.01928C128.898%206.01928%20128.512%206.16133%20128.211%206.44376C127.91%206.72786%20127.759%207.11891%20127.759%207.62027H127.764Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M82.2257%2016.5045C82.7489%2016.5045%2083.173%2016.0825%2083.173%2015.5619C83.173%2015.0414%2082.7489%2014.6194%2082.2257%2014.6194C81.7025%2014.6194%2081.2783%2015.0414%2081.2783%2015.5619C81.2783%2016.0825%2081.7025%2016.5045%2082.2257%2016.5045Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3Cpath%20d%3D%22M83.3365%207.03215C82.799%206.22831%2082.4748%205.97596%2082.4379%205.94421C82.4076%205.97763%2081.86%206.56923%2081.3964%207.65716C81.64%207.98304%2081.7509%208.27215%2081.9071%208.71502C82.1019%209.2665%2082.201%209.91325%2082.201%2010.6402C82.201%2011.414%2082.0986%2012.0975%2081.8953%2012.6724C81.6904%2013.2489%2081.4216%2013.7336%2081.0958%2014.1146C80.7682%2014.4973%2080.3886%2014.7914%2079.9704%2014.9869C79.1322%2015.3797%2078.2067%2015.3797%2077.3686%2014.9869C76.9503%2014.7914%2076.5673%2014.4973%2076.2331%2014.1146C75.8971%2013.7319%2075.6284%2013.2472%2075.4336%2012.6707C75.2387%2012.0975%2075.1396%2011.4223%2075.1396%2010.6636C75.1396%209.90489%2075.2421%209.28823%2075.447%208.73841C75.6502%208.18692%2075.919%207.72234%2076.2465%207.35635C76.5741%206.98869%2076.957%206.70794%2077.3837%206.52077C77.8086%206.33359%2078.2554%206.24001%2078.7022%206.24001C79.149%206.24001%2079.5757%206.32858%2079.9922%206.5074C80.2492%206.61769%2080.3668%206.70125%2080.5919%206.88341C80.9396%206.36702%2081.2016%205.79715%2081.3696%205.18048C81.3528%205.17046%2081.336%205.16043%2081.3175%205.1504C80.5146%204.71088%2079.71%204.53207%2078.6888%204.48193H78.6703H78.6518C77.6306%204.53207%2076.7051%204.7794%2075.9022%205.21725C75.5528%205.40776%2075.2118%205.65008%2074.8877%205.94087C74.5652%206.23165%2074.2679%206.59764%2074.0075%207.03047C73.7455%207.46331%2073.5338%207.98304%2073.3743%208.57464C73.2164%209.16623%2073.1357%209.85977%2073.1357%2010.6369C73.1357%2011.414%2073.2164%2012.1359%2073.3743%2012.7342C73.5322%2013.3341%2073.7455%2013.8622%2074.0075%2014.3034C74.2695%2014.7446%2074.5652%2015.124%2074.8893%2015.4298C75.2135%2015.7373%2075.5562%2015.998%2075.9089%2016.2052C76.7051%2016.6548%2077.6256%2016.9171%2078.6451%2016.984H78.6703H78.6955C79.6748%2016.9205%2080.5633%2016.6731%2081.3444%2016.2503C81.0303%2015.8091%2081.0706%2015.1942%2081.467%2014.7998C81.897%2014.3719%2082.584%2014.3602%2083.0291%2014.7597C83.1332%2014.6159%2083.2357%2014.4655%2083.3314%2014.3034C83.5918%2013.8639%2083.8051%2013.3358%2083.9647%2012.7342C84.1226%2012.1326%2084.2032%2011.4273%2084.2032%2010.6369C84.2032%209.8464%2084.1226%209.16958%2083.963%208.57464C83.8034%207.98137%2083.5901%207.46164%2083.3298%207.03047L83.3365%207.03215Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M77.0141%209.74781C75.4268%2011.7031%2077.7582%2014.2817%2079.7788%2013.2322C81.5173%2012.3298%2080.7883%2010.9343%2080.8152%209.58237C80.8387%208.37076%2081.4955%206.88175%2082.2547%205.94923C83.0626%204.95488%2085.1303%204.66243%2084.7238%202.9712C84.4165%201.6961%2082.6864%201.39529%2081.9104%202.3913C81.3594%203.09654%2081.7542%203.96722%2081.603%204.77607C81.3443%206.17651%2080.6153%207.36639%2079.5135%208.25545C78.7777%208.84872%2077.5365%209.10608%2077.0141%209.74781Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAUCAMAAADImI+JAAAANlBMVEX////w8vfyxcx8jbJCWpAOLHFVa5sBIWnIEC7WTGLnv8qAkLTheYpecqHx0digrMfz3+T21dqBS5WQAAAApUlEQVQoz8WTyxpFMAyEpyqOuhTv/7IntImmurAzC59kfsIIhA5wnn6iASMLgzbIT2Fk6joUaAUKBsiJm+kJ0iyuR1mQBam8Cex1dINkZ6EesSZwrR8JfdYWl7AcbCRw5ypytYmPpy6w3X6jL8HXL6PxOODgTPYEcnXmFe94cuBsdJzwpIFrRwK3WPkJLQqL2aUoUVisXjOvLizWWNyMVljrV0gz/wdhEi0lRIbcAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAbCAMAAAA5zj1cAAAApVBMVEX6vQCtFRnBPxP3tgCkSRTxsQC9miCtkjL3ugDcdwrVkwndpwauUEi3k3ecLQyvGx01YomtXy3Zhha+gw+4LiCzn4jKeBKyYgjmoAOkXUK/RhC1kJmmKh+0oKCbYwN5OAWWHxSVi0HypQNcdGsDAgC9g1j6vgSWhnLfsSXCn169cE24eBuaNwzQaiOYagW8bxWIOhqoKhPLdq4yUHR+UgVZLWaBHkAs3esWAAAAk0lEQVQ4y+WTVxLDIAxESQwBAwb33tKc3sv9j5YbWJp8JvurNzsrzYpMkCI/BU6RIt9phqIcJSOpEGBu7c2WA+iXOWmbtTmTACh42PdelSgwp+d2nXdvTjuAc3X5vL6qJo4XQEZ9qd8PXaR7yDE5GFOf6XbNRrmB8cgcKaUraJm5z4NiE4RLH3FyIUaG6Pb85XN9AIg9CvrV7UGSAAAAAElFTkSuQmCC\"","import React from \"react\";\r\nimport {\r\n Button,\r\n Menu,\r\n MenuItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Box,\r\n} from \"@mui/material\";\r\nimport ArrowDropDownIcon from \"@mui/icons-material/ArrowDropDown\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { SupportedLanguage } from \"./utils/translations\";\r\nimport { setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport GBFlag from \"./asset/flags/gb.png\";\r\nimport ESFlag from \"./asset/flags/es.png\";\r\n\r\ninterface LanguageOption {\r\n code: SupportedLanguage;\r\n name: string;\r\n flag: string;\r\n}\r\n\r\nconst languages: LanguageOption[] = [\r\n { code: \"en\", name: \"English\", flag: GBFlag },\r\n { code: \"es\", name: \"Spanish\", flag: ESFlag },\r\n];\r\n\r\ninterface LanguageSelectorProps {\r\n currentLanguage: SupportedLanguage;\r\n onLanguageChange: (language: SupportedLanguage) => void;\r\n}\r\n\r\nconst LanguageSelector: React.FC<LanguageSelectorProps> = ({\r\n currentLanguage,\r\n onLanguageChange,\r\n}) => {\r\n const navigate = useNavigate();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const currentLang = languages.find((lang) => lang.code === currentLanguage) || languages[0];\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleLanguageSelect = (languageCode: SupportedLanguage) => {\r\n // Update localStorage\r\n setI18nLocaleToStorage(languageCode);\r\n \r\n // Get current path\r\n const currentPath = window.location.pathname;\r\n const search = window.location.search;\r\n const hash = window.location.hash;\r\n \r\n // Find and replace existing locale /:locale/ with new locale\r\n const newPath = currentPath.replace(/\\/(en|es)\\//, `/${languageCode}/`);\r\n \r\n // Update language state first\r\n onLanguageChange(languageCode);\r\n console.log('raja new path is v4', newPath + search + hash);\r\n // Navigate using React Router to trigger proper re-render and translation\r\n navigate(newPath + search + hash, { replace: true });\r\n \r\n handleClose();\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n onClick={handleClick}\r\n sx={{\r\n color: \"#1e2f97\",\r\n textTransform: \"none\",\r\n padding: \"4px 8px\",\r\n minWidth: \"auto\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(30, 47, 151, 0.04)\",\r\n },\r\n }}\r\n aria-label=\"Select language\"\r\n aria-controls={open ? \"language-menu\" : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? \"true\" : undefined}\r\n >\r\n <Box\r\n component=\"img\"\r\n src={currentLang.flag}\r\n alt={currentLang.name}\r\n sx={{\r\n width: \"20px\",\r\n height: \"15px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"14px\",\r\n fontWeight: 500,\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n {currentLang.code.toUpperCase()}\r\n </Box>\r\n <ArrowDropDownIcon\r\n sx={{\r\n fontSize: \"20px\",\r\n marginLeft: \"2px\",\r\n display: \"flex\",\r\n alignSelf: \"center\",\r\n }}\r\n />\r\n </Button>\r\n <Menu\r\n id=\"language-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"right\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n slotProps={{\r\n paper: {\r\n sx: {\r\n mt: 1,\r\n minWidth: 150,\r\n },\r\n },\r\n }}\r\n >\r\n {languages.map((language) => (\r\n <MenuItem\r\n key={language.code}\r\n onClick={() => handleLanguageSelect(language.code)}\r\n selected={language.code === currentLanguage}\r\n >\r\n <ListItemIcon>\r\n <Box\r\n component=\"img\"\r\n src={language.flag}\r\n alt={language.name}\r\n sx={{\r\n width: \"24px\",\r\n height: \"18px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n </ListItemIcon>\r\n <ListItemText primary={language.name} />\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </>\r\n );\r\n};\r\n\r\nexport default LanguageSelector;\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps, UserProfile } from \"./types\";\r\nimport { getUserDataFromStorage, getNotificationCountFromStorage, getMessageCountFromStorage, getI18nLocaleFromStorage, setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport { getTranslations, SupportedLanguage } from \"./utils/translations\";\r\nimport ImpactomicsLogo from \"./asset/Impactomics.svg\";\r\nimport LanguageSelector from \"./LanguageSelector\";\r\nimport \"./styles/Header.scss\";\r\n\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({ language: languageProp }) => {\r\n // Get initial language from props, URL, localStorage, or default to 'en'\r\n const getInitialLanguage = (): SupportedLanguage => {\r\n // Priority 1: Props\r\n if (languageProp) {\r\n setI18nLocaleToStorage(languageProp);\r\n return languageProp as SupportedLanguage;\r\n }\r\n \r\n // Priority 2: URL path - pattern is /:locale/base-name/...\r\n const currentPath = window.location.pathname;\r\n const localePattern = /^\\/(en|es)(\\/|$)/;\r\n const localeMatch = currentPath.match(localePattern);\r\n if (localeMatch && localeMatch[1]) {\r\n const urlLocale = localeMatch[1] as SupportedLanguage;\r\n setI18nLocaleToStorage(urlLocale);\r\n return urlLocale;\r\n }\r\n \r\n // Priority 3: localStorage\r\n const storedLocale = getI18nLocaleFromStorage();\r\n if (storedLocale && (storedLocale === 'en' || storedLocale === 'es')) {\r\n return storedLocale as SupportedLanguage;\r\n }\r\n \r\n // Default\r\n return 'en';\r\n };\r\n\r\n const [currentLanguage, setCurrentLanguage] = React.useState<SupportedLanguage>(getInitialLanguage);\r\n const t = getTranslations(currentLanguage);\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n \r\n const [user, setUser] = React.useState<UserProfile>(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n return storedUser;\r\n }\r\n return {\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n };\r\n });\r\n\r\n const [notificationCount, setNotificationCount] = React.useState<number>(() => {\r\n const count = getNotificationCountFromStorage();\r\n return count !== null && count !== undefined ? count : 0;\r\n });\r\n \r\n const [messageCount, setMessageCount] = React.useState<number | undefined>(() => {\r\n return getMessageCountFromStorage() ?? undefined;\r\n });\r\n\r\n React.useEffect(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n setUser(storedUser);\r\n } else {\r\n setUser({\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n });\r\n }\r\n \r\n const notifCount = getNotificationCountFromStorage();\r\n setNotificationCount(notifCount !== null && notifCount !== undefined ? notifCount : 0);\r\n \r\n const msgCount = getMessageCountFromStorage();\r\n setMessageCount(msgCount ?? undefined);\r\n\r\n // Initialize language from props if provided\r\n if (languageProp && languageProp !== currentLanguage) {\r\n setCurrentLanguage(languageProp as SupportedLanguage);\r\n setI18nLocaleToStorage(languageProp);\r\n }\r\n }, [languageProp]);\r\n\r\n const finalRoutes = DEFAULT_ROUTES;\r\n const isOnlineStatus = true;\r\n const notificationCountValue = notificationCount;\r\n \r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n const path = finalRoutes.settings.startsWith('/') \r\n ? finalRoutes.settings \r\n : `/${finalRoutes.settings}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n const path = finalRoutes.profile.startsWith('/') \r\n ? finalRoutes.profile \r\n : `/${finalRoutes.profile}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n localStorage.clear();\r\n const path = finalRoutes.logout.startsWith('/') \r\n ? finalRoutes.logout \r\n : `/${finalRoutes.logout}`;\r\n window.location.href = path;\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n {t.role}: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.accountSettings}\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.profile}\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.signOut}\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.messages}</p>\r\n </MenuItem>\r\n )}\r\n {notificationCountValue > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCountValue} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.notifications}</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>{t.profile}</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className=\"app-header\">\r\n <AppBar\r\n sx={{\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n padding: 0,\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={() => {\r\n toggleDrawer();\r\n }}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize=\"large\" />\r\n ) : (\r\n <MenuIcon fontSize=\"large\" />\r\n )}\r\n </IconButton>\r\n <Box\r\n component=\"div\"\r\n sx={{ \r\n display: { xs: \"none\", sm: \"flex\" },\r\n alignItems: 'center',\r\n marginLeft: '-5px'\r\n }}\r\n data-testid=\"impactomics-logo-wrapper\"\r\n >\r\n <img \r\n src={ImpactomicsLogo} \r\n alt=\"Impactomics\" \r\n style={{ height: '23px', width: 'auto', display: 'block' }}\r\n />\r\n </Box>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" }, alignItems: \"center\", gap: \"4px\" }}>\r\n <LanguageSelector\r\n currentLanguage={currentLanguage}\r\n onLanguageChange={(lang) => {\r\n setCurrentLanguage(lang);\r\n // The LanguageSelector component handles URL and localStorage updates\r\n }}\r\n />\r\n <IconButton\r\n size=\"large\"\r\n aria-label={notificationCountValue > 0 ? `show ${notificationCountValue} new notifications` : \"show notifications\"}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCountValue > 0 ? notificationCountValue : 0} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["_jsx","React","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/DrawerContext.tsx","../src/utils/localStorage.ts","../src/utils/translations.ts","../src/asset/Impactomics.svg","../src/asset/flags/gb.png","../src/asset/flags/es.png","../src/LanguageSelector.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","export const getUserDataFromStorage = () => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n let userData = null;\r\n \r\n if (parsedOuter.userDetails) {\r\n const parsedUserDetails = parseNested(parsedOuter.userDetails);\r\n userData = parsedUserDetails.user || parsedUserDetails.data || parsedUserDetails;\r\n }\r\n \r\n if (!userData && parsedOuter.user) {\r\n const parsedUser = parseNested(parsedOuter.user);\r\n userData = parsedUser.user || parsedUser.data || parsedUser.currentUser || parsedUser;\r\n }\r\n \r\n if (!userData && parsedOuter.authDetails) {\r\n const parsedAuthDetails = parseNested(parsedOuter.authDetails);\r\n if (parsedAuthDetails.auth) {\r\n userData = parsedAuthDetails.auth.user || parsedAuthDetails.auth.userData;\r\n }\r\n if (!userData) {\r\n userData = parsedAuthDetails.user || parsedAuthDetails.userData || parsedAuthDetails.currentUser;\r\n }\r\n }\r\n \r\n if (!userData && parsedOuter.profile) {\r\n const parsedProfile = parseNested(parsedOuter.profile);\r\n userData = parsedProfile.user || parsedProfile.data || parsedProfile;\r\n }\r\n \r\n if (userData) {\r\n let name = userData.name || userData.fullName || userData.userName || \"\";\r\n if (!name && (userData.firstName || userData.lastName)) {\r\n name = [userData.firstName, userData.lastName].filter(Boolean).join(' ');\r\n }\r\n \r\n return {\r\n name: name || \"\",\r\n email: userData.email || userData.emailAddress || \"\",\r\n role: userData.role || userData.userRole || userData.designation || userData.title || \"\",\r\n avatar: userData.avatar || userData.profilePicture || userData.imageUrl || userData.profileImage,\r\n initials: userData.initials,\r\n };\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing user data from localStorage:\", err);\r\n return null;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport const getNotificationCountFromStorage = (): number => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.notifications) {\r\n const parsedNotifications = parseNested(parsedOuter.notifications);\r\n const count = parsedNotifications.count || parsedNotifications.unreadCount || parsedNotifications.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.notificationCount !== undefined) {\r\n return parsedApp.notificationCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing notification count from localStorage:\", err);\r\n }\r\n }\r\n return 0;\r\n};\r\n\r\nexport const getMessageCountFromStorage = (): number | undefined => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.messages) {\r\n const parsedMessages = parseNested(parsedOuter.messages);\r\n const count = parsedMessages.count || parsedMessages.unreadCount || parsedMessages.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.messageCount !== undefined) {\r\n return parsedApp.messageCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing message count from localStorage:\", err);\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const getI18nLocaleFromStorage = (): string | null => {\r\n try {\r\n return localStorage.getItem(\"lnc-i18n\");\r\n } catch (err) {\r\n console.error(\"Error getting i18n locale from localStorage:\", err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const setI18nLocaleToStorage = (locale: string): void => {\r\n try {\r\n localStorage.setItem(\"lnc-i18n\", locale);\r\n } catch (err) {\r\n console.error(\"Error setting i18n locale to localStorage:\", err);\r\n }\r\n};\r\n\r\n","export type SupportedLanguage = 'en' | 'es';\r\n\r\nexport interface Translations {\r\n accountSettings: string;\r\n profile: string;\r\n signOut: string;\r\n messages: string;\r\n notifications: string;\r\n online: string;\r\n offline: string;\r\n role: string;\r\n}\r\n\r\nexport const translations: Record<SupportedLanguage, Translations> = {\r\n en: {\r\n accountSettings: 'Account Settings',\r\n profile: 'Profile',\r\n signOut: 'Sign out',\r\n messages: 'Messages',\r\n notifications: 'Notifications',\r\n online: 'Online',\r\n offline: 'Offline',\r\n role: 'Role',\r\n },\r\n es: {\r\n accountSettings: 'Configuración de cuenta',\r\n profile: 'Perfil',\r\n signOut: 'Cerrar sesión',\r\n messages: 'Mensajes',\r\n notifications: 'Notificaciones',\r\n online: 'En línea',\r\n offline: 'Desconectado',\r\n role: 'Rol',\r\n },\r\n};\r\n\r\nexport const getTranslations = (language: SupportedLanguage = 'en'): Translations => {\r\n return translations[language] || translations.en;\r\n};\r\n\r\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%22134%22%20height%3D%2223%22%20viewBox%3D%220%200%20134%2023%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%2016.9641V0H2.29277V16.9641H0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M19.7586%204.39182C20.6034%204.36006%2021.361%204.53721%2022.0278%204.92659C22.3033%205.0887%2022.5771%205.30261%2022.8458%205.57C23.1146%205.83738%2023.3531%206.17663%2023.5647%206.58941C23.7764%207.00219%2023.946%207.49519%2024.077%208.07007C24.2064%208.64495%2024.2719%209.32011%2024.2719%2010.0972V16.9891H22.0765V10.6788C22.0765%209.95014%2021.9909%209.3151%2021.8195%208.77364C21.6482%208.23217%2021.4214%207.77929%2021.1359%207.41497C20.8504%207.05065%2020.5262%206.77992%2020.16%206.60111C19.7938%206.42396%2019.4243%206.33372%2019.0497%206.33372C18.6752%206.33372%2018.2821%206.42229%2017.9159%206.60111C17.5498%206.77992%2017.2205%207.05065%2016.9283%207.41497C16.636%207.77929%2016.3992%208.23217%2016.2211%208.77364C16.0414%209.31677%2015.9524%209.95014%2015.9524%2010.6788V16.9891H13.757V10.6788C13.757%209.95014%2013.6714%209.3151%2013.5017%208.77364C13.3304%208.23217%2013.1036%207.77929%2012.8181%207.41497C12.5342%207.05065%2012.2084%206.77992%2011.8422%206.60111C11.476%206.42396%2011.1065%206.33372%2010.7319%206.33372C10.3573%206.33372%209.9643%206.42229%209.59813%206.60111C9.23196%206.77992%208.90274%207.05065%208.61047%207.41497C8.3182%207.77929%208.08137%208.23217%207.90332%208.77364C7.72359%209.31677%207.63457%209.95014%207.63457%2010.6788V16.9891H5.3418V4.58734H7.63457V6.74817C7.97555%206.13318%208.36692%205.66859%208.80531%205.35274C9.24371%205.03689%209.6586%204.80627%2010.05%204.66088C10.5052%204.49877%2010.9688%204.4102%2011.4407%204.39349C12.027%204.36174%2012.588%204.45031%2013.1238%204.66088C13.5958%204.83969%2014.0627%205.13883%2014.5263%205.5583C14.9899%205.97943%2015.3511%206.62618%2015.6114%207.5002C15.9205%206.69135%2016.3102%206.07636%2016.7821%205.65522C17.2541%205.23409%2017.7093%204.92659%2018.1477%204.73274C18.6684%204.52217%2019.2043%204.40853%2019.7586%204.39349V4.39182Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M32.9558%204.39185C34.0291%204.44031%2034.9882%204.69934%2035.8348%205.16894C36.1926%205.3628%2036.5453%205.61013%2036.8964%205.90927C37.2457%206.20841%2037.5548%206.58108%2037.8236%207.02561C38.0923%207.47015%2038.3073%207.99323%2038.4702%208.59151C38.6332%209.18979%2038.7138%209.88666%2038.7138%2010.6788V10.8727C38.7138%2011.6665%2038.6315%2012.365%2038.4702%2012.9717C38.3073%2013.5783%2038.0923%2014.1047%2037.8236%2014.5492C37.5548%2014.9938%2037.2457%2015.3664%2036.8964%2015.6656C36.547%2015.9647%2036.1926%2016.2121%2035.8348%2016.4059C34.9882%2016.8588%2034.0291%2017.1095%2032.9558%2017.1579C32.5174%2017.1412%2032.0773%2017.061%2031.6389%2016.9156C31.2644%2016.7869%2030.8663%2016.5797%2030.443%2016.2973C30.0197%2016.0149%2029.63%2015.6138%2029.2723%2015.0957V22.8132H26.9795V4.5857H29.2723V6.47914C29.63%205.94604%2030.0197%205.5366%2030.443%205.25417C30.8663%204.97174%2031.2644%204.76452%2031.6389%204.63584C32.0773%204.49044%2032.5174%204.41023%2032.9558%204.39352V4.39185ZM36.4932%2010.6788C36.4932%209.95017%2036.3908%209.31512%2036.1875%208.77366C35.9843%208.2322%2035.7155%207.77931%2035.383%207.415C35.0487%207.05068%2034.6674%206.77995%2034.2357%206.60114C33.8041%206.42399%2033.3606%206.33375%2032.9071%206.33375C32.4536%206.33375%2032.0085%206.42232%2031.5768%206.60114C31.1451%206.77995%2030.7588%207.05068%2030.4178%207.415C30.0768%207.77931%2029.7997%208.2322%2029.588%208.77366C29.3764%209.3168%2029.2706%209.95017%2029.2706%2010.6788V10.8727C29.2706%2011.6013%2029.3764%2012.2363%2029.588%2012.7778C29.7997%2013.3209%2030.0752%2013.7738%2030.4178%2014.1365C30.7588%2014.5008%2031.1451%2014.7715%2031.5768%2014.9503C32.0068%2015.1291%2032.4502%2015.2177%2032.9071%2015.2177C33.364%2015.2177%2033.8057%2015.1291%2034.2357%2014.9503C34.6657%2014.7732%2035.0487%2014.5008%2035.383%2014.1365C35.7155%2013.7721%2035.9843%2013.3193%2036.1875%2012.7778C36.3908%2012.2363%2036.4932%2011.6013%2036.4932%2010.8727V10.6788Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M41.0529%205.99458C41.3301%205.8659%2041.6795%205.70714%2042.1011%205.52164C42.5243%205.33614%2042.9913%205.16234%2043.5036%205.00023C44.0159%204.83813%2044.5568%204.70109%2045.1262%204.58745C45.6956%204.47381%2046.2482%204.41699%2046.7857%204.41699C47.3232%204.41699%2047.8338%204.48551%2048.3226%204.62255C48.8097%204.75958%2049.238%204.99856%2049.6025%205.33781C49.9687%205.67706%2050.2576%206.13162%2050.4693%206.69647C50.6809%207.263%2050.7867%207.97492%2050.7867%208.83223V16.9876H48.6149V14.8769C48.4839%2015.2161%2048.2689%2015.5286%2047.9682%2015.8111C47.6675%2016.0935%2047.3215%2016.3375%2046.9318%2016.5397C46.5422%2016.7419%2046.1138%2016.8956%2045.6502%2017.0009C45.1866%2017.1062%2044.7197%2017.158%2044.2477%2017.158C43.7757%2017.158%2043.292%2017.0928%2042.8452%2016.9642C42.3984%2016.8355%2042.0003%2016.6333%2041.6492%2016.3575C41.2998%2016.0835%2041.0193%2015.7308%2040.8077%2015.3013C40.5961%2014.8735%2040.4902%2014.3505%2040.4902%2013.7355C40.4902%2012.9266%2040.6851%2012.223%2041.0764%2011.6248C41.4661%2011.0265%2042.0154%2010.5201%2042.7225%2010.1073C43.4297%209.69456%2044.2847%209.38372%2045.2841%209.17315C46.2835%208.96258%2047.3937%208.8573%2048.6132%208.8573V8.83223C48.6132%208.36263%2048.5561%207.96991%2048.4419%207.65573C48.3277%207.33987%2048.1647%207.08586%2047.9548%206.892C47.7431%206.69814%2047.5029%206.56111%2047.2359%206.47922C46.9671%206.39901%2046.6715%206.35722%2046.3456%206.35722C45.9072%206.35722%2045.4504%206.41739%2044.98%206.53938C44.508%206.66138%2044.0646%206.80176%2043.6497%206.96386C43.2348%207.12596%2042.8653%207.28306%2042.5395%207.4368C42.2136%207.59055%2041.9784%207.69918%2041.8323%207.76435L41.0512%205.99291L41.0529%205.99458ZM48.6149%2010.7507C48.0287%2010.7507%2047.3904%2010.7875%2046.7%2010.8594C46.008%2010.9329%2045.363%2011.0733%2044.76%2011.2838C44.1587%2011.4944%2043.6581%2011.7936%2043.26%2012.1813C42.862%2012.569%2042.6621%2013.0787%2042.6621%2013.7104C42.6621%2014.2769%2042.8821%2014.7014%2043.3205%2014.9855C43.7589%2015.2679%2044.2796%2015.41%2044.8826%2015.41C45.3059%2015.41%2045.7359%2015.3381%2046.176%2015.191C46.6144%2015.0457%2047.0175%2014.8234%2047.3837%2014.5243C47.7498%2014.2251%2048.0455%2013.8524%2048.2739%2013.4079C48.5007%2012.9634%2048.6149%2012.442%2048.6149%2011.842V10.7507Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M55.1523%2010.7991C55.1523%2011.5595%2055.2665%2012.228%2055.4933%2012.8012C55.72%2013.3761%2056.0207%2013.8523%2056.3953%2014.2334C56.7698%2014.6144%2057.1998%2014.9002%2057.6886%2015.0957C58.1757%2015.2895%2058.6796%2015.3865%2059.2004%2015.3865C59.8185%2015.3865%2060.44%2015.2528%2061.0665%2014.9854C61.693%2014.718%2062.2574%2014.3019%2062.7613%2013.7354L63.9085%2014.9971C63.3391%2015.7257%2062.6286%2016.2722%2061.7736%2016.6348C60.9204%2016.9992%2060.0301%2017.1813%2059.1029%2017.1813C58.3387%2017.1813%2057.5912%2017.051%2056.8589%2016.7936C56.1265%2016.5346%2055.4714%2016.1469%2054.8953%2015.6288C54.3175%2015.1107%2053.8539%2014.4473%2053.5045%2013.6384C53.1552%2012.8296%2052.9805%2011.8837%2052.9805%2010.7991C52.9805%209.71451%2053.1552%208.74857%2053.5045%207.94808C53.8539%207.14759%2054.3175%206.48413%2054.8953%205.95771C55.4731%205.43129%2056.1265%205.04024%2056.8589%204.78121C57.5912%204.52218%2058.3387%204.39349%2059.1029%204.39349C60.0301%204.39349%2060.9204%204.57565%2061.7736%204.93997C62.6269%205.30428%2063.3391%205.85076%2063.9085%206.57772L62.7613%207.83946C62.2574%207.27293%2061.6913%206.8568%2061.0665%206.58942C60.44%206.32203%2059.8185%206.18834%2059.2004%206.18834C58.6796%206.18834%2058.1757%206.28526%2057.6886%206.47912C57.2015%206.67298%2056.7698%206.96376%2056.3953%207.35314C56.0207%207.74086%2055.72%208.22383%2055.4933%208.79704C55.2648%209.37192%2055.1523%2010.0387%2055.1523%2010.7991Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M71.9846%2015.2662L72.1559%2016.8672C71.6352%2016.949%2071.1632%2017.0126%2070.7416%2017.061C70.3184%2017.1095%2069.9438%2017.1345%2069.6196%2017.1345C69.067%2017.1345%2068.6152%2017.066%2068.2658%2016.929C67.9164%2016.792%2067.6443%2016.5814%2067.4495%2016.2973C67.2546%2016.0149%2067.1202%2015.6505%2067.0463%2015.2043C66.9724%2014.7598%2066.9288%2014.2217%2066.912%2013.59V6.35715H64.9854V4.5857H66.912V2.6438H69.2047V4.5857H72.1324V6.35715H69.2047V13.59C69.2047%2013.9459%2069.2165%2014.2334%2069.2417%2014.4523C69.2669%2014.6712%2069.3677%2014.84%2069.5474%2014.962C69.7254%2015.084%2070.0059%2015.1642%2070.3889%2015.2043C70.7702%2015.2444%2071.3043%2015.2645%2071.9863%2015.2645L71.9846%2015.2662Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M100.591%204.39163C101.435%204.35988%20102.193%204.53703%20102.86%204.92641C103.135%205.08851%20103.409%205.30242%20103.678%205.56981C103.947%205.8372%20104.185%206.17645%20104.397%206.58923C104.608%207.00201%20104.778%207.495%20104.909%208.06989C105.038%208.64477%20105.104%209.31993%20105.104%2010.097V16.9889H102.909V10.6786C102.909%209.94996%20102.823%209.31491%20102.652%208.77345C102.48%208.23199%20102.253%207.7791%20101.968%207.41479C101.682%207.05047%20101.358%206.77974%20100.992%206.60093C100.626%206.42378%20100.256%206.33354%2099.8818%206.33354C99.5072%206.33354%2099.1142%206.42211%2098.748%206.60093C98.3818%206.77974%2098.0526%207.05047%2097.7603%207.41479C97.4681%207.7791%2097.2312%208.23199%2097.0532%208.77345C96.8734%209.31658%2096.7844%209.94996%2096.7844%2010.6786V16.9889H94.5891V10.6786C94.5891%209.94996%2094.5034%209.31491%2094.3338%208.77345C94.1624%208.23199%2093.9357%207.7791%2093.6501%207.41479C93.3663%207.05047%2093.0404%206.77974%2092.6742%206.60093C92.308%206.42378%2091.9385%206.33354%2091.564%206.33354C91.1894%206.33354%2090.7963%206.42211%2090.4302%206.60093C90.064%206.77974%2089.7348%207.05047%2089.4425%207.41479C89.1502%207.7791%2088.9134%208.23199%2088.7354%208.77345C88.5556%209.31658%2088.4666%209.94996%2088.4666%2010.6786V16.9889H86.1738V4.58716H88.4666V6.74799C88.8076%206.133%2089.199%205.66841%2089.6374%205.35256C90.0758%205.03671%2090.4906%204.80609%2090.882%204.66069C91.3372%204.49859%2091.8008%204.41002%2092.2728%204.3933C92.859%204.36155%2093.42%204.45013%2093.9558%204.66069C94.4278%204.83951%2094.8948%205.13865%2095.3584%205.55811C95.822%205.97925%2096.1831%206.62599%2096.4434%207.50002C96.7525%206.69117%2097.1422%206.07618%2097.6142%205.65504C98.0862%205.23391%2098.5414%204.92641%2098.9798%204.73255C99.5005%204.52199%20100.036%204.40834%20100.591%204.3933V4.39163Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M108.933%203.34883C108.559%203.34883%20108.241%203.22015%20107.982%202.96112C107.722%202.70209%20107.593%202.38624%20107.593%202.01524C107.593%201.64424%20107.722%201.32838%20107.982%201.06935C108.243%200.810321%20108.56%200.681641%20108.933%200.681641C109.306%200.681641%20109.629%200.811992%20109.897%201.06935C110.166%201.32838%20110.3%201.64424%20110.3%202.01524C110.3%202.38624%20110.166%202.70376%20109.897%202.96112C109.629%203.22015%20109.308%203.34883%20108.933%203.34883ZM107.786%2016.989V4.58717H110.104V16.989H107.786Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M114.569%2010.7989C114.569%2011.5593%20114.684%2012.2278%20114.91%2012.801C115.137%2013.3759%20115.438%2013.8522%20115.812%2014.2332C116.187%2014.6142%20116.617%2014.9%20117.106%2015.0955C117.593%2015.2894%20118.097%2015.3863%20118.617%2015.3863C119.235%2015.3863%20119.857%2015.2526%20120.483%2014.9852C121.11%2014.7178%20121.674%2014.3017%20122.178%2013.7352L123.326%2014.9969C122.756%2015.7255%20122.046%2016.272%20121.191%2016.6347C120.337%2016.999%20119.447%2017.1811%20118.52%2017.1811C117.756%2017.1811%20117.008%2017.0508%20116.276%2016.7934C115.544%2016.5344%20114.888%2016.1467%20114.312%2015.6286C113.734%2015.1106%20113.271%2014.4471%20112.922%2013.6382C112.572%2012.8294%20112.397%2011.8835%20112.397%2010.7989C112.397%209.71433%20112.572%208.74839%20112.922%207.9479C113.271%207.14741%20113.734%206.48395%20114.312%205.95753C114.89%205.43111%20115.544%205.04006%20116.276%204.78102C117.008%204.52199%20117.756%204.39331%20118.52%204.39331C119.447%204.39331%20120.337%204.57547%20121.191%204.93979C122.044%205.3041%20122.756%205.85058%20123.326%206.57754L122.178%207.83927C121.674%207.27274%20121.108%206.85662%20120.483%206.58923C119.857%206.32185%20119.235%206.18815%20118.617%206.18815C118.097%206.18815%20117.593%206.28508%20117.106%206.47894C116.619%206.67279%20116.187%206.96358%20115.812%207.35296C115.438%207.74067%20115.137%208.22364%20114.91%208.79685C114.682%209.37174%20114.569%2010.0385%20114.569%2010.7989Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M127.764%207.62027C127.764%207.94447%20127.914%208.21855%20128.216%208.44583C128.517%208.67311%20128.895%208.89036%20129.35%209.10093C129.805%209.31149%20130.3%209.53376%20130.838%209.76773C131.374%2010.0017%20131.871%2010.2858%20132.326%2010.6167C132.781%2010.9492%20133.159%2011.3537%20133.46%2011.83C133.761%2012.3079%20133.912%2012.8861%20133.912%2013.5646C133.912%2014.1796%20133.789%2014.7177%20133.546%2015.179C133.302%2015.6402%20132.98%2016.0213%20132.581%2016.3204C132.183%2016.6195%20131.72%2016.8468%20131.191%2017.0006C130.662%2017.1543%20130.114%2017.2312%20129.545%2017.2312C128.586%2017.2312%20127.653%2017.0206%20126.751%2016.5995C125.849%2016.1783%20125.146%2015.54%20124.642%2014.6826L125.958%2013.202C126.414%2013.9306%20126.943%2014.4604%20127.544%2014.7913C128.145%2015.1238%20128.732%2015.2893%20129.301%2015.2893C129.87%2015.2893%20130.358%2015.1355%20130.764%2014.828C131.171%2014.5205%20131.374%2014.0994%20131.374%2013.5663C131.374%2013.0967%20131.223%2012.7257%20130.922%2012.45C130.621%2012.1742%20130.252%2011.9369%20129.812%2011.7347C129.373%2011.5325%20128.888%2011.3386%20128.36%2011.1515C127.831%2010.966%20127.348%2010.7303%20126.909%2010.4479C126.471%2010.1655%20126.1%209.80115%20125.799%209.35495C125.498%208.91041%20125.347%208.32383%20125.347%207.5952C125.347%207.06042%20125.456%206.5925%20125.676%206.18807C125.896%205.78365%20126.189%205.44774%20126.555%205.18035C126.921%204.91297%20127.339%204.71075%20127.811%204.57372C128.283%204.43668%20128.77%204.36816%20129.274%204.36816C130.007%204.36816%20130.717%204.50186%20131.409%204.76924C132.099%205.03663%20132.665%205.4444%20133.104%205.99422L131.811%207.32948C131.404%206.8766%20130.989%206.5457%20130.566%206.33514C130.143%206.12457%20129.744%206.01928%20129.37%206.01928C128.898%206.01928%20128.512%206.16133%20128.211%206.44376C127.91%206.72786%20127.759%207.11891%20127.759%207.62027H127.764Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M82.2257%2016.5045C82.7489%2016.5045%2083.173%2016.0825%2083.173%2015.5619C83.173%2015.0414%2082.7489%2014.6194%2082.2257%2014.6194C81.7025%2014.6194%2081.2783%2015.0414%2081.2783%2015.5619C81.2783%2016.0825%2081.7025%2016.5045%2082.2257%2016.5045Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3Cpath%20d%3D%22M83.3365%207.03215C82.799%206.22831%2082.4748%205.97596%2082.4379%205.94421C82.4076%205.97763%2081.86%206.56923%2081.3964%207.65716C81.64%207.98304%2081.7509%208.27215%2081.9071%208.71502C82.1019%209.2665%2082.201%209.91325%2082.201%2010.6402C82.201%2011.414%2082.0986%2012.0975%2081.8953%2012.6724C81.6904%2013.2489%2081.4216%2013.7336%2081.0958%2014.1146C80.7682%2014.4973%2080.3886%2014.7914%2079.9704%2014.9869C79.1322%2015.3797%2078.2067%2015.3797%2077.3686%2014.9869C76.9503%2014.7914%2076.5673%2014.4973%2076.2331%2014.1146C75.8971%2013.7319%2075.6284%2013.2472%2075.4336%2012.6707C75.2387%2012.0975%2075.1396%2011.4223%2075.1396%2010.6636C75.1396%209.90489%2075.2421%209.28823%2075.447%208.73841C75.6502%208.18692%2075.919%207.72234%2076.2465%207.35635C76.5741%206.98869%2076.957%206.70794%2077.3837%206.52077C77.8086%206.33359%2078.2554%206.24001%2078.7022%206.24001C79.149%206.24001%2079.5757%206.32858%2079.9922%206.5074C80.2492%206.61769%2080.3668%206.70125%2080.5919%206.88341C80.9396%206.36702%2081.2016%205.79715%2081.3696%205.18048C81.3528%205.17046%2081.336%205.16043%2081.3175%205.1504C80.5146%204.71088%2079.71%204.53207%2078.6888%204.48193H78.6703H78.6518C77.6306%204.53207%2076.7051%204.7794%2075.9022%205.21725C75.5528%205.40776%2075.2118%205.65008%2074.8877%205.94087C74.5652%206.23165%2074.2679%206.59764%2074.0075%207.03047C73.7455%207.46331%2073.5338%207.98304%2073.3743%208.57464C73.2164%209.16623%2073.1357%209.85977%2073.1357%2010.6369C73.1357%2011.414%2073.2164%2012.1359%2073.3743%2012.7342C73.5322%2013.3341%2073.7455%2013.8622%2074.0075%2014.3034C74.2695%2014.7446%2074.5652%2015.124%2074.8893%2015.4298C75.2135%2015.7373%2075.5562%2015.998%2075.9089%2016.2052C76.7051%2016.6548%2077.6256%2016.9171%2078.6451%2016.984H78.6703H78.6955C79.6748%2016.9205%2080.5633%2016.6731%2081.3444%2016.2503C81.0303%2015.8091%2081.0706%2015.1942%2081.467%2014.7998C81.897%2014.3719%2082.584%2014.3602%2083.0291%2014.7597C83.1332%2014.6159%2083.2357%2014.4655%2083.3314%2014.3034C83.5918%2013.8639%2083.8051%2013.3358%2083.9647%2012.7342C84.1226%2012.1326%2084.2032%2011.4273%2084.2032%2010.6369C84.2032%209.8464%2084.1226%209.16958%2083.963%208.57464C83.8034%207.98137%2083.5901%207.46164%2083.3298%207.03047L83.3365%207.03215Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M77.0141%209.74781C75.4268%2011.7031%2077.7582%2014.2817%2079.7788%2013.2322C81.5173%2012.3298%2080.7883%2010.9343%2080.8152%209.58237C80.8387%208.37076%2081.4955%206.88175%2082.2547%205.94923C83.0626%204.95488%2085.1303%204.66243%2084.7238%202.9712C84.4165%201.6961%2082.6864%201.39529%2081.9104%202.3913C81.3594%203.09654%2081.7542%203.96722%2081.603%204.77607C81.3443%206.17651%2080.6153%207.36639%2079.5135%208.25545C78.7777%208.84872%2077.5365%209.10608%2077.0141%209.74781Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAUCAMAAADImI+JAAAANlBMVEX////w8vfyxcx8jbJCWpAOLHFVa5sBIWnIEC7WTGLnv8qAkLTheYpecqHx0digrMfz3+T21dqBS5WQAAAApUlEQVQoz8WTyxpFMAyEpyqOuhTv/7IntImmurAzC59kfsIIhA5wnn6iASMLgzbIT2Fk6joUaAUKBsiJm+kJ0iyuR1mQBam8Cex1dINkZ6EesSZwrR8JfdYWl7AcbCRw5ypytYmPpy6w3X6jL8HXL6PxOODgTPYEcnXmFe94cuBsdJzwpIFrRwK3WPkJLQqL2aUoUVisXjOvLizWWNyMVljrV0gz/wdhEi0lRIbcAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAbCAMAAAA5zj1cAAAApVBMVEX6vQCtFRnBPxP3tgCkSRTxsQC9miCtkjL3ugDcdwrVkwndpwauUEi3k3ecLQyvGx01YomtXy3Zhha+gw+4LiCzn4jKeBKyYgjmoAOkXUK/RhC1kJmmKh+0oKCbYwN5OAWWHxSVi0HypQNcdGsDAgC9g1j6vgSWhnLfsSXCn169cE24eBuaNwzQaiOYagW8bxWIOhqoKhPLdq4yUHR+UgVZLWaBHkAs3esWAAAAk0lEQVQ4y+WTVxLDIAxESQwBAwb33tKc3sv9j5YbWJp8JvurNzsrzYpMkCI/BU6RIt9phqIcJSOpEGBu7c2WA+iXOWmbtTmTACh42PdelSgwp+d2nXdvTjuAc3X5vL6qJo4XQEZ9qd8PXaR7yDE5GFOf6XbNRrmB8cgcKaUraJm5z4NiE4RLH3FyIUaG6Pb85XN9AIg9CvrV7UGSAAAAAElFTkSuQmCC\"","import React from \"react\";\r\nimport {\r\n Button,\r\n Menu,\r\n MenuItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Box,\r\n} from \"@mui/material\";\r\nimport ArrowDropDownIcon from \"@mui/icons-material/ArrowDropDown\";\r\nimport { SupportedLanguage } from \"./utils/translations\";\r\nimport { setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport GBFlag from \"./asset/flags/gb.png\";\r\nimport ESFlag from \"./asset/flags/es.png\";\r\n\r\ninterface LanguageOption {\r\n code: SupportedLanguage;\r\n name: string;\r\n flag: string;\r\n}\r\n\r\nconst languages: LanguageOption[] = [\r\n { code: \"en\", name: \"English\", flag: GBFlag },\r\n { code: \"es\", name: \"Spanish\", flag: ESFlag },\r\n];\r\n\r\ninterface LanguageSelectorProps {\r\n currentLanguage: SupportedLanguage;\r\n onLanguageChange: (language: SupportedLanguage) => void;\r\n}\r\n\r\nconst LanguageSelector: React.FC<LanguageSelectorProps> = ({\r\n currentLanguage,\r\n onLanguageChange,\r\n}) => {\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const currentLang = languages.find((lang) => lang.code === currentLanguage) || languages[0];\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleLanguageSelect = (languageCode: SupportedLanguage) => {\r\n // Update localStorage\r\n setI18nLocaleToStorage(languageCode);\r\n \r\n // Get current path\r\n const currentPath = window.location.pathname;\r\n const search = window.location.search;\r\n const hash = window.location.hash;\r\n \r\n // Find and replace existing locale /:locale/ with new locale\r\n const newPath = currentPath.replace(/\\/(en|es)\\//, `/${languageCode}/`);\r\n \r\n // Construct full URL and reload the page to apply translations\r\n const fullUrl = newPath + search + hash;\r\n window.location.href = fullUrl;\r\n \r\n handleClose();\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n onClick={handleClick}\r\n sx={{\r\n color: \"#1e2f97\",\r\n textTransform: \"none\",\r\n padding: \"4px 8px\",\r\n minWidth: \"auto\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(30, 47, 151, 0.04)\",\r\n },\r\n }}\r\n aria-label=\"Select language\"\r\n aria-controls={open ? \"language-menu\" : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? \"true\" : undefined}\r\n >\r\n <Box\r\n component=\"img\"\r\n src={currentLang.flag}\r\n alt={currentLang.name}\r\n sx={{\r\n width: \"20px\",\r\n height: \"15px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"14px\",\r\n fontWeight: 500,\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n {currentLang.code.toUpperCase()}\r\n </Box>\r\n <ArrowDropDownIcon\r\n sx={{\r\n fontSize: \"20px\",\r\n marginLeft: \"2px\",\r\n display: \"flex\",\r\n alignSelf: \"center\",\r\n }}\r\n />\r\n </Button>\r\n <Menu\r\n id=\"language-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"right\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n slotProps={{\r\n paper: {\r\n sx: {\r\n mt: 1,\r\n minWidth: 150,\r\n },\r\n },\r\n }}\r\n >\r\n {languages.map((language) => (\r\n <MenuItem\r\n key={language.code}\r\n onClick={() => handleLanguageSelect(language.code)}\r\n selected={language.code === currentLanguage}\r\n >\r\n <ListItemIcon>\r\n <Box\r\n component=\"img\"\r\n src={language.flag}\r\n alt={language.name}\r\n sx={{\r\n width: \"24px\",\r\n height: \"18px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n </ListItemIcon>\r\n <ListItemText primary={language.name} />\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </>\r\n );\r\n};\r\n\r\nexport default LanguageSelector;\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps, UserProfile } from \"./types\";\r\nimport { getUserDataFromStorage, getNotificationCountFromStorage, getMessageCountFromStorage, getI18nLocaleFromStorage, setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport { getTranslations, SupportedLanguage } from \"./utils/translations\";\r\nimport ImpactomicsLogo from \"./asset/Impactomics.svg\";\r\nimport LanguageSelector from \"./LanguageSelector\";\r\nimport \"./styles/Header.scss\";\r\n\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({ language: languageProp }) => {\r\n // Get initial language from props, URL, localStorage, or default to 'en'\r\n const getInitialLanguage = (): SupportedLanguage => {\r\n // Priority 1: Props\r\n if (languageProp) {\r\n setI18nLocaleToStorage(languageProp);\r\n return languageProp as SupportedLanguage;\r\n }\r\n \r\n // Priority 2: URL path - pattern is /:locale/base-name/...\r\n const currentPath = window.location.pathname;\r\n const localePattern = /^\\/(en|es)(\\/|$)/;\r\n const localeMatch = currentPath.match(localePattern);\r\n if (localeMatch && localeMatch[1]) {\r\n const urlLocale = localeMatch[1] as SupportedLanguage;\r\n setI18nLocaleToStorage(urlLocale);\r\n return urlLocale;\r\n }\r\n \r\n // Priority 3: localStorage\r\n const storedLocale = getI18nLocaleFromStorage();\r\n if (storedLocale && (storedLocale === 'en' || storedLocale === 'es')) {\r\n return storedLocale as SupportedLanguage;\r\n }\r\n \r\n // Default\r\n return 'en';\r\n };\r\n\r\n const [currentLanguage, setCurrentLanguage] = React.useState<SupportedLanguage>(getInitialLanguage);\r\n const t = getTranslations(currentLanguage);\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n \r\n const [user, setUser] = React.useState<UserProfile>(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n return storedUser;\r\n }\r\n return {\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n };\r\n });\r\n\r\n const [notificationCount, setNotificationCount] = React.useState<number>(() => {\r\n const count = getNotificationCountFromStorage();\r\n return count !== null && count !== undefined ? count : 0;\r\n });\r\n \r\n const [messageCount, setMessageCount] = React.useState<number | undefined>(() => {\r\n return getMessageCountFromStorage() ?? undefined;\r\n });\r\n\r\n React.useEffect(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n setUser(storedUser);\r\n } else {\r\n setUser({\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n });\r\n }\r\n \r\n const notifCount = getNotificationCountFromStorage();\r\n setNotificationCount(notifCount !== null && notifCount !== undefined ? notifCount : 0);\r\n \r\n const msgCount = getMessageCountFromStorage();\r\n setMessageCount(msgCount ?? undefined);\r\n\r\n // Initialize language from props if provided\r\n if (languageProp && languageProp !== currentLanguage) {\r\n setCurrentLanguage(languageProp as SupportedLanguage);\r\n setI18nLocaleToStorage(languageProp);\r\n }\r\n }, [languageProp]);\r\n\r\n const finalRoutes = DEFAULT_ROUTES;\r\n const isOnlineStatus = true;\r\n const notificationCountValue = notificationCount;\r\n \r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n const path = finalRoutes.settings.startsWith('/') \r\n ? finalRoutes.settings \r\n : `/${finalRoutes.settings}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n const path = finalRoutes.profile.startsWith('/') \r\n ? finalRoutes.profile \r\n : `/${finalRoutes.profile}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n localStorage.clear();\r\n const path = finalRoutes.logout.startsWith('/') \r\n ? finalRoutes.logout \r\n : `/${finalRoutes.logout}`;\r\n window.location.href = path;\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n {t.role}: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.accountSettings}\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.profile}\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.signOut}\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.messages}</p>\r\n </MenuItem>\r\n )}\r\n {notificationCountValue > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCountValue} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.notifications}</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>{t.profile}</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className=\"app-header\">\r\n <AppBar\r\n sx={{\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n padding: 0,\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={() => {\r\n toggleDrawer();\r\n }}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize=\"large\" />\r\n ) : (\r\n <MenuIcon fontSize=\"large\" />\r\n )}\r\n </IconButton>\r\n <Box\r\n component=\"div\"\r\n sx={{ \r\n display: { xs: \"none\", sm: \"flex\" },\r\n alignItems: 'center',\r\n marginLeft: '-5px'\r\n }}\r\n data-testid=\"impactomics-logo-wrapper\"\r\n >\r\n <img \r\n src={ImpactomicsLogo} \r\n alt=\"Impactomics\" \r\n style={{ height: '23px', width: 'auto', display: 'block' }}\r\n />\r\n </Box>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" }, alignItems: \"center\", gap: \"4px\" }}>\r\n <LanguageSelector\r\n currentLanguage={currentLanguage}\r\n onLanguageChange={(lang) => {\r\n setCurrentLanguage(lang);\r\n // The LanguageSelector component handles URL and localStorage updates\r\n }}\r\n />\r\n <IconButton\r\n size=\"large\"\r\n aria-label={notificationCountValue > 0 ? `show ${notificationCountValue} new notifications` : \"show notifications\"}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCountValue > 0 ? notificationCountValue : 0} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["_jsx","React","_jsxs","_Fragment"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,6 @@ var material = require('@mui/material');
|
|
|
14
14
|
var colors = require('@mui/material/colors');
|
|
15
15
|
var React = require('react');
|
|
16
16
|
var ArrowDropDownIcon = require('@mui/icons-material/ArrowDropDown');
|
|
17
|
-
var reactRouterDom = require('react-router-dom');
|
|
18
17
|
|
|
19
18
|
function _interopNamespaceDefault(e) {
|
|
20
19
|
var n = Object.create(null);
|
|
@@ -240,7 +239,6 @@ const languages = [
|
|
|
240
239
|
{ code: "es", name: "Spanish", flag: ESFlag },
|
|
241
240
|
];
|
|
242
241
|
const LanguageSelector = ({ currentLanguage, onLanguageChange, }) => {
|
|
243
|
-
const navigate = reactRouterDom.useNavigate();
|
|
244
242
|
const [anchorEl, setAnchorEl] = React.useState(null);
|
|
245
243
|
const open = Boolean(anchorEl);
|
|
246
244
|
const currentLang = languages.find((lang) => lang.code === currentLanguage) || languages[0];
|
|
@@ -259,11 +257,9 @@ const LanguageSelector = ({ currentLanguage, onLanguageChange, }) => {
|
|
|
259
257
|
const hash = window.location.hash;
|
|
260
258
|
// Find and replace existing locale /:locale/ with new locale
|
|
261
259
|
const newPath = currentPath.replace(/\/(en|es)\//, `/${languageCode}/`);
|
|
262
|
-
//
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
// Navigate using React Router to trigger proper re-render and translation
|
|
266
|
-
navigate(newPath + search + hash, { replace: true });
|
|
260
|
+
// Construct full URL and reload the page to apply translations
|
|
261
|
+
const fullUrl = newPath + search + hash;
|
|
262
|
+
window.location.href = fullUrl;
|
|
267
263
|
handleClose();
|
|
268
264
|
};
|
|
269
265
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(material.Button, { onClick: handleClick, sx: {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/DrawerContext.tsx","../src/utils/localStorage.ts","../src/utils/translations.ts","../src/asset/Impactomics.svg","../src/asset/flags/gb.png","../src/asset/flags/es.png","../src/LanguageSelector.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","export const getUserDataFromStorage = () => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n let userData = null;\r\n \r\n if (parsedOuter.userDetails) {\r\n const parsedUserDetails = parseNested(parsedOuter.userDetails);\r\n userData = parsedUserDetails.user || parsedUserDetails.data || parsedUserDetails;\r\n }\r\n \r\n if (!userData && parsedOuter.user) {\r\n const parsedUser = parseNested(parsedOuter.user);\r\n userData = parsedUser.user || parsedUser.data || parsedUser.currentUser || parsedUser;\r\n }\r\n \r\n if (!userData && parsedOuter.authDetails) {\r\n const parsedAuthDetails = parseNested(parsedOuter.authDetails);\r\n if (parsedAuthDetails.auth) {\r\n userData = parsedAuthDetails.auth.user || parsedAuthDetails.auth.userData;\r\n }\r\n if (!userData) {\r\n userData = parsedAuthDetails.user || parsedAuthDetails.userData || parsedAuthDetails.currentUser;\r\n }\r\n }\r\n \r\n if (!userData && parsedOuter.profile) {\r\n const parsedProfile = parseNested(parsedOuter.profile);\r\n userData = parsedProfile.user || parsedProfile.data || parsedProfile;\r\n }\r\n \r\n if (userData) {\r\n let name = userData.name || userData.fullName || userData.userName || \"\";\r\n if (!name && (userData.firstName || userData.lastName)) {\r\n name = [userData.firstName, userData.lastName].filter(Boolean).join(' ');\r\n }\r\n \r\n return {\r\n name: name || \"\",\r\n email: userData.email || userData.emailAddress || \"\",\r\n role: userData.role || userData.userRole || userData.designation || userData.title || \"\",\r\n avatar: userData.avatar || userData.profilePicture || userData.imageUrl || userData.profileImage,\r\n initials: userData.initials,\r\n };\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing user data from localStorage:\", err);\r\n return null;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport const getNotificationCountFromStorage = (): number => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.notifications) {\r\n const parsedNotifications = parseNested(parsedOuter.notifications);\r\n const count = parsedNotifications.count || parsedNotifications.unreadCount || parsedNotifications.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.notificationCount !== undefined) {\r\n return parsedApp.notificationCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing notification count from localStorage:\", err);\r\n }\r\n }\r\n return 0;\r\n};\r\n\r\nexport const getMessageCountFromStorage = (): number | undefined => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.messages) {\r\n const parsedMessages = parseNested(parsedOuter.messages);\r\n const count = parsedMessages.count || parsedMessages.unreadCount || parsedMessages.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.messageCount !== undefined) {\r\n return parsedApp.messageCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing message count from localStorage:\", err);\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const getI18nLocaleFromStorage = (): string | null => {\r\n try {\r\n return localStorage.getItem(\"lnc-i18n\");\r\n } catch (err) {\r\n console.error(\"Error getting i18n locale from localStorage:\", err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const setI18nLocaleToStorage = (locale: string): void => {\r\n try {\r\n localStorage.setItem(\"lnc-i18n\", locale);\r\n } catch (err) {\r\n console.error(\"Error setting i18n locale to localStorage:\", err);\r\n }\r\n};\r\n\r\n","export type SupportedLanguage = 'en' | 'es';\r\n\r\nexport interface Translations {\r\n accountSettings: string;\r\n profile: string;\r\n signOut: string;\r\n messages: string;\r\n notifications: string;\r\n online: string;\r\n offline: string;\r\n role: string;\r\n}\r\n\r\nexport const translations: Record<SupportedLanguage, Translations> = {\r\n en: {\r\n accountSettings: 'Account Settings',\r\n profile: 'Profile',\r\n signOut: 'Sign out',\r\n messages: 'Messages',\r\n notifications: 'Notifications',\r\n online: 'Online',\r\n offline: 'Offline',\r\n role: 'Role',\r\n },\r\n es: {\r\n accountSettings: 'Configuración de cuenta',\r\n profile: 'Perfil',\r\n signOut: 'Cerrar sesión',\r\n messages: 'Mensajes',\r\n notifications: 'Notificaciones',\r\n online: 'En línea',\r\n offline: 'Desconectado',\r\n role: 'Rol',\r\n },\r\n};\r\n\r\nexport const getTranslations = (language: SupportedLanguage = 'en'): Translations => {\r\n return translations[language] || translations.en;\r\n};\r\n\r\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%22134%22%20height%3D%2223%22%20viewBox%3D%220%200%20134%2023%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%2016.9641V0H2.29277V16.9641H0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M19.7586%204.39182C20.6034%204.36006%2021.361%204.53721%2022.0278%204.92659C22.3033%205.0887%2022.5771%205.30261%2022.8458%205.57C23.1146%205.83738%2023.3531%206.17663%2023.5647%206.58941C23.7764%207.00219%2023.946%207.49519%2024.077%208.07007C24.2064%208.64495%2024.2719%209.32011%2024.2719%2010.0972V16.9891H22.0765V10.6788C22.0765%209.95014%2021.9909%209.3151%2021.8195%208.77364C21.6482%208.23217%2021.4214%207.77929%2021.1359%207.41497C20.8504%207.05065%2020.5262%206.77992%2020.16%206.60111C19.7938%206.42396%2019.4243%206.33372%2019.0497%206.33372C18.6752%206.33372%2018.2821%206.42229%2017.9159%206.60111C17.5498%206.77992%2017.2205%207.05065%2016.9283%207.41497C16.636%207.77929%2016.3992%208.23217%2016.2211%208.77364C16.0414%209.31677%2015.9524%209.95014%2015.9524%2010.6788V16.9891H13.757V10.6788C13.757%209.95014%2013.6714%209.3151%2013.5017%208.77364C13.3304%208.23217%2013.1036%207.77929%2012.8181%207.41497C12.5342%207.05065%2012.2084%206.77992%2011.8422%206.60111C11.476%206.42396%2011.1065%206.33372%2010.7319%206.33372C10.3573%206.33372%209.9643%206.42229%209.59813%206.60111C9.23196%206.77992%208.90274%207.05065%208.61047%207.41497C8.3182%207.77929%208.08137%208.23217%207.90332%208.77364C7.72359%209.31677%207.63457%209.95014%207.63457%2010.6788V16.9891H5.3418V4.58734H7.63457V6.74817C7.97555%206.13318%208.36692%205.66859%208.80531%205.35274C9.24371%205.03689%209.6586%204.80627%2010.05%204.66088C10.5052%204.49877%2010.9688%204.4102%2011.4407%204.39349C12.027%204.36174%2012.588%204.45031%2013.1238%204.66088C13.5958%204.83969%2014.0627%205.13883%2014.5263%205.5583C14.9899%205.97943%2015.3511%206.62618%2015.6114%207.5002C15.9205%206.69135%2016.3102%206.07636%2016.7821%205.65522C17.2541%205.23409%2017.7093%204.92659%2018.1477%204.73274C18.6684%204.52217%2019.2043%204.40853%2019.7586%204.39349V4.39182Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M32.9558%204.39185C34.0291%204.44031%2034.9882%204.69934%2035.8348%205.16894C36.1926%205.3628%2036.5453%205.61013%2036.8964%205.90927C37.2457%206.20841%2037.5548%206.58108%2037.8236%207.02561C38.0923%207.47015%2038.3073%207.99323%2038.4702%208.59151C38.6332%209.18979%2038.7138%209.88666%2038.7138%2010.6788V10.8727C38.7138%2011.6665%2038.6315%2012.365%2038.4702%2012.9717C38.3073%2013.5783%2038.0923%2014.1047%2037.8236%2014.5492C37.5548%2014.9938%2037.2457%2015.3664%2036.8964%2015.6656C36.547%2015.9647%2036.1926%2016.2121%2035.8348%2016.4059C34.9882%2016.8588%2034.0291%2017.1095%2032.9558%2017.1579C32.5174%2017.1412%2032.0773%2017.061%2031.6389%2016.9156C31.2644%2016.7869%2030.8663%2016.5797%2030.443%2016.2973C30.0197%2016.0149%2029.63%2015.6138%2029.2723%2015.0957V22.8132H26.9795V4.5857H29.2723V6.47914C29.63%205.94604%2030.0197%205.5366%2030.443%205.25417C30.8663%204.97174%2031.2644%204.76452%2031.6389%204.63584C32.0773%204.49044%2032.5174%204.41023%2032.9558%204.39352V4.39185ZM36.4932%2010.6788C36.4932%209.95017%2036.3908%209.31512%2036.1875%208.77366C35.9843%208.2322%2035.7155%207.77931%2035.383%207.415C35.0487%207.05068%2034.6674%206.77995%2034.2357%206.60114C33.8041%206.42399%2033.3606%206.33375%2032.9071%206.33375C32.4536%206.33375%2032.0085%206.42232%2031.5768%206.60114C31.1451%206.77995%2030.7588%207.05068%2030.4178%207.415C30.0768%207.77931%2029.7997%208.2322%2029.588%208.77366C29.3764%209.3168%2029.2706%209.95017%2029.2706%2010.6788V10.8727C29.2706%2011.6013%2029.3764%2012.2363%2029.588%2012.7778C29.7997%2013.3209%2030.0752%2013.7738%2030.4178%2014.1365C30.7588%2014.5008%2031.1451%2014.7715%2031.5768%2014.9503C32.0068%2015.1291%2032.4502%2015.2177%2032.9071%2015.2177C33.364%2015.2177%2033.8057%2015.1291%2034.2357%2014.9503C34.6657%2014.7732%2035.0487%2014.5008%2035.383%2014.1365C35.7155%2013.7721%2035.9843%2013.3193%2036.1875%2012.7778C36.3908%2012.2363%2036.4932%2011.6013%2036.4932%2010.8727V10.6788Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M41.0529%205.99458C41.3301%205.8659%2041.6795%205.70714%2042.1011%205.52164C42.5243%205.33614%2042.9913%205.16234%2043.5036%205.00023C44.0159%204.83813%2044.5568%204.70109%2045.1262%204.58745C45.6956%204.47381%2046.2482%204.41699%2046.7857%204.41699C47.3232%204.41699%2047.8338%204.48551%2048.3226%204.62255C48.8097%204.75958%2049.238%204.99856%2049.6025%205.33781C49.9687%205.67706%2050.2576%206.13162%2050.4693%206.69647C50.6809%207.263%2050.7867%207.97492%2050.7867%208.83223V16.9876H48.6149V14.8769C48.4839%2015.2161%2048.2689%2015.5286%2047.9682%2015.8111C47.6675%2016.0935%2047.3215%2016.3375%2046.9318%2016.5397C46.5422%2016.7419%2046.1138%2016.8956%2045.6502%2017.0009C45.1866%2017.1062%2044.7197%2017.158%2044.2477%2017.158C43.7757%2017.158%2043.292%2017.0928%2042.8452%2016.9642C42.3984%2016.8355%2042.0003%2016.6333%2041.6492%2016.3575C41.2998%2016.0835%2041.0193%2015.7308%2040.8077%2015.3013C40.5961%2014.8735%2040.4902%2014.3505%2040.4902%2013.7355C40.4902%2012.9266%2040.6851%2012.223%2041.0764%2011.6248C41.4661%2011.0265%2042.0154%2010.5201%2042.7225%2010.1073C43.4297%209.69456%2044.2847%209.38372%2045.2841%209.17315C46.2835%208.96258%2047.3937%208.8573%2048.6132%208.8573V8.83223C48.6132%208.36263%2048.5561%207.96991%2048.4419%207.65573C48.3277%207.33987%2048.1647%207.08586%2047.9548%206.892C47.7431%206.69814%2047.5029%206.56111%2047.2359%206.47922C46.9671%206.39901%2046.6715%206.35722%2046.3456%206.35722C45.9072%206.35722%2045.4504%206.41739%2044.98%206.53938C44.508%206.66138%2044.0646%206.80176%2043.6497%206.96386C43.2348%207.12596%2042.8653%207.28306%2042.5395%207.4368C42.2136%207.59055%2041.9784%207.69918%2041.8323%207.76435L41.0512%205.99291L41.0529%205.99458ZM48.6149%2010.7507C48.0287%2010.7507%2047.3904%2010.7875%2046.7%2010.8594C46.008%2010.9329%2045.363%2011.0733%2044.76%2011.2838C44.1587%2011.4944%2043.6581%2011.7936%2043.26%2012.1813C42.862%2012.569%2042.6621%2013.0787%2042.6621%2013.7104C42.6621%2014.2769%2042.8821%2014.7014%2043.3205%2014.9855C43.7589%2015.2679%2044.2796%2015.41%2044.8826%2015.41C45.3059%2015.41%2045.7359%2015.3381%2046.176%2015.191C46.6144%2015.0457%2047.0175%2014.8234%2047.3837%2014.5243C47.7498%2014.2251%2048.0455%2013.8524%2048.2739%2013.4079C48.5007%2012.9634%2048.6149%2012.442%2048.6149%2011.842V10.7507Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M55.1523%2010.7991C55.1523%2011.5595%2055.2665%2012.228%2055.4933%2012.8012C55.72%2013.3761%2056.0207%2013.8523%2056.3953%2014.2334C56.7698%2014.6144%2057.1998%2014.9002%2057.6886%2015.0957C58.1757%2015.2895%2058.6796%2015.3865%2059.2004%2015.3865C59.8185%2015.3865%2060.44%2015.2528%2061.0665%2014.9854C61.693%2014.718%2062.2574%2014.3019%2062.7613%2013.7354L63.9085%2014.9971C63.3391%2015.7257%2062.6286%2016.2722%2061.7736%2016.6348C60.9204%2016.9992%2060.0301%2017.1813%2059.1029%2017.1813C58.3387%2017.1813%2057.5912%2017.051%2056.8589%2016.7936C56.1265%2016.5346%2055.4714%2016.1469%2054.8953%2015.6288C54.3175%2015.1107%2053.8539%2014.4473%2053.5045%2013.6384C53.1552%2012.8296%2052.9805%2011.8837%2052.9805%2010.7991C52.9805%209.71451%2053.1552%208.74857%2053.5045%207.94808C53.8539%207.14759%2054.3175%206.48413%2054.8953%205.95771C55.4731%205.43129%2056.1265%205.04024%2056.8589%204.78121C57.5912%204.52218%2058.3387%204.39349%2059.1029%204.39349C60.0301%204.39349%2060.9204%204.57565%2061.7736%204.93997C62.6269%205.30428%2063.3391%205.85076%2063.9085%206.57772L62.7613%207.83946C62.2574%207.27293%2061.6913%206.8568%2061.0665%206.58942C60.44%206.32203%2059.8185%206.18834%2059.2004%206.18834C58.6796%206.18834%2058.1757%206.28526%2057.6886%206.47912C57.2015%206.67298%2056.7698%206.96376%2056.3953%207.35314C56.0207%207.74086%2055.72%208.22383%2055.4933%208.79704C55.2648%209.37192%2055.1523%2010.0387%2055.1523%2010.7991Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M71.9846%2015.2662L72.1559%2016.8672C71.6352%2016.949%2071.1632%2017.0126%2070.7416%2017.061C70.3184%2017.1095%2069.9438%2017.1345%2069.6196%2017.1345C69.067%2017.1345%2068.6152%2017.066%2068.2658%2016.929C67.9164%2016.792%2067.6443%2016.5814%2067.4495%2016.2973C67.2546%2016.0149%2067.1202%2015.6505%2067.0463%2015.2043C66.9724%2014.7598%2066.9288%2014.2217%2066.912%2013.59V6.35715H64.9854V4.5857H66.912V2.6438H69.2047V4.5857H72.1324V6.35715H69.2047V13.59C69.2047%2013.9459%2069.2165%2014.2334%2069.2417%2014.4523C69.2669%2014.6712%2069.3677%2014.84%2069.5474%2014.962C69.7254%2015.084%2070.0059%2015.1642%2070.3889%2015.2043C70.7702%2015.2444%2071.3043%2015.2645%2071.9863%2015.2645L71.9846%2015.2662Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M100.591%204.39163C101.435%204.35988%20102.193%204.53703%20102.86%204.92641C103.135%205.08851%20103.409%205.30242%20103.678%205.56981C103.947%205.8372%20104.185%206.17645%20104.397%206.58923C104.608%207.00201%20104.778%207.495%20104.909%208.06989C105.038%208.64477%20105.104%209.31993%20105.104%2010.097V16.9889H102.909V10.6786C102.909%209.94996%20102.823%209.31491%20102.652%208.77345C102.48%208.23199%20102.253%207.7791%20101.968%207.41479C101.682%207.05047%20101.358%206.77974%20100.992%206.60093C100.626%206.42378%20100.256%206.33354%2099.8818%206.33354C99.5072%206.33354%2099.1142%206.42211%2098.748%206.60093C98.3818%206.77974%2098.0526%207.05047%2097.7603%207.41479C97.4681%207.7791%2097.2312%208.23199%2097.0532%208.77345C96.8734%209.31658%2096.7844%209.94996%2096.7844%2010.6786V16.9889H94.5891V10.6786C94.5891%209.94996%2094.5034%209.31491%2094.3338%208.77345C94.1624%208.23199%2093.9357%207.7791%2093.6501%207.41479C93.3663%207.05047%2093.0404%206.77974%2092.6742%206.60093C92.308%206.42378%2091.9385%206.33354%2091.564%206.33354C91.1894%206.33354%2090.7963%206.42211%2090.4302%206.60093C90.064%206.77974%2089.7348%207.05047%2089.4425%207.41479C89.1502%207.7791%2088.9134%208.23199%2088.7354%208.77345C88.5556%209.31658%2088.4666%209.94996%2088.4666%2010.6786V16.9889H86.1738V4.58716H88.4666V6.74799C88.8076%206.133%2089.199%205.66841%2089.6374%205.35256C90.0758%205.03671%2090.4906%204.80609%2090.882%204.66069C91.3372%204.49859%2091.8008%204.41002%2092.2728%204.3933C92.859%204.36155%2093.42%204.45013%2093.9558%204.66069C94.4278%204.83951%2094.8948%205.13865%2095.3584%205.55811C95.822%205.97925%2096.1831%206.62599%2096.4434%207.50002C96.7525%206.69117%2097.1422%206.07618%2097.6142%205.65504C98.0862%205.23391%2098.5414%204.92641%2098.9798%204.73255C99.5005%204.52199%20100.036%204.40834%20100.591%204.3933V4.39163Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M108.933%203.34883C108.559%203.34883%20108.241%203.22015%20107.982%202.96112C107.722%202.70209%20107.593%202.38624%20107.593%202.01524C107.593%201.64424%20107.722%201.32838%20107.982%201.06935C108.243%200.810321%20108.56%200.681641%20108.933%200.681641C109.306%200.681641%20109.629%200.811992%20109.897%201.06935C110.166%201.32838%20110.3%201.64424%20110.3%202.01524C110.3%202.38624%20110.166%202.70376%20109.897%202.96112C109.629%203.22015%20109.308%203.34883%20108.933%203.34883ZM107.786%2016.989V4.58717H110.104V16.989H107.786Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M114.569%2010.7989C114.569%2011.5593%20114.684%2012.2278%20114.91%2012.801C115.137%2013.3759%20115.438%2013.8522%20115.812%2014.2332C116.187%2014.6142%20116.617%2014.9%20117.106%2015.0955C117.593%2015.2894%20118.097%2015.3863%20118.617%2015.3863C119.235%2015.3863%20119.857%2015.2526%20120.483%2014.9852C121.11%2014.7178%20121.674%2014.3017%20122.178%2013.7352L123.326%2014.9969C122.756%2015.7255%20122.046%2016.272%20121.191%2016.6347C120.337%2016.999%20119.447%2017.1811%20118.52%2017.1811C117.756%2017.1811%20117.008%2017.0508%20116.276%2016.7934C115.544%2016.5344%20114.888%2016.1467%20114.312%2015.6286C113.734%2015.1106%20113.271%2014.4471%20112.922%2013.6382C112.572%2012.8294%20112.397%2011.8835%20112.397%2010.7989C112.397%209.71433%20112.572%208.74839%20112.922%207.9479C113.271%207.14741%20113.734%206.48395%20114.312%205.95753C114.89%205.43111%20115.544%205.04006%20116.276%204.78102C117.008%204.52199%20117.756%204.39331%20118.52%204.39331C119.447%204.39331%20120.337%204.57547%20121.191%204.93979C122.044%205.3041%20122.756%205.85058%20123.326%206.57754L122.178%207.83927C121.674%207.27274%20121.108%206.85662%20120.483%206.58923C119.857%206.32185%20119.235%206.18815%20118.617%206.18815C118.097%206.18815%20117.593%206.28508%20117.106%206.47894C116.619%206.67279%20116.187%206.96358%20115.812%207.35296C115.438%207.74067%20115.137%208.22364%20114.91%208.79685C114.682%209.37174%20114.569%2010.0385%20114.569%2010.7989Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M127.764%207.62027C127.764%207.94447%20127.914%208.21855%20128.216%208.44583C128.517%208.67311%20128.895%208.89036%20129.35%209.10093C129.805%209.31149%20130.3%209.53376%20130.838%209.76773C131.374%2010.0017%20131.871%2010.2858%20132.326%2010.6167C132.781%2010.9492%20133.159%2011.3537%20133.46%2011.83C133.761%2012.3079%20133.912%2012.8861%20133.912%2013.5646C133.912%2014.1796%20133.789%2014.7177%20133.546%2015.179C133.302%2015.6402%20132.98%2016.0213%20132.581%2016.3204C132.183%2016.6195%20131.72%2016.8468%20131.191%2017.0006C130.662%2017.1543%20130.114%2017.2312%20129.545%2017.2312C128.586%2017.2312%20127.653%2017.0206%20126.751%2016.5995C125.849%2016.1783%20125.146%2015.54%20124.642%2014.6826L125.958%2013.202C126.414%2013.9306%20126.943%2014.4604%20127.544%2014.7913C128.145%2015.1238%20128.732%2015.2893%20129.301%2015.2893C129.87%2015.2893%20130.358%2015.1355%20130.764%2014.828C131.171%2014.5205%20131.374%2014.0994%20131.374%2013.5663C131.374%2013.0967%20131.223%2012.7257%20130.922%2012.45C130.621%2012.1742%20130.252%2011.9369%20129.812%2011.7347C129.373%2011.5325%20128.888%2011.3386%20128.36%2011.1515C127.831%2010.966%20127.348%2010.7303%20126.909%2010.4479C126.471%2010.1655%20126.1%209.80115%20125.799%209.35495C125.498%208.91041%20125.347%208.32383%20125.347%207.5952C125.347%207.06042%20125.456%206.5925%20125.676%206.18807C125.896%205.78365%20126.189%205.44774%20126.555%205.18035C126.921%204.91297%20127.339%204.71075%20127.811%204.57372C128.283%204.43668%20128.77%204.36816%20129.274%204.36816C130.007%204.36816%20130.717%204.50186%20131.409%204.76924C132.099%205.03663%20132.665%205.4444%20133.104%205.99422L131.811%207.32948C131.404%206.8766%20130.989%206.5457%20130.566%206.33514C130.143%206.12457%20129.744%206.01928%20129.37%206.01928C128.898%206.01928%20128.512%206.16133%20128.211%206.44376C127.91%206.72786%20127.759%207.11891%20127.759%207.62027H127.764Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M82.2257%2016.5045C82.7489%2016.5045%2083.173%2016.0825%2083.173%2015.5619C83.173%2015.0414%2082.7489%2014.6194%2082.2257%2014.6194C81.7025%2014.6194%2081.2783%2015.0414%2081.2783%2015.5619C81.2783%2016.0825%2081.7025%2016.5045%2082.2257%2016.5045Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3Cpath%20d%3D%22M83.3365%207.03215C82.799%206.22831%2082.4748%205.97596%2082.4379%205.94421C82.4076%205.97763%2081.86%206.56923%2081.3964%207.65716C81.64%207.98304%2081.7509%208.27215%2081.9071%208.71502C82.1019%209.2665%2082.201%209.91325%2082.201%2010.6402C82.201%2011.414%2082.0986%2012.0975%2081.8953%2012.6724C81.6904%2013.2489%2081.4216%2013.7336%2081.0958%2014.1146C80.7682%2014.4973%2080.3886%2014.7914%2079.9704%2014.9869C79.1322%2015.3797%2078.2067%2015.3797%2077.3686%2014.9869C76.9503%2014.7914%2076.5673%2014.4973%2076.2331%2014.1146C75.8971%2013.7319%2075.6284%2013.2472%2075.4336%2012.6707C75.2387%2012.0975%2075.1396%2011.4223%2075.1396%2010.6636C75.1396%209.90489%2075.2421%209.28823%2075.447%208.73841C75.6502%208.18692%2075.919%207.72234%2076.2465%207.35635C76.5741%206.98869%2076.957%206.70794%2077.3837%206.52077C77.8086%206.33359%2078.2554%206.24001%2078.7022%206.24001C79.149%206.24001%2079.5757%206.32858%2079.9922%206.5074C80.2492%206.61769%2080.3668%206.70125%2080.5919%206.88341C80.9396%206.36702%2081.2016%205.79715%2081.3696%205.18048C81.3528%205.17046%2081.336%205.16043%2081.3175%205.1504C80.5146%204.71088%2079.71%204.53207%2078.6888%204.48193H78.6703H78.6518C77.6306%204.53207%2076.7051%204.7794%2075.9022%205.21725C75.5528%205.40776%2075.2118%205.65008%2074.8877%205.94087C74.5652%206.23165%2074.2679%206.59764%2074.0075%207.03047C73.7455%207.46331%2073.5338%207.98304%2073.3743%208.57464C73.2164%209.16623%2073.1357%209.85977%2073.1357%2010.6369C73.1357%2011.414%2073.2164%2012.1359%2073.3743%2012.7342C73.5322%2013.3341%2073.7455%2013.8622%2074.0075%2014.3034C74.2695%2014.7446%2074.5652%2015.124%2074.8893%2015.4298C75.2135%2015.7373%2075.5562%2015.998%2075.9089%2016.2052C76.7051%2016.6548%2077.6256%2016.9171%2078.6451%2016.984H78.6703H78.6955C79.6748%2016.9205%2080.5633%2016.6731%2081.3444%2016.2503C81.0303%2015.8091%2081.0706%2015.1942%2081.467%2014.7998C81.897%2014.3719%2082.584%2014.3602%2083.0291%2014.7597C83.1332%2014.6159%2083.2357%2014.4655%2083.3314%2014.3034C83.5918%2013.8639%2083.8051%2013.3358%2083.9647%2012.7342C84.1226%2012.1326%2084.2032%2011.4273%2084.2032%2010.6369C84.2032%209.8464%2084.1226%209.16958%2083.963%208.57464C83.8034%207.98137%2083.5901%207.46164%2083.3298%207.03047L83.3365%207.03215Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M77.0141%209.74781C75.4268%2011.7031%2077.7582%2014.2817%2079.7788%2013.2322C81.5173%2012.3298%2080.7883%2010.9343%2080.8152%209.58237C80.8387%208.37076%2081.4955%206.88175%2082.2547%205.94923C83.0626%204.95488%2085.1303%204.66243%2084.7238%202.9712C84.4165%201.6961%2082.6864%201.39529%2081.9104%202.3913C81.3594%203.09654%2081.7542%203.96722%2081.603%204.77607C81.3443%206.17651%2080.6153%207.36639%2079.5135%208.25545C78.7777%208.84872%2077.5365%209.10608%2077.0141%209.74781Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAUCAMAAADImI+JAAAANlBMVEX////w8vfyxcx8jbJCWpAOLHFVa5sBIWnIEC7WTGLnv8qAkLTheYpecqHx0digrMfz3+T21dqBS5WQAAAApUlEQVQoz8WTyxpFMAyEpyqOuhTv/7IntImmurAzC59kfsIIhA5wnn6iASMLgzbIT2Fk6joUaAUKBsiJm+kJ0iyuR1mQBam8Cex1dINkZ6EesSZwrR8JfdYWl7AcbCRw5ypytYmPpy6w3X6jL8HXL6PxOODgTPYEcnXmFe94cuBsdJzwpIFrRwK3WPkJLQqL2aUoUVisXjOvLizWWNyMVljrV0gz/wdhEi0lRIbcAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAbCAMAAAA5zj1cAAAApVBMVEX6vQCtFRnBPxP3tgCkSRTxsQC9miCtkjL3ugDcdwrVkwndpwauUEi3k3ecLQyvGx01YomtXy3Zhha+gw+4LiCzn4jKeBKyYgjmoAOkXUK/RhC1kJmmKh+0oKCbYwN5OAWWHxSVi0HypQNcdGsDAgC9g1j6vgSWhnLfsSXCn169cE24eBuaNwzQaiOYagW8bxWIOhqoKhPLdq4yUHR+UgVZLWaBHkAs3esWAAAAk0lEQVQ4y+WTVxLDIAxESQwBAwb33tKc3sv9j5YbWJp8JvurNzsrzYpMkCI/BU6RIt9phqIcJSOpEGBu7c2WA+iXOWmbtTmTACh42PdelSgwp+d2nXdvTjuAc3X5vL6qJo4XQEZ9qd8PXaR7yDE5GFOf6XbNRrmB8cgcKaUraJm5z4NiE4RLH3FyIUaG6Pb85XN9AIg9CvrV7UGSAAAAAElFTkSuQmCC\"","import React from \"react\";\r\nimport {\r\n Button,\r\n Menu,\r\n MenuItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Box,\r\n} from \"@mui/material\";\r\nimport ArrowDropDownIcon from \"@mui/icons-material/ArrowDropDown\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { SupportedLanguage } from \"./utils/translations\";\r\nimport { setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport GBFlag from \"./asset/flags/gb.png\";\r\nimport ESFlag from \"./asset/flags/es.png\";\r\n\r\ninterface LanguageOption {\r\n code: SupportedLanguage;\r\n name: string;\r\n flag: string;\r\n}\r\n\r\nconst languages: LanguageOption[] = [\r\n { code: \"en\", name: \"English\", flag: GBFlag },\r\n { code: \"es\", name: \"Spanish\", flag: ESFlag },\r\n];\r\n\r\ninterface LanguageSelectorProps {\r\n currentLanguage: SupportedLanguage;\r\n onLanguageChange: (language: SupportedLanguage) => void;\r\n}\r\n\r\nconst LanguageSelector: React.FC<LanguageSelectorProps> = ({\r\n currentLanguage,\r\n onLanguageChange,\r\n}) => {\r\n const navigate = useNavigate();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const currentLang = languages.find((lang) => lang.code === currentLanguage) || languages[0];\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleLanguageSelect = (languageCode: SupportedLanguage) => {\r\n // Update localStorage\r\n setI18nLocaleToStorage(languageCode);\r\n \r\n // Get current path\r\n const currentPath = window.location.pathname;\r\n const search = window.location.search;\r\n const hash = window.location.hash;\r\n \r\n // Find and replace existing locale /:locale/ with new locale\r\n const newPath = currentPath.replace(/\\/(en|es)\\//, `/${languageCode}/`);\r\n \r\n // Update language state first\r\n onLanguageChange(languageCode);\r\n console.log('raja new path is v4', newPath + search + hash);\r\n // Navigate using React Router to trigger proper re-render and translation\r\n navigate(newPath + search + hash, { replace: true });\r\n \r\n handleClose();\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n onClick={handleClick}\r\n sx={{\r\n color: \"#1e2f97\",\r\n textTransform: \"none\",\r\n padding: \"4px 8px\",\r\n minWidth: \"auto\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(30, 47, 151, 0.04)\",\r\n },\r\n }}\r\n aria-label=\"Select language\"\r\n aria-controls={open ? \"language-menu\" : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? \"true\" : undefined}\r\n >\r\n <Box\r\n component=\"img\"\r\n src={currentLang.flag}\r\n alt={currentLang.name}\r\n sx={{\r\n width: \"20px\",\r\n height: \"15px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"14px\",\r\n fontWeight: 500,\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n {currentLang.code.toUpperCase()}\r\n </Box>\r\n <ArrowDropDownIcon\r\n sx={{\r\n fontSize: \"20px\",\r\n marginLeft: \"2px\",\r\n display: \"flex\",\r\n alignSelf: \"center\",\r\n }}\r\n />\r\n </Button>\r\n <Menu\r\n id=\"language-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"right\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n slotProps={{\r\n paper: {\r\n sx: {\r\n mt: 1,\r\n minWidth: 150,\r\n },\r\n },\r\n }}\r\n >\r\n {languages.map((language) => (\r\n <MenuItem\r\n key={language.code}\r\n onClick={() => handleLanguageSelect(language.code)}\r\n selected={language.code === currentLanguage}\r\n >\r\n <ListItemIcon>\r\n <Box\r\n component=\"img\"\r\n src={language.flag}\r\n alt={language.name}\r\n sx={{\r\n width: \"24px\",\r\n height: \"18px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n </ListItemIcon>\r\n <ListItemText primary={language.name} />\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </>\r\n );\r\n};\r\n\r\nexport default LanguageSelector;\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps, UserProfile } from \"./types\";\r\nimport { getUserDataFromStorage, getNotificationCountFromStorage, getMessageCountFromStorage, getI18nLocaleFromStorage, setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport { getTranslations, SupportedLanguage } from \"./utils/translations\";\r\nimport ImpactomicsLogo from \"./asset/Impactomics.svg\";\r\nimport LanguageSelector from \"./LanguageSelector\";\r\nimport \"./styles/Header.scss\";\r\n\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({ language: languageProp }) => {\r\n // Get initial language from props, URL, localStorage, or default to 'en'\r\n const getInitialLanguage = (): SupportedLanguage => {\r\n // Priority 1: Props\r\n if (languageProp) {\r\n setI18nLocaleToStorage(languageProp);\r\n return languageProp as SupportedLanguage;\r\n }\r\n \r\n // Priority 2: URL path - pattern is /:locale/base-name/...\r\n const currentPath = window.location.pathname;\r\n const localePattern = /^\\/(en|es)(\\/|$)/;\r\n const localeMatch = currentPath.match(localePattern);\r\n if (localeMatch && localeMatch[1]) {\r\n const urlLocale = localeMatch[1] as SupportedLanguage;\r\n setI18nLocaleToStorage(urlLocale);\r\n return urlLocale;\r\n }\r\n \r\n // Priority 3: localStorage\r\n const storedLocale = getI18nLocaleFromStorage();\r\n if (storedLocale && (storedLocale === 'en' || storedLocale === 'es')) {\r\n return storedLocale as SupportedLanguage;\r\n }\r\n \r\n // Default\r\n return 'en';\r\n };\r\n\r\n const [currentLanguage, setCurrentLanguage] = React.useState<SupportedLanguage>(getInitialLanguage);\r\n const t = getTranslations(currentLanguage);\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n \r\n const [user, setUser] = React.useState<UserProfile>(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n return storedUser;\r\n }\r\n return {\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n };\r\n });\r\n\r\n const [notificationCount, setNotificationCount] = React.useState<number>(() => {\r\n const count = getNotificationCountFromStorage();\r\n return count !== null && count !== undefined ? count : 0;\r\n });\r\n \r\n const [messageCount, setMessageCount] = React.useState<number | undefined>(() => {\r\n return getMessageCountFromStorage() ?? undefined;\r\n });\r\n\r\n React.useEffect(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n setUser(storedUser);\r\n } else {\r\n setUser({\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n });\r\n }\r\n \r\n const notifCount = getNotificationCountFromStorage();\r\n setNotificationCount(notifCount !== null && notifCount !== undefined ? notifCount : 0);\r\n \r\n const msgCount = getMessageCountFromStorage();\r\n setMessageCount(msgCount ?? undefined);\r\n\r\n // Initialize language from props if provided\r\n if (languageProp && languageProp !== currentLanguage) {\r\n setCurrentLanguage(languageProp as SupportedLanguage);\r\n setI18nLocaleToStorage(languageProp);\r\n }\r\n }, [languageProp]);\r\n\r\n const finalRoutes = DEFAULT_ROUTES;\r\n const isOnlineStatus = true;\r\n const notificationCountValue = notificationCount;\r\n \r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n const path = finalRoutes.settings.startsWith('/') \r\n ? finalRoutes.settings \r\n : `/${finalRoutes.settings}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n const path = finalRoutes.profile.startsWith('/') \r\n ? finalRoutes.profile \r\n : `/${finalRoutes.profile}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n localStorage.clear();\r\n const path = finalRoutes.logout.startsWith('/') \r\n ? finalRoutes.logout \r\n : `/${finalRoutes.logout}`;\r\n window.location.href = path;\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n {t.role}: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.accountSettings}\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.profile}\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.signOut}\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.messages}</p>\r\n </MenuItem>\r\n )}\r\n {notificationCountValue > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCountValue} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.notifications}</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>{t.profile}</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className=\"app-header\">\r\n <AppBar\r\n sx={{\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n padding: 0,\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={() => {\r\n toggleDrawer();\r\n }}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize=\"large\" />\r\n ) : (\r\n <MenuIcon fontSize=\"large\" />\r\n )}\r\n </IconButton>\r\n <Box\r\n component=\"div\"\r\n sx={{ \r\n display: { xs: \"none\", sm: \"flex\" },\r\n alignItems: 'center',\r\n marginLeft: '-5px'\r\n }}\r\n data-testid=\"impactomics-logo-wrapper\"\r\n >\r\n <img \r\n src={ImpactomicsLogo} \r\n alt=\"Impactomics\" \r\n style={{ height: '23px', width: 'auto', display: 'block' }}\r\n />\r\n </Box>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" }, alignItems: \"center\", gap: \"4px\" }}>\r\n <LanguageSelector\r\n currentLanguage={currentLanguage}\r\n onLanguageChange={(lang) => {\r\n setCurrentLanguage(lang);\r\n // The LanguageSelector component handles URL and localStorage updates\r\n }}\r\n />\r\n <IconButton\r\n size=\"large\"\r\n aria-label={notificationCountValue > 0 ? `show ${notificationCountValue} new notifications` : \"show notifications\"}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCountValue > 0 ? notificationCountValue : 0} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["React","_jsx","useNavigate","_jsxs","_Fragment","Button","Box","Menu","MenuItem","ListItemIcon","ListItemText","styled","Badge","List","ListItem","ListItemAvatar","Avatar","deepOrange","Typography","Divider","IconButton","AppBar","Toolbar"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,aAAa,GAAGA,gBAAK,CAAC,aAAa,CAAoB;AAC3D,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,UAAU,EAAE,MAAK,EAAE,CAAC;AACpB,IAAA,WAAW,EAAE,MAAK,EAAE,CAAC;AACrB,IAAA,YAAY,EAAE,MAAK,EAAE,CAAC;AACvB,CAAA,CAAC;MAEW,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAiC,KAAI;AAC5E,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,gBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAE7D,MAAM,UAAU,GAAG,MAAK;QACtB,eAAe,CAAC,IAAI,CAAC;AACvB,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,eAAe,CAAC,KAAK,CAAC;AACxB,IAAA,CAAC;IAED,MAAM,YAAY,GAAG,MAAK;QACxB,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAClC,IAAA,CAAC;IAED,QACEC,eAAC,aAAa,CAAC,QAAQ,EAAA,EACrB,KAAK,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,EAAA,QAAA,EAE7D,QAAQ,EAAA,CACc;AAE7B;AAEO,MAAM,SAAS,GAAG,MAAMD,gBAAK,CAAC,UAAU,CAAC,aAAa;;ACxCtD,MAAM,sBAAsB,GAAG,MAAK;IACzC,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC3D,IAAI,YAAY,EAAE;AAChB,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAE5C,YAAA,MAAM,WAAW,GAAG,CAAC,KAAU,KAAI;AACjC,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,oBAAA,IAAI;AACF,wBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1B;AAAE,oBAAA,MAAM;AACN,wBAAA,OAAO,KAAK;oBACd;gBACF;AACA,gBAAA,OAAO,KAAK;AACd,YAAA,CAAC;YAED,IAAI,QAAQ,GAAG,IAAI;AAEnB,YAAA,IAAI,WAAW,CAAC,WAAW,EAAE;gBAC3B,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;gBAC9D,QAAQ,GAAG,iBAAiB,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,IAAI,iBAAiB;YAClF;AAEA,YAAA,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE;gBACjC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;AAChD,gBAAA,QAAQ,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU;YACvF;AAEA,YAAA,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,WAAW,EAAE;gBACxC,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;AAC9D,gBAAA,IAAI,iBAAiB,CAAC,IAAI,EAAE;AAC1B,oBAAA,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ;gBAC3E;gBACA,IAAI,CAAC,QAAQ,EAAE;AACb,oBAAA,QAAQ,GAAG,iBAAiB,CAAC,IAAI,IAAI,iBAAiB,CAAC,QAAQ,IAAI,iBAAiB,CAAC,WAAW;gBAClG;YACF;AAEA,YAAA,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE;gBACpC,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;gBACtD,QAAQ,GAAG,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa;YACtE;YAEA,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE;AACxE,gBAAA,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACtD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC1E;gBAEA,OAAO;oBACL,IAAI,EAAE,IAAI,IAAI,EAAE;oBAChB,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,IAAI,EAAE;AACpD,oBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE;AACxF,oBAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,YAAY;oBAChG,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B;YACH;QACF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC;AAChE,YAAA,OAAO,IAAI;QACb;IACF;AACA,IAAA,OAAO,IAAI;AACb,CAAC;AAEM,MAAM,+BAA+B,GAAG,MAAa;IAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC3D,IAAI,YAAY,EAAE;AAChB,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAE5C,YAAA,MAAM,WAAW,GAAG,CAAC,KAAU,KAAI;AACjC,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,oBAAA,IAAI;AACF,wBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1B;AAAE,oBAAA,MAAM;AACN,wBAAA,OAAO,KAAK;oBACd;gBACF;AACA,gBAAA,OAAO,KAAK;AACd,YAAA,CAAC;AAED,YAAA,IAAI,WAAW,CAAC,aAAa,EAAE;gBAC7B,MAAM,mBAAmB,GAAG,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC;AAClE,gBAAA,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,IAAI,mBAAmB,CAAC,WAAW,IAAI,mBAAmB,CAAC,KAAK;gBACvG,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,oBAAA,OAAO,KAAK;YAC7C;AAEA,YAAA,IAAI,WAAW,CAAC,GAAG,EAAE;gBACnB,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC;AAC9C,gBAAA,IAAI,SAAS,CAAC,iBAAiB,KAAK,SAAS,EAAE;oBAC7C,OAAO,SAAS,CAAC,iBAAiB;gBACpC;YACF;QACF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,GAAG,CAAC;QAC3E;IACF;AACA,IAAA,OAAO,CAAC;AACV,CAAC;AAEM,MAAM,0BAA0B,GAAG,MAAyB;IACjE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC3D,IAAI,YAAY,EAAE;AAChB,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAE5C,YAAA,MAAM,WAAW,GAAG,CAAC,KAAU,KAAI;AACjC,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,oBAAA,IAAI;AACF,wBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1B;AAAE,oBAAA,MAAM;AACN,wBAAA,OAAO,KAAK;oBACd;gBACF;AACA,gBAAA,OAAO,KAAK;AACd,YAAA,CAAC;AAED,YAAA,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACxB,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;AACxD,gBAAA,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,WAAW,IAAI,cAAc,CAAC,KAAK;gBACxF,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,oBAAA,OAAO,KAAK;YAC7C;AAEA,YAAA,IAAI,WAAW,CAAC,GAAG,EAAE;gBACnB,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC;AAC9C,gBAAA,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE;oBACxC,OAAO,SAAS,CAAC,YAAY;gBAC/B;YACF;QACF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC;QACtE;IACF;AACA,IAAA,OAAO,SAAS;AAClB,CAAC;AAEM,MAAM,wBAAwB,GAAG,MAAoB;AAC1D,IAAA,IAAI;AACF,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC;AAClE,QAAA,OAAO,IAAI;IACb;AACF,CAAC;AAEM,MAAM,sBAAsB,GAAG,CAAC,MAAc,KAAU;AAC7D,IAAA,IAAI;AACF,QAAA,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;IAC1C;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC;IAClE;AACF,CAAC;;AC5IM,MAAM,YAAY,GAA4C;AACnE,IAAA,EAAE,EAAE;AACF,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,MAAM;AACb,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,eAAe,EAAE,yBAAyB;AAC1C,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,aAAa,EAAE,gBAAgB;AAC/B,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,IAAI,EAAE,KAAK;AACZ,KAAA;;MAGU,eAAe,GAAG,CAAC,QAAA,GAA8B,IAAI,KAAkB;IAClF,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,EAAE;AAClD;;ACtCA,sBAAe;;ACAf,aAAe;;ACAf,aAAe;;ACsBf,MAAM,SAAS,GAAqB;IAClC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;CAC9C;AAOD,MAAM,gBAAgB,GAAoC,CAAC,EACzD,eAAe,EACf,gBAAgB,GACjB,KAAI;AACH,IAAA,MAAM,QAAQ,GAAGE,0BAAW,EAAE;AAC9B,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,IAAI,CAAC;AACxE,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE9B,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;AAE3F,IAAA,MAAM,WAAW,GAAG,CAAC,KAAoC,KAAI;AAC3D,QAAA,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;AAClC,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,WAAW,CAAC,IAAI,CAAC;AACnB,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,YAA+B,KAAI;;QAE/D,sBAAsB,CAAC,YAAY,CAAC;;AAGpC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;AAC5C,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM;AACrC,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;;AAGjC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA,CAAG,CAAC;;QAGvE,gBAAgB,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;;AAE3D,QAAA,QAAQ,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEpD,QAAA,WAAW,EAAE;AACf,IAAA,CAAC;IAED,QACEC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,eAAA,CAACE,eAAM,EAAA,EACL,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE;AACF,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,OAAO,EAAE,SAAS;AAClB,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,UAAU,EAAE,QAAQ;AACpB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,SAAS,EAAE;AACT,wBAAA,eAAe,EAAE,yBAAyB;AAC3C,qBAAA;iBACF,EAAA,YAAA,EACU,iBAAiB,mBACb,IAAI,GAAG,eAAe,GAAG,SAAS,EAAA,eAAA,EACnC,MAAM,mBACL,IAAI,GAAG,MAAM,GAAG,SAAS,EAAA,QAAA,EAAA,CAExCJ,cAAA,CAACK,YAAG,EAAA,EACF,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,WAAW,CAAC,IAAI,EACrB,GAAG,EAAE,WAAW,CAAC,IAAI,EACrB,EAAE,EAAE;AACF,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,SAAS,EAAE,OAAO;AAClB,4BAAA,YAAY,EAAE,KAAK;yBACpB,EAAA,CACD,EACFL,eAACK,YAAG,EAAA,EACF,SAAS,EAAC,MAAM,EAChB,EAAE,EAAE;AACF,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,UAAU,EAAE,GAAG;AACf,4BAAA,UAAU,EAAE,KAAK;AAClB,yBAAA,EAAA,QAAA,EAEA,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAA,CAC3B,EACNL,cAAA,CAAC,iBAAiB,EAAA,EAChB,EAAE,EAAE;AACF,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,SAAS,EAAE,QAAQ;yBACpB,EAAA,CACD,CAAA,EAAA,CACK,EACTA,cAAA,CAACM,aAAI,IACH,EAAE,EAAC,eAAe,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE;AACZ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,UAAU,EAAE,OAAO;AACpB,iBAAA,EACD,eAAe,EAAE;AACf,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,UAAU,EAAE,OAAO;AACpB,iBAAA,EACD,SAAS,EAAE;AACT,oBAAA,KAAK,EAAE;AACL,wBAAA,EAAE,EAAE;AACF,4BAAA,EAAE,EAAE,CAAC;AACL,4BAAA,QAAQ,EAAE,GAAG;AACd,yBAAA;AACF,qBAAA;iBACF,EAAA,QAAA,EAEA,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,MACtBJ,eAAA,CAACK,iBAAQ,EAAA,EAEP,OAAO,EAAE,MAAM,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAClD,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAA,QAAA,EAAA,CAE3CP,cAAA,CAACQ,qBAAY,EAAA,EAAA,QAAA,EACXR,cAAA,CAACK,YAAG,EAAA,EACF,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,QAAQ,CAAC,IAAI,EAClB,GAAG,EAAE,QAAQ,CAAC,IAAI,EAClB,EAAE,EAAE;AACF,oCAAA,KAAK,EAAE,MAAM;AACb,oCAAA,MAAM,EAAE,MAAM;AACd,oCAAA,SAAS,EAAE,OAAO;AAClB,oCAAA,YAAY,EAAE,KAAK;iCACpB,EAAA,CACD,EAAA,CACW,EACfL,cAAA,CAACS,qBAAY,IAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAI,CAAA,EAAA,EAjBnC,QAAQ,CAAC,IAAI,CAkBT,CACZ,CAAC,EAAA,CACG,CAAA,EAAA,CACN;AAEP,CAAC;;ACpID,MAAM,cAAc,GAAG;AACrB,IAAA,QAAQ,EAAE,mBAAmB;AAC7B,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,EAAE,SAAS;CAClB;AAED,MAAM,SAAS,GAA6B,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAI;;IAEzE,MAAM,kBAAkB,GAAG,MAAwB;;QAEjD,IAAI,YAAY,EAAE;YAChB,sBAAsB,CAAC,YAAY,CAAC;AACpC,YAAA,OAAO,YAAiC;QAC1C;;AAGA,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAC5C,MAAM,aAAa,GAAG,kBAAkB;QACxC,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;AACpD,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AACjC,YAAA,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAsB;YACrD,sBAAsB,CAAC,SAAS,CAAC;AACjC,YAAA,OAAO,SAAS;QAClB;;AAGA,QAAA,MAAM,YAAY,GAAG,wBAAwB,EAAE;AAC/C,QAAA,IAAI,YAAY,KAAK,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,CAAC,EAAE;AACpE,YAAA,OAAO,YAAiC;QAC1C;;AAGA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AAED,IAAA,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB,kBAAkB,CAAC;AACnG,IAAA,MAAM,CAAC,GAAG,eAAe,CAAC,eAAe,CAAC;IAE1C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE;AAClD,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,IAAI,CAAC;AACxE,IAAA,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAC/C,KAAK,CAAC,QAAQ,CAAqB,IAAI,CAAC;IAE1C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAc,MAAK;AACvD,QAAA,MAAM,UAAU,GAAG,sBAAsB,EAAE;QAC3C,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;AACrD,YAAA,OAAO,UAAU;QACnB;QACA,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,qBAAqB;AAC5B,YAAA,IAAI,EAAE,eAAe;SACtB;AACH,IAAA,CAAC,CAAC;IAEF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,MAAK;AAC5E,QAAA,MAAM,KAAK,GAAG,+BAA+B,EAAE;AAC/C,QAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,CAAC;AAC1D,IAAA,CAAC,CAAC;IAEF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,MAAK;AAC9E,QAAA,OAAO,0BAA0B,EAAE,IAAI,SAAS;AAClD,IAAA,CAAC,CAAC;AAEF,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,MAAM,UAAU,GAAG,sBAAsB,EAAE;QAC3C,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;YACrD,OAAO,CAAC,UAAU,CAAC;QACrB;aAAO;AACL,YAAA,OAAO,CAAC;AACN,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,IAAI,EAAE,eAAe;AACtB,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,UAAU,GAAG,+BAA+B,EAAE;AACpD,QAAA,oBAAoB,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;AAEtF,QAAA,MAAM,QAAQ,GAAG,0BAA0B,EAAE;AAC7C,QAAA,eAAe,CAAC,QAAQ,IAAI,SAAS,CAAC;;AAGtC,QAAA,IAAI,YAAY,IAAI,YAAY,KAAK,eAAe,EAAE;YACpD,kBAAkB,CAAC,YAAiC,CAAC;YACrD,sBAAsB,CAAC,YAAY,CAAC;QACtC;AACF,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,MAAM,WAAW,GAAG,cAAc;IAElC,MAAM,sBAAsB,GAAG,iBAAiB;AAEhD,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAEpD,IAAA,MAAM,WAAW,GAAGC,eAAM,CAACC,cAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAChD,QAAA,mBAAmB,EAAE;AACnB,YAAA,eAAe,EAAE,SAAS;AAC1B,YAAA,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAA,CAAE;AACxD,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,YAAY,EAAE,KAAK;AACpB,SAAA;AACF,KAAA,CAAC,CAAC;AAEH,IAAqBD,eAAM,CAACC,cAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACjD,QAAA,mBAAmB,EAAE;AACnB,YAAA,eAAe,EAAE,MAAM;AACvB,YAAA,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAA,CAAE;AACxD,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,YAAY,EAAE,KAAK;AACpB,SAAA;AACF,KAAA,CAAC;AAEF,IAAA,MAAM,qBAAqB,GAAG,CAAC,KAAoC,KAAI;AACrE,QAAA,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;AAClC,IAAA,CAAC;IAED,MAAM,qBAAqB,GAAG,MAAK;QACjC,qBAAqB,CAAC,IAAI,CAAC;AAC7B,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAoC,KAAI;AACpE,QAAA,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC;AAC5C,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE9B,MAAM,WAAW,GAAG,MAAK;QACvB,WAAW,CAAC,IAAI,CAAC;AACnB,IAAA,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAK;AAC/B,QAAA,WAAW,EAAE;QACb,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG;cAC5C,WAAW,CAAC;AACd,cAAE,CAAA,CAAA,EAAI,WAAW,CAAC,QAAQ,EAAE;AAC9B,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI;AAC7B,IAAA,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAK;AAC9B,QAAA,WAAW,EAAE;QACb,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG;cAC3C,WAAW,CAAC;AACd,cAAE,CAAA,CAAA,EAAI,WAAW,CAAC,OAAO,EAAE;AAC7B,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI;AAC7B,IAAA,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAK;AAC9B,QAAA,WAAW,EAAE;QACb,YAAY,CAAC,KAAK,EAAE;QACpB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG;cAC1C,WAAW,CAAC;AACd,cAAE,CAAA,CAAA,EAAI,WAAW,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI;AAC7B,IAAA,CAAC;IAED,MAAM,MAAM,GAAG,sBAAsB;IAErC,MAAM,WAAW,GAAG,MAAK;QACvB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ;QACvC,OAAO,IAAI,CAAC;aACT,KAAK,CAAC,GAAG;aACT,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACf,IAAI,CAAC,EAAE;AACP,aAAA,WAAW;AACX,aAAA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAChB,IAAA,CAAC;IAED,MAAM,WAAW,IACfX,cAAA,CAACY,aAAI,EAAA,EACH,SAAS,EAAC,sBAAsB,EAChC,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,aAAa,EAAE,MAAM;SACtB,EACD,SAAS,EAAC,KAAK,EAAA,aAAA,EACH,MAAM,EAClB,QAAQ,EAAE,EAAE,EAAA,QAAA,EAEZV,eAAA,CAACW,iBAAQ,EAAA,EAAC,UAAU,EAAC,YAAY,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAC7Db,cAAA,CAACc,uBAAc,EAAA,EAAA,QAAA,EACK,CAChBd,cAAA,CAAC,WAAW,EAAA,EACV,OAAO,EAAC,UAAU,EAClB,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EACzD,OAAO,EAAC,KAAK,EACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAA,YAAA,EACH,CAAA,EAAG,CAAC,CAAC,MAAM,CAAA,aAAA,CAAe,EAAA,aAAA,EAC1B,cAAc,EAAA,QAAA,EAE1BA,cAAA,CAACe,eAAM,EAAA,EACL,EAAE,EAAE,EAAE,OAAO,EAAEC,iBAAU,CAAC,GAAG,CAAC,EAAE,EAChC,GAAG,EAAE,IAAI,CAAC,IAAI,EACd,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,GAAG,EAAE,IAAI,CAAC,MAAM,EAAA,QAAA,EAEf,WAAW,EAAE,EAAA,CACP,EAAA,CACG,EAmBf,EAAA,CACc,EACjBhB,cAAA,CAACS,qBAAY,EAAA,EACX,SAAS,EACPP,eAAA,CAAC,KAAK,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAA,CACbF,cAAA,CAACiB,mBAAU,EAAA,EAAC,SAAS,EAAC,cAAc,EAAC,SAAS,EAAC,GAAG,EAAA,QAAA,EAC/C,IAAI,CAAC,IAAI,EAAA,CACC,EACbjB,cAAA,CAACiB,mBAAU,EAAA,EAAC,SAAS,EAAC,eAAe,EAAC,SAAS,EAAC,GAAG,EAAA,QAAA,EAChD,IAAI,CAAC,KAAK,EAAA,CACA,EACbf,eAAA,CAACe,mBAAU,EAAA,EAAC,SAAS,EAAC,cAAc,EAAC,SAAS,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/C,CAAC,CAAC,IAAI,EAAA,IAAA,EAAI,IAAI,CAAC,IAAI,CAAA,EAAA,CACT,CAAA,EAAA,CACE,EAAA,CAEnB,CAAA,EAAA,CACO,EAAA,CACN,CACR;IAED,MAAM,UAAU,IACdf,eAAA,CAACI,aAAI,EAAA,EACH,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAC,cAAc,EACjB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE;AACT,YAAA,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,EAAE,EAAE;AACF,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,MAAM,EAAE,2CAA2C;AACnD,oBAAA,EAAE,EAAE,GAAG;AACP,oBAAA,mBAAmB,EAAE;AACnB,wBAAA,KAAK,EAAE,EAAE;AACT,wBAAA,MAAM,EAAE,EAAE;wBACV,EAAE,EAAE,IAAI;AACR,wBAAA,EAAE,EAAE,CAAC;AACN,qBAAA;AACD,oBAAA,WAAW,EAAE;AACX,wBAAA,OAAO,EAAE,IAAI;AACb,wBAAA,OAAO,EAAE,OAAO;AAChB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,GAAG,EAAE,CAAC;AACN,wBAAA,KAAK,EAAE,EAAE;AACT,wBAAA,KAAK,EAAE,EAAE;AACT,wBAAA,MAAM,EAAE,EAAE;AACV,wBAAA,OAAO,EAAE,kBAAkB;AAC3B,wBAAA,SAAS,EAAE,gCAAgC;AAC3C,wBAAA,MAAM,EAAE,CAAC;AACV,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,EACD,eAAe,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EACzD,YAAY,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAExD,WAAW,EACZN,cAAA,CAACkB,gBAAO,EAAA,EAAA,CAAG,EACXhB,gBAACK,iBAAQ,EAAA,EAAC,OAAO,EAAE,mBAAmB,EAAA,QAAA,EAAA,CACpCP,eAACQ,qBAAY,EAAA,EAAA,QAAA,EACXR,cAAA,CAAC,oBAAoB,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAA,CAAG,EAAA,CAC5B,EACd,CAAC,CAAC,eAAe,CAAA,EAAA,CACT,EACXE,gBAACK,iBAAQ,EAAA,EAAC,OAAO,EAAE,kBAAkB,EAAA,QAAA,EAAA,CACnCP,cAAA,CAACQ,qBAAY,EAAA,EAAA,QAAA,EACXR,eAAC,yBAAyB,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAA,CAAG,GACjC,EACd,CAAC,CAAC,OAAO,CAAA,EAAA,CACD,EACXE,gBAACK,iBAAQ,EAAA,EAAC,OAAO,EAAE,kBAAkB,aACnCP,cAAA,CAACQ,qBAAY,EAAA,EAAA,QAAA,EACXR,cAAA,CAAC,kBAAkB,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAA,CAAG,EAAA,CAC1B,EACd,CAAC,CAAC,OAAO,CAAA,EAAA,CACD,CAAA,EAAA,CACN,CACR;IAED,MAAM,YAAY,GAAG,6BAA6B;IAClD,MAAM,gBAAgB,IACpBE,eAAA,CAACI,aAAI,EAAA,EACH,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE;AACZ,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,OAAO;AACpB,SAAA,EACD,EAAE,EAAE,YAAY,EAChB,WAAW,EAAA,IAAA,EACX,eAAe,EAAE;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,OAAO;AACpB,SAAA,EACD,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,qBAAqB,EAAA,QAAA,EAAA,CAE7B,YAAY,KAAK,SAAS,KACzBJ,eAAA,CAACK,iBAAQ,EAAA,EAAA,QAAA,EAAA,CACPP,cAAA,CAACmB,mBAAU,EAAA,EACT,IAAI,EAAC,OAAO,EAAA,YAAA,EACA,CAAA,KAAA,EAAQ,YAAY,CAAA,UAAA,CAAY,EAC5C,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,QAAA,EAExBnB,cAAA,CAACW,cAAK,EAAA,EAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAC,OAAO,EAAA,QAAA,EAC9CX,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACN,EAAA,CACG,EACbA,cAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,CAAC,CAAC,QAAQ,EAAA,CAAK,CAAA,EAAA,CACV,CACZ,EACA,sBAAsB,GAAG,CAAC,KACzBE,eAAA,CAACK,iBAAQ,EAAA,EAAA,QAAA,EAAA,CACPP,cAAA,CAACmB,mBAAU,EAAA,EACT,IAAI,EAAC,OAAO,EAAA,YAAA,EACA,CAAA,KAAA,EAAQ,sBAAsB,CAAA,kBAAA,CAAoB,EAC9D,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,QAAA,EAExBnB,cAAA,CAACW,cAAK,EAAA,EAAC,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAC,OAAO,EAAA,QAAA,EACnDX,cAAA,CAAC,2BAA2B,EAAA,EAAA,CAAG,EAAA,CACzB,EAAA,CACG,EACbA,cAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,CAAC,CAAC,aAAa,EAAA,CAAK,CAAA,EAAA,CACf,CACZ,EACDE,eAAA,CAACK,iBAAQ,EAAA,EAAC,OAAO,EAAE,qBAAqB,EAAA,QAAA,EAAA,CACtCP,cAAA,CAACmB,mBAAU,EAAA,EACT,IAAI,EAAC,OAAO,EAAA,YAAA,EACD,yBAAyB,EAAA,eAAA,EACtB,sBAAsB,EAAA,eAAA,EACtB,MAAM,EACpB,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,QAAA,EAEN,CAChBnB,cAAA,CAAC,WAAW,EAAA,EACV,OAAO,EAAC,UAAU,EAClB,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EACzD,OAAO,EAAC,KAAK,EACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAA,YAAA,EACH,CAAA,EAAG,CAAC,CAAC,MAAM,CAAA,aAAA,CAAe,EAAA,aAAA,EAC1B,cAAc,EAAA,QAAA,EAE1BA,cAAA,CAAC,aAAa,EAAA,EACZ,WAAW,EAAE,IAAI,CAAC,IAAI,EAAA,YAAA,EACX,aAAa,GACxB,EAAA,CACU,EAef,EAAA,CACU,EACbA,cAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,CAAC,CAAC,OAAO,EAAA,CAAK,CAAA,EAAA,CACT,CAAA,EAAA,CACN,CACR;IAED,QACEE,gBAACG,YAAG,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CAC9CL,eAACoB,eAAM,EAAA,EACL,EAAE,EAAE;AACF,oBAAA,eAAe,EAAE,SAAS;AAC3B,iBAAA,EAAA,QAAA,EAEDlB,gBAACmB,gBAAO,EAAA,EAAA,QAAA,EAAA,CACNrB,cAAA,CAACmB,mBAAU,IACT,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,OAAO,gBACD,aAAa,EACxB,EAAE,EAAE;AACF,gCAAA,EAAE,EAAE,CAAC;AACL,gCAAA,KAAK,EAAE,SAAS;AAChB,gCAAA,OAAO,EAAE,CAAC;AACV,gCAAA,SAAS,EAAE;AACT,oCAAA,eAAe,EAAE,yBAAyB;AAC3C;6BACF,EACD,OAAO,EAAE,MAAK;AACZ,gCAAA,YAAY,EAAE;AAChB,4BAAA,CAAC,YAEA,YAAY,IACXnB,cAAA,CAAC,YAAY,EAAA,EAAC,QAAQ,EAAC,OAAO,EAAA,CAAG,KAEjCA,cAAA,CAAC,QAAQ,IAAC,QAAQ,EAAC,OAAO,EAAA,CAAG,CAC9B,EAAA,CACU,EACbA,cAAA,CAACK,YAAG,IACF,SAAS,EAAC,KAAK,EACf,EAAE,EAAE;gCACF,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AACnC,gCAAA,UAAU,EAAE,QAAQ;AACpB,gCAAA,UAAU,EAAE;AACb,6BAAA,EAAA,aAAA,EACW,0BAA0B,EAAA,QAAA,EAEtCL,cAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAC,aAAa,EACjB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAC1D,EAAA,CACE,EACNA,cAAA,CAACK,YAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAA,CAAI,EAC5BH,eAAA,CAACG,YAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAChFL,eAAC,gBAAgB,EAAA,EACf,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,CAAC,IAAI,KAAI;wCACzB,kBAAkB,CAAC,IAAI,CAAC;;oCAE1B,CAAC,EAAA,CACD,EACFA,cAAA,CAACmB,mBAAU,EAAA,EACT,IAAI,EAAC,OAAO,EAAA,YAAA,EACA,sBAAsB,GAAG,CAAC,GAAG,CAAA,KAAA,EAAQ,sBAAsB,CAAA,kBAAA,CAAoB,GAAG,oBAAoB,EAClH,EAAE,EAAE;AACF,wCAAA,KAAK,EAAE,SAAS;AAChB,wCAAA,SAAS,EAAE;AACT,4CAAA,eAAe,EAAE,yBAAyB;AAC3C;qCACF,EAAA,QAAA,EAEDnB,cAAA,CAACW,cAAK,EAAA,EAAC,YAAY,EAAE,sBAAsB,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,EAAE,KAAK,EAAC,OAAO,EAAA,QAAA,EACzFX,cAAA,CAAC,2BAA2B,EAAA,EAAA,CAAG,GACzB,EAAA,CACG,EACbA,eAACmB,mBAAU,EAAA,EACT,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,KAAK,gBACC,yBAAyB,EAAA,eAAA,EACrB,MAAM,EAAA,eAAA,EACP,MAAM,EACpB,OAAO,EAAE,qBAAqB,EAC9B,EAAE,EAAE;AACF,wCAAA,KAAK,EAAE,SAAS;AAChB,wCAAA,SAAS,EAAE;AACT,4CAAA,eAAe,EAAE,yBAAyB;AAC3C;AACF,qCAAA,EAAA,QAAA,EAEiB,CAChBnB,cAAA,CAAC,WAAW,EAAA,EACV,OAAO,EAAC,UAAU,EAClB,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EACzD,OAAO,EAAC,KAAK,EACb,KAAK,EAAC,QAAQ,EAAA,YAAA,EACH,qBAAqB,iBACpB,cAAc,EAAA,QAAA,EAE1BA,eAACe,eAAM,EAAA,EACL,EAAE,EAAE;AACF,gDAAA,OAAO,EAAEC,iBAAU,CAAC,GAAG,CAAC;AACxB,gDAAA,KAAK,EAAE,EAAE;AACT,gDAAA,MAAM,EAAE,EAAE;AACV,gDAAA,CAAC,EAAE,CAAC;AACL,6CAAA,EACD,GAAG,EAAE,IAAI,CAAC,IAAI,EACd,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,KAAK,EAAC,OAAO,YAEZ,WAAW,EAAE,EAAA,CACP,EAAA,CACG,EAwBf,EAAA,CACU,CAAA,EAAA,CACT,EACNhB,cAAA,CAACK,YAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,QAAA,EAC9CL,eAACmB,mBAAU,EAAA,EACT,IAAI,EAAC,OAAO,EAAA,YAAA,EACD,WAAW,EAAA,eAAA,EACP,YAAY,EAAA,eAAA,EACb,MAAM,EACpB,OAAO,EAAE,oBAAoB,EAC7B,EAAE,EAAE;AACF,oCAAA,KAAK,EAAE,SAAS;AAChB,oCAAA,SAAS,EAAE;AACT,wCAAA,eAAe,EAAE,yBAAyB;AAC3C;AACF,iCAAA,EAAA,QAAA,EAEDnB,cAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACD,EAAA,CACT,CAAA,EAAA,CACE,EAAA,CACH,EACR,gBAAgB,EAChB,UAAU,CAAA,EAAA,CACP;AAEV;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/DrawerContext.tsx","../src/utils/localStorage.ts","../src/utils/translations.ts","../src/asset/Impactomics.svg","../src/asset/flags/gb.png","../src/asset/flags/es.png","../src/LanguageSelector.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","export const getUserDataFromStorage = () => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n let userData = null;\r\n \r\n if (parsedOuter.userDetails) {\r\n const parsedUserDetails = parseNested(parsedOuter.userDetails);\r\n userData = parsedUserDetails.user || parsedUserDetails.data || parsedUserDetails;\r\n }\r\n \r\n if (!userData && parsedOuter.user) {\r\n const parsedUser = parseNested(parsedOuter.user);\r\n userData = parsedUser.user || parsedUser.data || parsedUser.currentUser || parsedUser;\r\n }\r\n \r\n if (!userData && parsedOuter.authDetails) {\r\n const parsedAuthDetails = parseNested(parsedOuter.authDetails);\r\n if (parsedAuthDetails.auth) {\r\n userData = parsedAuthDetails.auth.user || parsedAuthDetails.auth.userData;\r\n }\r\n if (!userData) {\r\n userData = parsedAuthDetails.user || parsedAuthDetails.userData || parsedAuthDetails.currentUser;\r\n }\r\n }\r\n \r\n if (!userData && parsedOuter.profile) {\r\n const parsedProfile = parseNested(parsedOuter.profile);\r\n userData = parsedProfile.user || parsedProfile.data || parsedProfile;\r\n }\r\n \r\n if (userData) {\r\n let name = userData.name || userData.fullName || userData.userName || \"\";\r\n if (!name && (userData.firstName || userData.lastName)) {\r\n name = [userData.firstName, userData.lastName].filter(Boolean).join(' ');\r\n }\r\n \r\n return {\r\n name: name || \"\",\r\n email: userData.email || userData.emailAddress || \"\",\r\n role: userData.role || userData.userRole || userData.designation || userData.title || \"\",\r\n avatar: userData.avatar || userData.profilePicture || userData.imageUrl || userData.profileImage,\r\n initials: userData.initials,\r\n };\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing user data from localStorage:\", err);\r\n return null;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport const getNotificationCountFromStorage = (): number => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.notifications) {\r\n const parsedNotifications = parseNested(parsedOuter.notifications);\r\n const count = parsedNotifications.count || parsedNotifications.unreadCount || parsedNotifications.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.notificationCount !== undefined) {\r\n return parsedApp.notificationCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing notification count from localStorage:\", err);\r\n }\r\n }\r\n return 0;\r\n};\r\n\r\nexport const getMessageCountFromStorage = (): number | undefined => {\r\n const userDbString = localStorage.getItem(\"persist:userdb\");\r\n if (userDbString) {\r\n try {\r\n const parsedOuter = JSON.parse(userDbString);\r\n \r\n const parseNested = (value: any) => {\r\n if (typeof value === 'string') {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n \r\n if (parsedOuter.messages) {\r\n const parsedMessages = parseNested(parsedOuter.messages);\r\n const count = parsedMessages.count || parsedMessages.unreadCount || parsedMessages.total;\r\n if (typeof count === 'number') return count;\r\n }\r\n \r\n if (parsedOuter.app) {\r\n const parsedApp = parseNested(parsedOuter.app);\r\n if (parsedApp.messageCount !== undefined) {\r\n return parsedApp.messageCount;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error parsing message count from localStorage:\", err);\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const getI18nLocaleFromStorage = (): string | null => {\r\n try {\r\n return localStorage.getItem(\"lnc-i18n\");\r\n } catch (err) {\r\n console.error(\"Error getting i18n locale from localStorage:\", err);\r\n return null;\r\n }\r\n};\r\n\r\nexport const setI18nLocaleToStorage = (locale: string): void => {\r\n try {\r\n localStorage.setItem(\"lnc-i18n\", locale);\r\n } catch (err) {\r\n console.error(\"Error setting i18n locale to localStorage:\", err);\r\n }\r\n};\r\n\r\n","export type SupportedLanguage = 'en' | 'es';\r\n\r\nexport interface Translations {\r\n accountSettings: string;\r\n profile: string;\r\n signOut: string;\r\n messages: string;\r\n notifications: string;\r\n online: string;\r\n offline: string;\r\n role: string;\r\n}\r\n\r\nexport const translations: Record<SupportedLanguage, Translations> = {\r\n en: {\r\n accountSettings: 'Account Settings',\r\n profile: 'Profile',\r\n signOut: 'Sign out',\r\n messages: 'Messages',\r\n notifications: 'Notifications',\r\n online: 'Online',\r\n offline: 'Offline',\r\n role: 'Role',\r\n },\r\n es: {\r\n accountSettings: 'Configuración de cuenta',\r\n profile: 'Perfil',\r\n signOut: 'Cerrar sesión',\r\n messages: 'Mensajes',\r\n notifications: 'Notificaciones',\r\n online: 'En línea',\r\n offline: 'Desconectado',\r\n role: 'Rol',\r\n },\r\n};\r\n\r\nexport const getTranslations = (language: SupportedLanguage = 'en'): Translations => {\r\n return translations[language] || translations.en;\r\n};\r\n\r\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%22134%22%20height%3D%2223%22%20viewBox%3D%220%200%20134%2023%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%2016.9641V0H2.29277V16.9641H0Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M19.7586%204.39182C20.6034%204.36006%2021.361%204.53721%2022.0278%204.92659C22.3033%205.0887%2022.5771%205.30261%2022.8458%205.57C23.1146%205.83738%2023.3531%206.17663%2023.5647%206.58941C23.7764%207.00219%2023.946%207.49519%2024.077%208.07007C24.2064%208.64495%2024.2719%209.32011%2024.2719%2010.0972V16.9891H22.0765V10.6788C22.0765%209.95014%2021.9909%209.3151%2021.8195%208.77364C21.6482%208.23217%2021.4214%207.77929%2021.1359%207.41497C20.8504%207.05065%2020.5262%206.77992%2020.16%206.60111C19.7938%206.42396%2019.4243%206.33372%2019.0497%206.33372C18.6752%206.33372%2018.2821%206.42229%2017.9159%206.60111C17.5498%206.77992%2017.2205%207.05065%2016.9283%207.41497C16.636%207.77929%2016.3992%208.23217%2016.2211%208.77364C16.0414%209.31677%2015.9524%209.95014%2015.9524%2010.6788V16.9891H13.757V10.6788C13.757%209.95014%2013.6714%209.3151%2013.5017%208.77364C13.3304%208.23217%2013.1036%207.77929%2012.8181%207.41497C12.5342%207.05065%2012.2084%206.77992%2011.8422%206.60111C11.476%206.42396%2011.1065%206.33372%2010.7319%206.33372C10.3573%206.33372%209.9643%206.42229%209.59813%206.60111C9.23196%206.77992%208.90274%207.05065%208.61047%207.41497C8.3182%207.77929%208.08137%208.23217%207.90332%208.77364C7.72359%209.31677%207.63457%209.95014%207.63457%2010.6788V16.9891H5.3418V4.58734H7.63457V6.74817C7.97555%206.13318%208.36692%205.66859%208.80531%205.35274C9.24371%205.03689%209.6586%204.80627%2010.05%204.66088C10.5052%204.49877%2010.9688%204.4102%2011.4407%204.39349C12.027%204.36174%2012.588%204.45031%2013.1238%204.66088C13.5958%204.83969%2014.0627%205.13883%2014.5263%205.5583C14.9899%205.97943%2015.3511%206.62618%2015.6114%207.5002C15.9205%206.69135%2016.3102%206.07636%2016.7821%205.65522C17.2541%205.23409%2017.7093%204.92659%2018.1477%204.73274C18.6684%204.52217%2019.2043%204.40853%2019.7586%204.39349V4.39182Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M32.9558%204.39185C34.0291%204.44031%2034.9882%204.69934%2035.8348%205.16894C36.1926%205.3628%2036.5453%205.61013%2036.8964%205.90927C37.2457%206.20841%2037.5548%206.58108%2037.8236%207.02561C38.0923%207.47015%2038.3073%207.99323%2038.4702%208.59151C38.6332%209.18979%2038.7138%209.88666%2038.7138%2010.6788V10.8727C38.7138%2011.6665%2038.6315%2012.365%2038.4702%2012.9717C38.3073%2013.5783%2038.0923%2014.1047%2037.8236%2014.5492C37.5548%2014.9938%2037.2457%2015.3664%2036.8964%2015.6656C36.547%2015.9647%2036.1926%2016.2121%2035.8348%2016.4059C34.9882%2016.8588%2034.0291%2017.1095%2032.9558%2017.1579C32.5174%2017.1412%2032.0773%2017.061%2031.6389%2016.9156C31.2644%2016.7869%2030.8663%2016.5797%2030.443%2016.2973C30.0197%2016.0149%2029.63%2015.6138%2029.2723%2015.0957V22.8132H26.9795V4.5857H29.2723V6.47914C29.63%205.94604%2030.0197%205.5366%2030.443%205.25417C30.8663%204.97174%2031.2644%204.76452%2031.6389%204.63584C32.0773%204.49044%2032.5174%204.41023%2032.9558%204.39352V4.39185ZM36.4932%2010.6788C36.4932%209.95017%2036.3908%209.31512%2036.1875%208.77366C35.9843%208.2322%2035.7155%207.77931%2035.383%207.415C35.0487%207.05068%2034.6674%206.77995%2034.2357%206.60114C33.8041%206.42399%2033.3606%206.33375%2032.9071%206.33375C32.4536%206.33375%2032.0085%206.42232%2031.5768%206.60114C31.1451%206.77995%2030.7588%207.05068%2030.4178%207.415C30.0768%207.77931%2029.7997%208.2322%2029.588%208.77366C29.3764%209.3168%2029.2706%209.95017%2029.2706%2010.6788V10.8727C29.2706%2011.6013%2029.3764%2012.2363%2029.588%2012.7778C29.7997%2013.3209%2030.0752%2013.7738%2030.4178%2014.1365C30.7588%2014.5008%2031.1451%2014.7715%2031.5768%2014.9503C32.0068%2015.1291%2032.4502%2015.2177%2032.9071%2015.2177C33.364%2015.2177%2033.8057%2015.1291%2034.2357%2014.9503C34.6657%2014.7732%2035.0487%2014.5008%2035.383%2014.1365C35.7155%2013.7721%2035.9843%2013.3193%2036.1875%2012.7778C36.3908%2012.2363%2036.4932%2011.6013%2036.4932%2010.8727V10.6788Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M41.0529%205.99458C41.3301%205.8659%2041.6795%205.70714%2042.1011%205.52164C42.5243%205.33614%2042.9913%205.16234%2043.5036%205.00023C44.0159%204.83813%2044.5568%204.70109%2045.1262%204.58745C45.6956%204.47381%2046.2482%204.41699%2046.7857%204.41699C47.3232%204.41699%2047.8338%204.48551%2048.3226%204.62255C48.8097%204.75958%2049.238%204.99856%2049.6025%205.33781C49.9687%205.67706%2050.2576%206.13162%2050.4693%206.69647C50.6809%207.263%2050.7867%207.97492%2050.7867%208.83223V16.9876H48.6149V14.8769C48.4839%2015.2161%2048.2689%2015.5286%2047.9682%2015.8111C47.6675%2016.0935%2047.3215%2016.3375%2046.9318%2016.5397C46.5422%2016.7419%2046.1138%2016.8956%2045.6502%2017.0009C45.1866%2017.1062%2044.7197%2017.158%2044.2477%2017.158C43.7757%2017.158%2043.292%2017.0928%2042.8452%2016.9642C42.3984%2016.8355%2042.0003%2016.6333%2041.6492%2016.3575C41.2998%2016.0835%2041.0193%2015.7308%2040.8077%2015.3013C40.5961%2014.8735%2040.4902%2014.3505%2040.4902%2013.7355C40.4902%2012.9266%2040.6851%2012.223%2041.0764%2011.6248C41.4661%2011.0265%2042.0154%2010.5201%2042.7225%2010.1073C43.4297%209.69456%2044.2847%209.38372%2045.2841%209.17315C46.2835%208.96258%2047.3937%208.8573%2048.6132%208.8573V8.83223C48.6132%208.36263%2048.5561%207.96991%2048.4419%207.65573C48.3277%207.33987%2048.1647%207.08586%2047.9548%206.892C47.7431%206.69814%2047.5029%206.56111%2047.2359%206.47922C46.9671%206.39901%2046.6715%206.35722%2046.3456%206.35722C45.9072%206.35722%2045.4504%206.41739%2044.98%206.53938C44.508%206.66138%2044.0646%206.80176%2043.6497%206.96386C43.2348%207.12596%2042.8653%207.28306%2042.5395%207.4368C42.2136%207.59055%2041.9784%207.69918%2041.8323%207.76435L41.0512%205.99291L41.0529%205.99458ZM48.6149%2010.7507C48.0287%2010.7507%2047.3904%2010.7875%2046.7%2010.8594C46.008%2010.9329%2045.363%2011.0733%2044.76%2011.2838C44.1587%2011.4944%2043.6581%2011.7936%2043.26%2012.1813C42.862%2012.569%2042.6621%2013.0787%2042.6621%2013.7104C42.6621%2014.2769%2042.8821%2014.7014%2043.3205%2014.9855C43.7589%2015.2679%2044.2796%2015.41%2044.8826%2015.41C45.3059%2015.41%2045.7359%2015.3381%2046.176%2015.191C46.6144%2015.0457%2047.0175%2014.8234%2047.3837%2014.5243C47.7498%2014.2251%2048.0455%2013.8524%2048.2739%2013.4079C48.5007%2012.9634%2048.6149%2012.442%2048.6149%2011.842V10.7507Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M55.1523%2010.7991C55.1523%2011.5595%2055.2665%2012.228%2055.4933%2012.8012C55.72%2013.3761%2056.0207%2013.8523%2056.3953%2014.2334C56.7698%2014.6144%2057.1998%2014.9002%2057.6886%2015.0957C58.1757%2015.2895%2058.6796%2015.3865%2059.2004%2015.3865C59.8185%2015.3865%2060.44%2015.2528%2061.0665%2014.9854C61.693%2014.718%2062.2574%2014.3019%2062.7613%2013.7354L63.9085%2014.9971C63.3391%2015.7257%2062.6286%2016.2722%2061.7736%2016.6348C60.9204%2016.9992%2060.0301%2017.1813%2059.1029%2017.1813C58.3387%2017.1813%2057.5912%2017.051%2056.8589%2016.7936C56.1265%2016.5346%2055.4714%2016.1469%2054.8953%2015.6288C54.3175%2015.1107%2053.8539%2014.4473%2053.5045%2013.6384C53.1552%2012.8296%2052.9805%2011.8837%2052.9805%2010.7991C52.9805%209.71451%2053.1552%208.74857%2053.5045%207.94808C53.8539%207.14759%2054.3175%206.48413%2054.8953%205.95771C55.4731%205.43129%2056.1265%205.04024%2056.8589%204.78121C57.5912%204.52218%2058.3387%204.39349%2059.1029%204.39349C60.0301%204.39349%2060.9204%204.57565%2061.7736%204.93997C62.6269%205.30428%2063.3391%205.85076%2063.9085%206.57772L62.7613%207.83946C62.2574%207.27293%2061.6913%206.8568%2061.0665%206.58942C60.44%206.32203%2059.8185%206.18834%2059.2004%206.18834C58.6796%206.18834%2058.1757%206.28526%2057.6886%206.47912C57.2015%206.67298%2056.7698%206.96376%2056.3953%207.35314C56.0207%207.74086%2055.72%208.22383%2055.4933%208.79704C55.2648%209.37192%2055.1523%2010.0387%2055.1523%2010.7991Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M71.9846%2015.2662L72.1559%2016.8672C71.6352%2016.949%2071.1632%2017.0126%2070.7416%2017.061C70.3184%2017.1095%2069.9438%2017.1345%2069.6196%2017.1345C69.067%2017.1345%2068.6152%2017.066%2068.2658%2016.929C67.9164%2016.792%2067.6443%2016.5814%2067.4495%2016.2973C67.2546%2016.0149%2067.1202%2015.6505%2067.0463%2015.2043C66.9724%2014.7598%2066.9288%2014.2217%2066.912%2013.59V6.35715H64.9854V4.5857H66.912V2.6438H69.2047V4.5857H72.1324V6.35715H69.2047V13.59C69.2047%2013.9459%2069.2165%2014.2334%2069.2417%2014.4523C69.2669%2014.6712%2069.3677%2014.84%2069.5474%2014.962C69.7254%2015.084%2070.0059%2015.1642%2070.3889%2015.2043C70.7702%2015.2444%2071.3043%2015.2645%2071.9863%2015.2645L71.9846%2015.2662Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M100.591%204.39163C101.435%204.35988%20102.193%204.53703%20102.86%204.92641C103.135%205.08851%20103.409%205.30242%20103.678%205.56981C103.947%205.8372%20104.185%206.17645%20104.397%206.58923C104.608%207.00201%20104.778%207.495%20104.909%208.06989C105.038%208.64477%20105.104%209.31993%20105.104%2010.097V16.9889H102.909V10.6786C102.909%209.94996%20102.823%209.31491%20102.652%208.77345C102.48%208.23199%20102.253%207.7791%20101.968%207.41479C101.682%207.05047%20101.358%206.77974%20100.992%206.60093C100.626%206.42378%20100.256%206.33354%2099.8818%206.33354C99.5072%206.33354%2099.1142%206.42211%2098.748%206.60093C98.3818%206.77974%2098.0526%207.05047%2097.7603%207.41479C97.4681%207.7791%2097.2312%208.23199%2097.0532%208.77345C96.8734%209.31658%2096.7844%209.94996%2096.7844%2010.6786V16.9889H94.5891V10.6786C94.5891%209.94996%2094.5034%209.31491%2094.3338%208.77345C94.1624%208.23199%2093.9357%207.7791%2093.6501%207.41479C93.3663%207.05047%2093.0404%206.77974%2092.6742%206.60093C92.308%206.42378%2091.9385%206.33354%2091.564%206.33354C91.1894%206.33354%2090.7963%206.42211%2090.4302%206.60093C90.064%206.77974%2089.7348%207.05047%2089.4425%207.41479C89.1502%207.7791%2088.9134%208.23199%2088.7354%208.77345C88.5556%209.31658%2088.4666%209.94996%2088.4666%2010.6786V16.9889H86.1738V4.58716H88.4666V6.74799C88.8076%206.133%2089.199%205.66841%2089.6374%205.35256C90.0758%205.03671%2090.4906%204.80609%2090.882%204.66069C91.3372%204.49859%2091.8008%204.41002%2092.2728%204.3933C92.859%204.36155%2093.42%204.45013%2093.9558%204.66069C94.4278%204.83951%2094.8948%205.13865%2095.3584%205.55811C95.822%205.97925%2096.1831%206.62599%2096.4434%207.50002C96.7525%206.69117%2097.1422%206.07618%2097.6142%205.65504C98.0862%205.23391%2098.5414%204.92641%2098.9798%204.73255C99.5005%204.52199%20100.036%204.40834%20100.591%204.3933V4.39163Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M108.933%203.34883C108.559%203.34883%20108.241%203.22015%20107.982%202.96112C107.722%202.70209%20107.593%202.38624%20107.593%202.01524C107.593%201.64424%20107.722%201.32838%20107.982%201.06935C108.243%200.810321%20108.56%200.681641%20108.933%200.681641C109.306%200.681641%20109.629%200.811992%20109.897%201.06935C110.166%201.32838%20110.3%201.64424%20110.3%202.01524C110.3%202.38624%20110.166%202.70376%20109.897%202.96112C109.629%203.22015%20109.308%203.34883%20108.933%203.34883ZM107.786%2016.989V4.58717H110.104V16.989H107.786Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M114.569%2010.7989C114.569%2011.5593%20114.684%2012.2278%20114.91%2012.801C115.137%2013.3759%20115.438%2013.8522%20115.812%2014.2332C116.187%2014.6142%20116.617%2014.9%20117.106%2015.0955C117.593%2015.2894%20118.097%2015.3863%20118.617%2015.3863C119.235%2015.3863%20119.857%2015.2526%20120.483%2014.9852C121.11%2014.7178%20121.674%2014.3017%20122.178%2013.7352L123.326%2014.9969C122.756%2015.7255%20122.046%2016.272%20121.191%2016.6347C120.337%2016.999%20119.447%2017.1811%20118.52%2017.1811C117.756%2017.1811%20117.008%2017.0508%20116.276%2016.7934C115.544%2016.5344%20114.888%2016.1467%20114.312%2015.6286C113.734%2015.1106%20113.271%2014.4471%20112.922%2013.6382C112.572%2012.8294%20112.397%2011.8835%20112.397%2010.7989C112.397%209.71433%20112.572%208.74839%20112.922%207.9479C113.271%207.14741%20113.734%206.48395%20114.312%205.95753C114.89%205.43111%20115.544%205.04006%20116.276%204.78102C117.008%204.52199%20117.756%204.39331%20118.52%204.39331C119.447%204.39331%20120.337%204.57547%20121.191%204.93979C122.044%205.3041%20122.756%205.85058%20123.326%206.57754L122.178%207.83927C121.674%207.27274%20121.108%206.85662%20120.483%206.58923C119.857%206.32185%20119.235%206.18815%20118.617%206.18815C118.097%206.18815%20117.593%206.28508%20117.106%206.47894C116.619%206.67279%20116.187%206.96358%20115.812%207.35296C115.438%207.74067%20115.137%208.22364%20114.91%208.79685C114.682%209.37174%20114.569%2010.0385%20114.569%2010.7989Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M127.764%207.62027C127.764%207.94447%20127.914%208.21855%20128.216%208.44583C128.517%208.67311%20128.895%208.89036%20129.35%209.10093C129.805%209.31149%20130.3%209.53376%20130.838%209.76773C131.374%2010.0017%20131.871%2010.2858%20132.326%2010.6167C132.781%2010.9492%20133.159%2011.3537%20133.46%2011.83C133.761%2012.3079%20133.912%2012.8861%20133.912%2013.5646C133.912%2014.1796%20133.789%2014.7177%20133.546%2015.179C133.302%2015.6402%20132.98%2016.0213%20132.581%2016.3204C132.183%2016.6195%20131.72%2016.8468%20131.191%2017.0006C130.662%2017.1543%20130.114%2017.2312%20129.545%2017.2312C128.586%2017.2312%20127.653%2017.0206%20126.751%2016.5995C125.849%2016.1783%20125.146%2015.54%20124.642%2014.6826L125.958%2013.202C126.414%2013.9306%20126.943%2014.4604%20127.544%2014.7913C128.145%2015.1238%20128.732%2015.2893%20129.301%2015.2893C129.87%2015.2893%20130.358%2015.1355%20130.764%2014.828C131.171%2014.5205%20131.374%2014.0994%20131.374%2013.5663C131.374%2013.0967%20131.223%2012.7257%20130.922%2012.45C130.621%2012.1742%20130.252%2011.9369%20129.812%2011.7347C129.373%2011.5325%20128.888%2011.3386%20128.36%2011.1515C127.831%2010.966%20127.348%2010.7303%20126.909%2010.4479C126.471%2010.1655%20126.1%209.80115%20125.799%209.35495C125.498%208.91041%20125.347%208.32383%20125.347%207.5952C125.347%207.06042%20125.456%206.5925%20125.676%206.18807C125.896%205.78365%20126.189%205.44774%20126.555%205.18035C126.921%204.91297%20127.339%204.71075%20127.811%204.57372C128.283%204.43668%20128.77%204.36816%20129.274%204.36816C130.007%204.36816%20130.717%204.50186%20131.409%204.76924C132.099%205.03663%20132.665%205.4444%20133.104%205.99422L131.811%207.32948C131.404%206.8766%20130.989%206.5457%20130.566%206.33514C130.143%206.12457%20129.744%206.01928%20129.37%206.01928C128.898%206.01928%20128.512%206.16133%20128.211%206.44376C127.91%206.72786%20127.759%207.11891%20127.759%207.62027H127.764Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M82.2257%2016.5045C82.7489%2016.5045%2083.173%2016.0825%2083.173%2015.5619C83.173%2015.0414%2082.7489%2014.6194%2082.2257%2014.6194C81.7025%2014.6194%2081.2783%2015.0414%2081.2783%2015.5619C81.2783%2016.0825%2081.7025%2016.5045%2082.2257%2016.5045Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3Cpath%20d%3D%22M83.3365%207.03215C82.799%206.22831%2082.4748%205.97596%2082.4379%205.94421C82.4076%205.97763%2081.86%206.56923%2081.3964%207.65716C81.64%207.98304%2081.7509%208.27215%2081.9071%208.71502C82.1019%209.2665%2082.201%209.91325%2082.201%2010.6402C82.201%2011.414%2082.0986%2012.0975%2081.8953%2012.6724C81.6904%2013.2489%2081.4216%2013.7336%2081.0958%2014.1146C80.7682%2014.4973%2080.3886%2014.7914%2079.9704%2014.9869C79.1322%2015.3797%2078.2067%2015.3797%2077.3686%2014.9869C76.9503%2014.7914%2076.5673%2014.4973%2076.2331%2014.1146C75.8971%2013.7319%2075.6284%2013.2472%2075.4336%2012.6707C75.2387%2012.0975%2075.1396%2011.4223%2075.1396%2010.6636C75.1396%209.90489%2075.2421%209.28823%2075.447%208.73841C75.6502%208.18692%2075.919%207.72234%2076.2465%207.35635C76.5741%206.98869%2076.957%206.70794%2077.3837%206.52077C77.8086%206.33359%2078.2554%206.24001%2078.7022%206.24001C79.149%206.24001%2079.5757%206.32858%2079.9922%206.5074C80.2492%206.61769%2080.3668%206.70125%2080.5919%206.88341C80.9396%206.36702%2081.2016%205.79715%2081.3696%205.18048C81.3528%205.17046%2081.336%205.16043%2081.3175%205.1504C80.5146%204.71088%2079.71%204.53207%2078.6888%204.48193H78.6703H78.6518C77.6306%204.53207%2076.7051%204.7794%2075.9022%205.21725C75.5528%205.40776%2075.2118%205.65008%2074.8877%205.94087C74.5652%206.23165%2074.2679%206.59764%2074.0075%207.03047C73.7455%207.46331%2073.5338%207.98304%2073.3743%208.57464C73.2164%209.16623%2073.1357%209.85977%2073.1357%2010.6369C73.1357%2011.414%2073.2164%2012.1359%2073.3743%2012.7342C73.5322%2013.3341%2073.7455%2013.8622%2074.0075%2014.3034C74.2695%2014.7446%2074.5652%2015.124%2074.8893%2015.4298C75.2135%2015.7373%2075.5562%2015.998%2075.9089%2016.2052C76.7051%2016.6548%2077.6256%2016.9171%2078.6451%2016.984H78.6703H78.6955C79.6748%2016.9205%2080.5633%2016.6731%2081.3444%2016.2503C81.0303%2015.8091%2081.0706%2015.1942%2081.467%2014.7998C81.897%2014.3719%2082.584%2014.3602%2083.0291%2014.7597C83.1332%2014.6159%2083.2357%2014.4655%2083.3314%2014.3034C83.5918%2013.8639%2083.8051%2013.3358%2083.9647%2012.7342C84.1226%2012.1326%2084.2032%2011.4273%2084.2032%2010.6369C84.2032%209.8464%2084.1226%209.16958%2083.963%208.57464C83.8034%207.98137%2083.5901%207.46164%2083.3298%207.03047L83.3365%207.03215Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20d%3D%22M77.0141%209.74781C75.4268%2011.7031%2077.7582%2014.2817%2079.7788%2013.2322C81.5173%2012.3298%2080.7883%2010.9343%2080.8152%209.58237C80.8387%208.37076%2081.4955%206.88175%2082.2547%205.94923C83.0626%204.95488%2085.1303%204.66243%2084.7238%202.9712C84.4165%201.6961%2082.6864%201.39529%2081.9104%202.3913C81.3594%203.09654%2081.7542%203.96722%2081.603%204.77607C81.3443%206.17651%2080.6153%207.36639%2079.5135%208.25545C78.7777%208.84872%2077.5365%209.10608%2077.0141%209.74781Z%22%20fill%3D%22%235BC0BE%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAUCAMAAADImI+JAAAANlBMVEX////w8vfyxcx8jbJCWpAOLHFVa5sBIWnIEC7WTGLnv8qAkLTheYpecqHx0digrMfz3+T21dqBS5WQAAAApUlEQVQoz8WTyxpFMAyEpyqOuhTv/7IntImmurAzC59kfsIIhA5wnn6iASMLgzbIT2Fk6joUaAUKBsiJm+kJ0iyuR1mQBam8Cex1dINkZ6EesSZwrR8JfdYWl7AcbCRw5ypytYmPpy6w3X6jL8HXL6PxOODgTPYEcnXmFe94cuBsdJzwpIFrRwK3WPkJLQqL2aUoUVisXjOvLizWWNyMVljrV0gz/wdhEi0lRIbcAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAbCAMAAAA5zj1cAAAApVBMVEX6vQCtFRnBPxP3tgCkSRTxsQC9miCtkjL3ugDcdwrVkwndpwauUEi3k3ecLQyvGx01YomtXy3Zhha+gw+4LiCzn4jKeBKyYgjmoAOkXUK/RhC1kJmmKh+0oKCbYwN5OAWWHxSVi0HypQNcdGsDAgC9g1j6vgSWhnLfsSXCn169cE24eBuaNwzQaiOYagW8bxWIOhqoKhPLdq4yUHR+UgVZLWaBHkAs3esWAAAAk0lEQVQ4y+WTVxLDIAxESQwBAwb33tKc3sv9j5YbWJp8JvurNzsrzYpMkCI/BU6RIt9phqIcJSOpEGBu7c2WA+iXOWmbtTmTACh42PdelSgwp+d2nXdvTjuAc3X5vL6qJo4XQEZ9qd8PXaR7yDE5GFOf6XbNRrmB8cgcKaUraJm5z4NiE4RLH3FyIUaG6Pb85XN9AIg9CvrV7UGSAAAAAElFTkSuQmCC\"","import React from \"react\";\r\nimport {\r\n Button,\r\n Menu,\r\n MenuItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Box,\r\n} from \"@mui/material\";\r\nimport ArrowDropDownIcon from \"@mui/icons-material/ArrowDropDown\";\r\nimport { SupportedLanguage } from \"./utils/translations\";\r\nimport { setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport GBFlag from \"./asset/flags/gb.png\";\r\nimport ESFlag from \"./asset/flags/es.png\";\r\n\r\ninterface LanguageOption {\r\n code: SupportedLanguage;\r\n name: string;\r\n flag: string;\r\n}\r\n\r\nconst languages: LanguageOption[] = [\r\n { code: \"en\", name: \"English\", flag: GBFlag },\r\n { code: \"es\", name: \"Spanish\", flag: ESFlag },\r\n];\r\n\r\ninterface LanguageSelectorProps {\r\n currentLanguage: SupportedLanguage;\r\n onLanguageChange: (language: SupportedLanguage) => void;\r\n}\r\n\r\nconst LanguageSelector: React.FC<LanguageSelectorProps> = ({\r\n currentLanguage,\r\n onLanguageChange,\r\n}) => {\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const currentLang = languages.find((lang) => lang.code === currentLanguage) || languages[0];\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleLanguageSelect = (languageCode: SupportedLanguage) => {\r\n // Update localStorage\r\n setI18nLocaleToStorage(languageCode);\r\n \r\n // Get current path\r\n const currentPath = window.location.pathname;\r\n const search = window.location.search;\r\n const hash = window.location.hash;\r\n \r\n // Find and replace existing locale /:locale/ with new locale\r\n const newPath = currentPath.replace(/\\/(en|es)\\//, `/${languageCode}/`);\r\n \r\n // Construct full URL and reload the page to apply translations\r\n const fullUrl = newPath + search + hash;\r\n window.location.href = fullUrl;\r\n \r\n handleClose();\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n onClick={handleClick}\r\n sx={{\r\n color: \"#1e2f97\",\r\n textTransform: \"none\",\r\n padding: \"4px 8px\",\r\n minWidth: \"auto\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"4px\",\r\n \"&:hover\": {\r\n backgroundColor: \"rgba(30, 47, 151, 0.04)\",\r\n },\r\n }}\r\n aria-label=\"Select language\"\r\n aria-controls={open ? \"language-menu\" : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? \"true\" : undefined}\r\n >\r\n <Box\r\n component=\"img\"\r\n src={currentLang.flag}\r\n alt={currentLang.name}\r\n sx={{\r\n width: \"20px\",\r\n height: \"15px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"14px\",\r\n fontWeight: 500,\r\n marginLeft: \"4px\",\r\n }}\r\n >\r\n {currentLang.code.toUpperCase()}\r\n </Box>\r\n <ArrowDropDownIcon\r\n sx={{\r\n fontSize: \"20px\",\r\n marginLeft: \"2px\",\r\n display: \"flex\",\r\n alignSelf: \"center\",\r\n }}\r\n />\r\n </Button>\r\n <Menu\r\n id=\"language-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"right\",\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n slotProps={{\r\n paper: {\r\n sx: {\r\n mt: 1,\r\n minWidth: 150,\r\n },\r\n },\r\n }}\r\n >\r\n {languages.map((language) => (\r\n <MenuItem\r\n key={language.code}\r\n onClick={() => handleLanguageSelect(language.code)}\r\n selected={language.code === currentLanguage}\r\n >\r\n <ListItemIcon>\r\n <Box\r\n component=\"img\"\r\n src={language.flag}\r\n alt={language.name}\r\n sx={{\r\n width: \"24px\",\r\n height: \"18px\",\r\n objectFit: \"cover\",\r\n borderRadius: \"2px\",\r\n }}\r\n />\r\n </ListItemIcon>\r\n <ListItemText primary={language.name} />\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </>\r\n );\r\n};\r\n\r\nexport default LanguageSelector;\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps, UserProfile } from \"./types\";\r\nimport { getUserDataFromStorage, getNotificationCountFromStorage, getMessageCountFromStorage, getI18nLocaleFromStorage, setI18nLocaleToStorage } from \"./utils/localStorage\";\r\nimport { getTranslations, SupportedLanguage } from \"./utils/translations\";\r\nimport ImpactomicsLogo from \"./asset/Impactomics.svg\";\r\nimport LanguageSelector from \"./LanguageSelector\";\r\nimport \"./styles/Header.scss\";\r\n\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({ language: languageProp }) => {\r\n // Get initial language from props, URL, localStorage, or default to 'en'\r\n const getInitialLanguage = (): SupportedLanguage => {\r\n // Priority 1: Props\r\n if (languageProp) {\r\n setI18nLocaleToStorage(languageProp);\r\n return languageProp as SupportedLanguage;\r\n }\r\n \r\n // Priority 2: URL path - pattern is /:locale/base-name/...\r\n const currentPath = window.location.pathname;\r\n const localePattern = /^\\/(en|es)(\\/|$)/;\r\n const localeMatch = currentPath.match(localePattern);\r\n if (localeMatch && localeMatch[1]) {\r\n const urlLocale = localeMatch[1] as SupportedLanguage;\r\n setI18nLocaleToStorage(urlLocale);\r\n return urlLocale;\r\n }\r\n \r\n // Priority 3: localStorage\r\n const storedLocale = getI18nLocaleFromStorage();\r\n if (storedLocale && (storedLocale === 'en' || storedLocale === 'es')) {\r\n return storedLocale as SupportedLanguage;\r\n }\r\n \r\n // Default\r\n return 'en';\r\n };\r\n\r\n const [currentLanguage, setCurrentLanguage] = React.useState<SupportedLanguage>(getInitialLanguage);\r\n const t = getTranslations(currentLanguage);\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n \r\n const [user, setUser] = React.useState<UserProfile>(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n return storedUser;\r\n }\r\n return {\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n };\r\n });\r\n\r\n const [notificationCount, setNotificationCount] = React.useState<number>(() => {\r\n const count = getNotificationCountFromStorage();\r\n return count !== null && count !== undefined ? count : 0;\r\n });\r\n \r\n const [messageCount, setMessageCount] = React.useState<number | undefined>(() => {\r\n return getMessageCountFromStorage() ?? undefined;\r\n });\r\n\r\n React.useEffect(() => {\r\n const storedUser = getUserDataFromStorage();\r\n if (storedUser && storedUser.name && storedUser.email) {\r\n setUser(storedUser);\r\n } else {\r\n setUser({\r\n name: \"Naveen\",\r\n email: \"naveen@varminer.com\",\r\n role: \"Account Owner\",\r\n });\r\n }\r\n \r\n const notifCount = getNotificationCountFromStorage();\r\n setNotificationCount(notifCount !== null && notifCount !== undefined ? notifCount : 0);\r\n \r\n const msgCount = getMessageCountFromStorage();\r\n setMessageCount(msgCount ?? undefined);\r\n\r\n // Initialize language from props if provided\r\n if (languageProp && languageProp !== currentLanguage) {\r\n setCurrentLanguage(languageProp as SupportedLanguage);\r\n setI18nLocaleToStorage(languageProp);\r\n }\r\n }, [languageProp]);\r\n\r\n const finalRoutes = DEFAULT_ROUTES;\r\n const isOnlineStatus = true;\r\n const notificationCountValue = notificationCount;\r\n \r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n const path = finalRoutes.settings.startsWith('/') \r\n ? finalRoutes.settings \r\n : `/${finalRoutes.settings}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n const path = finalRoutes.profile.startsWith('/') \r\n ? finalRoutes.profile \r\n : `/${finalRoutes.profile}`;\r\n window.location.href = path;\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n localStorage.clear();\r\n const path = finalRoutes.logout.startsWith('/') \r\n ? finalRoutes.logout \r\n : `/${finalRoutes.logout}`;\r\n window.location.href = path;\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n {t.role}: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.accountSettings}\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.profile}\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n {t.signOut}\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.messages}</p>\r\n </MenuItem>\r\n )}\r\n {notificationCountValue > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCountValue} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>{t.notifications}</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.online}\r\n aria-label={`${t.online} status badge`}\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title={t.offline}\r\n aria-label={`${t.offline} status badge`}\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>{t.profile}</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className=\"app-header\">\r\n <AppBar\r\n sx={{\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n padding: 0,\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={() => {\r\n toggleDrawer();\r\n }}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize=\"large\" />\r\n ) : (\r\n <MenuIcon fontSize=\"large\" />\r\n )}\r\n </IconButton>\r\n <Box\r\n component=\"div\"\r\n sx={{ \r\n display: { xs: \"none\", sm: \"flex\" },\r\n alignItems: 'center',\r\n marginLeft: '-5px'\r\n }}\r\n data-testid=\"impactomics-logo-wrapper\"\r\n >\r\n <img \r\n src={ImpactomicsLogo} \r\n alt=\"Impactomics\" \r\n style={{ height: '23px', width: 'auto', display: 'block' }}\r\n />\r\n </Box>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" }, alignItems: \"center\", gap: \"4px\" }}>\r\n <LanguageSelector\r\n currentLanguage={currentLanguage}\r\n onLanguageChange={(lang) => {\r\n setCurrentLanguage(lang);\r\n // The LanguageSelector component handles URL and localStorage updates\r\n }}\r\n />\r\n <IconButton\r\n size=\"large\"\r\n aria-label={notificationCountValue > 0 ? `show ${notificationCountValue} new notifications` : \"show notifications\"}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCountValue > 0 ? notificationCountValue : 0} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnlineStatus ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["React","_jsx","_jsxs","_Fragment","Button","Box","Menu","MenuItem","ListItemIcon","ListItemText","styled","Badge","List","ListItem","ListItemAvatar","Avatar","deepOrange","Typography","Divider","IconButton","AppBar","Toolbar"],"mappings":"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"}
|
package/package.json
CHANGED