{"version":3,"sources":["store/customizationReducer.js","contexts/JWTContext.js","store/constant.js","utils/Array.js","utils/Interactions.js","ui-component/Icons.js","ui-component/Logo.js","assets/scss/_themes-vars.module.scss","store/interactionsSlice.js","utils/User.js","assets/scss/_theme1.module.scss","assets/scss/_theme2.module.scss","assets/scss/_theme3.module.scss","assets/scss/_theme4.module.scss","assets/scss/_theme5.module.scss","routes/paths.js","assets/scss/_theme6.module.scss","layout/MainLayout/Header/index.js","ui-component/LogoFooter.js","layout/MainLayout/Footer/index.js","layout/MainLayout/index.js","ui-component/Loadable.js","routes/GuestRoutes.js","utils/Login.js","utils/route-guard/AuthGuard.js","routes/UserRoutes.js","utils/route-guard/GuestGuard.js","layout/NoLayout/index.js","layout/NavMotion.js","routes/LoginRoutes.js","routes/index.js","themes/palette.js","themes/typography.js","themes/shadows.js","themes/index.js","themes/compStyleOverride.js","layout/NavigationScroll.js","ui-component/extended/Snackbar.js","App.js","index.js","utils/Axios.js","config.js","store/authReducer.js","hooks/useAuth.js","store/actions.js","ui-component/Loader.js","utils/Drugs.js","utils/ReduxPersistTransformDrugs.js","store/snackbarReducer.js","store/reducer.js","store/index.js"],"names":["setTheme","createAction","initialState","fontFamily","config","borderRadius","outlinedFilled","navType","theme","presetColor","customizationReducer","state","action","type","payload","isLoggedIn","isInitialized","user","verifyToken","token","jwtDecode","exp","Date","now","setSession","validate","localStorage","setItem","JSON","stringify","axios","defaults","headers","common","Authorization","removeItem","JWTContext","createContext","JWTProvider","children","useReducer","authReducer","dispatch","useState","refreshTimer","setRefreshTimer","useEffect","init","parse","window","getItem","LOGIN","startRefreshTimer","LOGOUT","refreshInterval","refreshToken","timer","setInterval","stopRefreshTimer","Math","max","clearInterval","login","email","password","post","response","data","handleNewToken","ipLogin","decoded","sub","role","dbu","firstName","fname","lastName","lname","cin","tin","logout","delete","register","licenseAgreement","confirmEmail","code","forgotPassword","restorePassword","changePassword","newPassword","confirmNewPassword","old","new","confirm","updateProfile","companyIdentificationNumber","taxIdentificationNumber","undefined","Provider","value","gridSpacing","pushSorted","el","arr","compare","x","y","length","push","isLast","i","len","splice","padSukl","a","slice","getOrCreateDrugLeft","name","drugLeft","find","sukl","highestAssessment","drugs","getOrCreateDrugRight","drugRight","interactions","assessment","pushInteraction","interaction","mirror","atc1","atc2","found","pair","atcPairs","newInteraction","normalizeDrugs","res","forEach","drugLeft1","sukl1","drugLeft2","sukl2","drugRight1","drugRight2","normalizeFood","drugFirst","HeartIcon","props","viewBox","d","ElderlyIcon","InfoIcon","PLIIcon","BookIcon","AcademyIcon","RotateToLandscape","Visa","fill","width","height","rx","id","x1","y1","x2","y2","gradientUnits","offset","stopColor","MasterCard","GooglePay","ApplePay","Bank","Attention","CE","MD","Book","Factory","points","Logo","useTheme","xmlns","palette","mode","module","exports","getDrugs","createAsyncThunk","arg","thunkAPI","getState","get","version","apiVersion","drug","atc","status","SNACKBAR_OPEN","open","message","variant","alertSeverity","fulfillWithValue","interactionsSlice","createSlice","selectedDrugs","reducers","setSelectedDrugs","extraReducers","builder","addCase","fulfilled","actions","hasDbAccess","path","root","sublink","ROOTS_HOME","ROOTS_INTERACTIONS","ROOTS_ABOUT_DATABASE","ROOTS_ACCOUNT","PATH_HOME","PATH_AUTH","confirmEmail2","restorePassword2","PATH_INTERACTIONS","pli","PATH_ABOUT_INTERACTIONS","PATH_ABOUT_DATABASE","databaseCreation","evaluationOfInteractions","workWithDatabse","glossary","termsAndConditions","PATH_ACCOUNT","extendLicense","paymentStatus","NestedListItemButton","styled","ListItemButton","paddingLeft","Tooltip","arrow","placement","TransitionComponent","Zoom","TransitionProps","timeout","Header","useDispatch","useAuth","navigate","useNavigate","mdDown","useMediaQuery","breakpoints","down","anchorAboutDb","setAnchorAboutDb","openAboutDb","Boolean","anchorAccount","setAnchorAccount","openAccount","drawerToggle","setDrawerToggle","expandAboutDatabase","setExpandAboutDatabase","drawerToggler","event","key","toggleThemeMode","handleLogin","replace","handleLogout","handleAccountClose","console","error","handleAboutDbClose","Container","disableGutters","Toolbar","Typography","component","sx","flexGrow","textAlign","title","Link","RouterLink","to","Stack","direction","display","xs","md","spacing","Button","textTransform","color","text","primary","onClick","currentTarget","Menu","anchorEl","onClose","MenuListProps","MenuItem","IconButton","ListItemIcon","Box","size","Drawer","anchor","List","style","textDecoration","href","onKeyDown","ListItemText","disablePadding","LogoFooter","hover","setHover","onMouseEnter","onMouseLeave","FooterLink","alignItems","fontsize","marginRight","opacity","FooterCard","Card","borderBottomLeftRadius","borderBottomRightRadius","border","borderBottom","borderColor","background","default","FooterSubCard","padding","margin","borderTop","FooterPage","CardContent","Grid","container","item","sm","target","underline","justifyContent","getFullYear","str","year","parseInt","month","day","getDbVersion","Body","flexDirection","minHeight","backgroundColor","light","flexShrink","flexBasis","dark","grey","Footer","MainContainer","MainLayout","Alert","severity","toLocaleDateString","Loadable","Component","fallback","Loader","HomePage","lazy","AboutInteractionsPage","DatabaseCreationPage","EvaluationOfInteractionsPage","WorkWithDatabsePage","GlossaryPage","LicenseAgreementPage","TermsAndConditionsPage","GuestRoutes","element","getLoginWithReturnUrl","url","URL","location","basename","pathname","startsWith","substring","encodeURIComponent","search","AuthGuard","useSearchParams","searchParams","setSearchParams","ott","reload","then","resp","catch","err","propTypes","PropTypes","node","InteractionsPage","PLIPage","AccountPage","ExtendLicensePage","PaymentStatusPage","UserRoutes","GuestGuard","NoLayout","NavMotion","motion","div","initial","animate","exit","variants","scale","in","out","transition","ease","duration","AuthLogin","NotFoundPage","AuthRegister","AuthConfirmEmail","AuthForgotPassword","AuthRestorePassword","LoginRoutes","ThemeRoutes","useRoutes","themePalette","customization","black","colors","darkPaper","darkPrimaryLight","primaryLight","main","darkPrimaryMain","primaryMain","darkPrimaryDark","primaryDark","darkPrimary200","primary200","darkPrimary800","primary800","secondary","darkSecondaryLight","secondaryLight","darkSecondaryMain","secondaryMain","darkSecondaryDark","secondaryDark","darkSecondary200","secondary200","darkSecondary800","secondary800","errorLight","errorMain","errorDark","orange","orangeLight","orangeMain","orangeDark","warning","warningLight","warningMain","warningDark","success","successLight","success200","successMain","successDark","grey50","grey100","darkTextSecondary","heading","darkTextPrimary","textDark","darkLevel1","darkLevel2","darkBackground","hint","paper","backgroundDefault","themeTypography","h6","fontWeight","fontSize","h5","h4","h3","h2","h1","subtitle1","subtitle2","caption","body1","lineHeight","body2","letterSpacing","button","customInput","marginTop","marginBottom","top","left","grey500","mainContent","menuCaption","subMenuCaption","commonAvatar","cursor","smallAvatar","mediumAvatar","largeAvatar","createCustomShadow","transparent","alpha","z1","z8","z12","z16","z20","z24","customShadows","grey600","theme1","theme2","theme3","theme4","theme5","theme6","themeOption","menuSelected","menuSelectedBack","divider","darkTextTitle","grey700","grey900","grey200","themeOptions","rtlLayout","mixins","toolbar","typography","themes","createTheme","components","bgColor","MuiButton","styleOverrides","MuiPaper","defaultProps","elevation","backgroundImage","rounded","MuiCardHeader","MuiCardContent","MuiCardActions","MuiAlert","outlined","MuiListItemButton","paddingTop","paddingBottom","MuiListItemIcon","minWidth","MuiListItemText","MuiInputBase","input","MuiOutlinedInput","grey400","inputAdornedStart","notchedOutline","MuiSlider","grey300","mark","valueLabel","MuiAutocomplete","popper","boxShadow","MuiDivider","MuiSelect","select","MuiCheckbox","MuiAvatar","MuiChip","MuiTimelineContent","MuiTreeItem","label","MuiTimelineDot","MuiInternalDateTimePickerTabs","tabs","MuiTabs","flexContainer","MuiDialog","MuiTableCell","MuiTooltip","tooltip","MuiDialogTitle","componentStyleOverrides","NavigationScroll","useLocation","scrollTo","behavior","SlideLeft","Slide","SlideUp","SlideRight","SlideDown","Grow","Fade","Snackbar","setOpen","snackbarInitial","useSelector","snackbar","handleClose","reason","anchorOrigin","autoHideDuration","e","v","bgcolor","actionButton","close","App","StyledEngineProvider","injectFirst","ThemeProvider","CssBaseline","ReactDOM","render","StrictMode","store","loading","persistor","persister","document","getElementById","axiosServices","create","withCredentials","baseURL","interceptors","use","setTimeout","Promise","reject","defaultPath","i18n","jwt","secret","context","useContext","Error","LoaderWrapper","position","zIndex","createDrugsLookup","drugsLookup","suklCodes","split","join","normalizeSuklCodes","suklCode","vertical","horizontal","snackbarReducer","actionTypes","reducer","combineReducers","auth","persistReducer","storage","keyPrefix","transforms","createTransform","fullState","whitelist","interactionsReducer","configureStore","devTools","process","middleware","thunk","persistStore"],"mappings":"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","file":"static/js/main.0c736365.chunk.js","sourcesContent":["import { createAction } from '@reduxjs/toolkit'\n\n// project imports\nimport config from 'config';\n\n// action - customization reducer\nexport const setTheme = createAction('customization/setTheme')\n\nexport const initialState = {\n fontFamily: config.fontFamily,\n borderRadius: config.borderRadius,\n outlinedFilled: config.outlinedFilled,\n navType: config.theme,\n presetColor: config.presetColor\n};\n\n// ==============================|| CUSTOMIZATION REDUCER ||============================== //\n\nconst customizationReducer = (state = initialState, action) => {\n switch (action.type) {\n case setTheme.type:\n return {\n ...state,\n navType: action.payload\n };\n default:\n return { ...state };\n }\n};\n\nexport default customizationReducer;\n","import PropTypes from 'prop-types';\r\nimport { createContext, useEffect, useReducer, useState } from 'react';\r\n\r\n// third-party\r\nimport jwtDecode from 'jwt-decode';\r\n\r\n// reducer - state management\r\nimport { LOGIN, LOGOUT } from 'store/authReducer';\r\nimport authReducer from 'store/authReducer';\r\n\r\n// project imports\r\nimport Loader from 'ui-component/Loader';\r\nimport axios from 'utils/Axios';\r\n\r\n// constant\r\nconst initialState = {\r\n isLoggedIn: false,\r\n isInitialized: false,\r\n user: null\r\n};\r\n\r\nconst verifyToken = (token) => {\r\n if (!token) {\r\n return false;\r\n }\r\n const decoded = jwtDecode(token);\r\n /**\r\n * Property 'exp' does not exist on type '(token: string, options?: JwtDecodeOptions | undefined) => T'.\r\n */\r\n return decoded.exp > Date.now() / 1000;\r\n};\r\n\r\nconst setSession = (user, validate) => {\r\n if (user && user.token && verifyToken(user.token)) {\r\n localStorage.setItem('user', JSON.stringify(user));\r\n axios.defaults.headers.common.Authorization = `Bearer ${user.token}`;\r\n } else {\r\n localStorage.removeItem('user');\r\n delete axios.defaults.headers.common.Authorization;\r\n }\r\n};\r\n\r\n// ==============================|| JWT CONTEXT & PROVIDER ||============================== //\r\nconst JWTContext = createContext(null);\r\n\r\nexport const JWTProvider = ({ children }) => {\r\n const [state, dispatch] = useReducer(authReducer, initialState);\r\n const [refreshTimer, setRefreshTimer] = useState(null);\r\n\r\n useEffect(() => {\r\n const init = async () => {\r\n const user = JSON.parse(window.localStorage.getItem('user'));\r\n if (user && user.token && verifyToken(user.token)) {\r\n\r\n setSession(user);\r\n\r\n dispatch({\r\n type: LOGIN,\r\n payload: {\r\n isLoggedIn: true,\r\n user\r\n }\r\n });\r\n\r\n startRefreshTimer(user.token);\r\n } else {\r\n dispatch({\r\n type: LOGOUT\r\n });\r\n }\r\n };\r\n\r\n init();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const startRefreshTimer = (token) => {\r\n const decoded = jwtDecode(token);\r\n const expirationTime = decoded.exp * 1000; // Převod exp času na milisekundy\r\n\r\n // Čas do vypršení tokenu mínus určitý časový polštář (12 hodin)\r\n const refreshInterval = expirationTime - Date.now() - 43200000;\r\n\r\n // Nastavení intervalu pro obnovu tokenu\r\n if (refreshInterval < 0) {\r\n refreshToken();\r\n }\r\n else {\r\n const timer = setInterval(() => {\r\n refreshToken();\r\n stopRefreshTimer();\r\n }, Math.max(refreshInterval, 0));\r\n setRefreshTimer(timer);\r\n }\r\n };\r\n\r\n const stopRefreshTimer = () => {\r\n // Zastavení intervalu pro obnovu tokenu\r\n clearInterval(refreshTimer);\r\n setRefreshTimer(null);\r\n };\r\n\r\n const login = async (email, password) => {\r\n const response = await axios.post('/auth', { email, password });\r\n const { token } = response.data;\r\n handleNewToken(token);\r\n };\r\n\r\n const ipLogin = async (email ) => {\r\n const response = await axios.post('/auth/ip', { email });\r\n const { token } = response.data;\r\n handleNewToken(token);\r\n };\r\n\r\n const handleNewToken = (token) => {\r\n const decoded = jwtDecode(token);\r\n\r\n const user =\r\n {\r\n email: decoded.sub,\r\n role: decoded.role,\r\n dbu: decoded.dbu,\r\n firstName: decoded.fname,\r\n lastName: decoded.lname,\r\n cin: decoded.cin,\r\n tin: decoded.tin,\r\n token: token\r\n };\r\n\r\n setSession(user);\r\n dispatch({\r\n type: LOGIN,\r\n payload: {\r\n isLoggedIn: true,\r\n user\r\n }\r\n });\r\n startRefreshTimer(user.token);\r\n };\r\n\r\n const logout = async () => {\r\n try { await axios.delete(`/auth`); }\r\n catch(err) {}\r\n stopRefreshTimer();\r\n setSession(null);\r\n dispatch({ type: LOGOUT });\r\n };\r\n\r\n const register = async (email, password, firstName, lastName, licenseAgreement) => {\r\n axios.post('/users/register', {\r\n email,\r\n firstName,\r\n lastName,\r\n password,\r\n licenseAgreement\r\n });\r\n };\r\n\r\n const confirmEmail = async(email, code, password) => {\r\n const response = await axios.post('/users/confirm', {\r\n email,\r\n token: code,\r\n password\r\n });\r\n\r\n const { token } = response.data;\r\n handleNewToken(token);\r\n };\r\n\r\n const forgotPassword = async(email) => {\r\n axios.post('/users/forgot-password', {\r\n email\r\n });\r\n\r\n };\r\n\r\n const restorePassword = async(email, code, password) => {\r\n const response = await axios.post('/users/restore-password', {\r\n email,\r\n token: code,\r\n password\r\n });\r\n\r\n const { token } = response.data;\r\n handleNewToken(token);\r\n };\r\n\r\n const changePassword = async (password, newPassword, confirmNewPassword) => {\r\n var response = await axios.post('/users/change-password',\r\n {\r\n old: password,\r\n new: newPassword,\r\n confirm: confirmNewPassword\r\n });\r\n\r\n const { token } = response.data;\r\n handleNewToken(token);\r\n }\r\n\r\n const updateProfile = async (firstName, lastName, companyIdentificationNumber, taxIdentificationNumber) => {\r\n var response = await axios.post('/users/update',\r\n {\r\n firstName,\r\n lastName,\r\n companyIdentificationNumber,\r\n taxIdentificationNumber\r\n });\r\n\r\n const { token } = response.data;\r\n handleNewToken(token);\r\n };\r\n\r\n const refreshToken = async () => {\r\n var response = await axios.post('/auth/refresh-token');\r\n\r\n const { token } = response.data;\r\n handleNewToken(token);\r\n };\r\n\r\n if (state.isInitialized !== undefined && !state.isInitialized) {\r\n return ;\r\n }\r\n\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\nJWTProvider.propTypes = {\r\n children: PropTypes.node.isRequired\r\n};\r\n\r\nexport default JWTContext;\r\n","// theme constant\nexport const gridSpacing = 3;\nexport const drawerWidth = 260;\nexport const appDrawerWidth = 320;\n","\nexport const pushSorted = (el, arr, compare = (x, y) => x > y) => {\n if(arr.length === 0) arr.push(el)\n else {\n let isLast = true;\n for (let i = 0, len = arr.length; i < len; i++) {\n if (compare(arr[i], el)) {\n isLast = false;\n arr.splice(i, 0, el);\n break;\n }\n }\n\n if(isLast) arr.push(el);\n }\n }\n","import {pushSorted} from 'utils/Array'\n\nexport const padSukl = (a) => {\n if(!a) return null;\n return(1e15 + a + '').slice(-7);\n}\n\nconst getOrCreateDrugLeft = (code, name, arr) => {\n let drugLeft = arr.find(i => i.sukl === code);\n if(!drugLeft) {\n drugLeft = {sukl: code, name, highestAssessment: 0, drugs: []};\n arr.push(drugLeft);\n }\n return drugLeft;\n};\n\nconst getOrCreateDrugRight = (drugLeft, code, name) => {\n let drugRight = drugLeft.drugs.find(i => i.code === code);\nif(!drugRight) {\n drugRight = {code, highestAssessment: 0, interactions: []};\n if(name) drugRight['name'] = name;\n pushSorted(drugRight, drugLeft.drugs, (x, y) =>\n x.interactions.length > 0 &&\n y.interactions.length > 0 &&\n x.interactions[0].assessment > y.interactions[0].assessment);\n}\nreturn drugRight;\n};\n\nconst pushInteraction = (drugRight, interaction, mirror = false) => {\n const atc1 = { code: interaction.atc1, name: interaction['atc1.name'] };\n const atc2 = { code: interaction.atc2, name: interaction['atc2.name'] };\n\n if(drugRight.highestAssessment < interaction.assessment)\n drugRight.highestAssessment = interaction.assessment;\n\n const found = drugRight.interactions.find(i => (i.assessment === interaction.assessment)\n || (i.assessment > 6 && interaction.assessment > 6));\n\n const pair = mirror ? {atc1: atc2, atc2: atc1} : {atc1, atc2};\n if(found) {\n found.atcPairs.push(pair);\n }\n else {\n const newInteraction = { assessment: interaction.assessment, atcPairs: [pair] };\n pushSorted(newInteraction, drugRight.interactions, (x, y) => x.assessment < y.assessment);\n }\n};\n\nexport const normalizedInteractions = (interactions) => {\n interactions.forEach(interaction => {\n interaction.sukl1 = padSukl(interaction.sukl1);\n interaction.sukl2 = padSukl(interaction.sukl2);\n });\n\n return interactions;\n}\n\nexport const normalizeDrugs = (interactions) => {\n let res = [];\n interactions.forEach(interaction => {\n const drugLeft1 = getOrCreateDrugLeft(interaction.sukl1, interaction['sukl1.name'], res);\n const drugLeft2 = getOrCreateDrugLeft(interaction.sukl2, interaction['sukl2.name'], res);\n\n const drugRight1 = getOrCreateDrugRight(drugLeft1, interaction.sukl2, interaction['sukl2.name']);\n const drugRight2 = getOrCreateDrugRight(drugLeft2, interaction.sukl1, interaction['sukl1.name']);\n\n pushInteraction(drugRight1, interaction);\n pushInteraction(drugRight2, interaction, true);\n\n if (drugLeft1.highestAssessment < drugRight1.highestAssessment)\n drugLeft1.highestAssessment = drugRight1.highestAssessment;\n\n if (drugLeft2.highestAssessment < drugRight2.highestAssessment)\n drugLeft2.highestAssessment = drugRight2.highestAssessment;\n });\n return res;\n}\n\nexport const normalizeFood = (interactions) => {\n let res = [];\n interactions.forEach(interaction => {\n const drugFirst = interaction.sukl1 ? true : false;\n const drugLeft = getOrCreateDrugLeft(\n drugFirst ? interaction.sukl1 : interaction.sukl2,\n drugFirst ? interaction['sukl1.name'] : interaction['sukl2.name'],\n res);\n const drugRight = getOrCreateDrugRight(\n drugLeft,\n drugFirst ? interaction.atc2 : interaction.atc1,\n drugFirst ? interaction['atc2.name'] : interaction['atc1.name']);\n pushInteraction(drugRight, interaction, !drugFirst);\n\n if(drugLeft.highestAssessment < drugRight.highestAssessment)\n drugLeft.highestAssessment = drugRight.highestAssessment;\n });\n\n return res;\n}\n","import React from 'react'\nimport SvgIcon from '@mui/material/SvgIcon';\n\nexport function HeartIcon(props) {\n return (\n \n \n \n );\n}\n\nexport function ElderlyIcon(props) {\n return (\n \n \n \n );\n}\n\nexport function InfoIcon(props) {\n return (\n \n \n \n );\n}\n\nexport function PLIIcon(props) {\n return (\n \n \n \n );\n}\n\nexport function BookIcon(props) {\n return (\n \n \n \n );\n}\n\nexport function AcademyIcon(props) {\n return (\n \n \n \n \n );\n}\n\nexport function RotateToLandscape(props) {\n return (\n \n \n \n );\n}\n\nexport function Email(props) {\n return (\n \n \n \n );\n}\n\nexport function Visa(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function MasterCard(props) {\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport function GooglePay(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function ApplePay(props) {\n return (\n \n \n \n \n \n );\n}\n\nexport function Bank(props) {\n return (\n \n \n \n \n \n );\n}\n\nexport function Attention(props) {\n return (\n \n \n \n );\n}\n\nexport function CE(props) {\n return (\n \n \n \n );\n}\n\nexport function MD(props) {\n return (\n \n \n \n );\n}\n\nexport function Book(props) {\n return (\n \n \n \n );\n}\n\nexport function Factory(props) {\n return (\n \n \n \n );\n}\n\nexport function LogoFooter(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","// material-ui\nimport { useTheme } from '@mui/material/styles';\n\n/**\n * if you want to use image instead of uncomment following.\n *\n * import logoDark from 'assets/images/logo-dark.svg';\n * import logo from 'assets/images/logo.svg';\n *\n */\n\n// ==============================|| LOGO SVG ||============================== //\n\n\nconst Logo = () => {\n const theme = useTheme();\n\n return (\n \n \n \n \n \n );\n};\n\nexport default Logo;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"#fff\",\"primaryLight\":\"#e3f2fd\",\"primary200\":\"#90caf9\",\"primaryMain\":\"#2196f3\",\"primaryDark\":\"#1e88e5\",\"primary800\":\"#1565c0\",\"secondaryLight\":\"#ede7f6\",\"secondary200\":\"#b39ddb\",\"secondaryMain\":\"#4064aa\",\"secondaryDark\":\"#4d79ce\",\"secondary800\":\"#4527a0\",\"successLight\":\"#b9f6ca\",\"success200\":\"#69f0ae\",\"successMain\":\"#00e676\",\"successDark\":\"#00c853\",\"errorLight\":\"#ef9a9a\",\"errorMain\":\"#f44336\",\"errorDark\":\"#c62828\",\"orangeLight\":\"#fbe9e7\",\"orangeMain\":\"#ffab91\",\"orangeDark\":\"#d84315\",\"warningLight\":\"#ffa624\",\"warningMain\":\"#ffe57f\",\"warningDark\":\"#ffc107\",\"grey50\":\"#fafafa\",\"grey100\":\"#f5f5f5\",\"grey200\":\"#eee\",\"grey300\":\"#e0e0e0\",\"grey500\":\"#9e9e9e\",\"grey600\":\"#757575\",\"grey700\":\"#616161\",\"grey900\":\"#212121\",\"darkPaper\":\"#111936\",\"darkBackground\":\"#1a223f\",\"darkLevel1\":\"#29314f\",\"darkLevel2\":\"#212946\",\"darkTextTitle\":\"#d7dcec\",\"darkTextPrimary\":\"#bdc8f0\",\"darkTextSecondary\":\"#8492c4\",\"darkPrimaryLight\":\"#e3f2fd\",\"darkPrimaryMain\":\"#2196f3\",\"darkPrimaryDark\":\"#1e88e5\",\"darkPrimary200\":\"#90caf9\",\"darkPrimary800\":\"#1565c0\",\"darkSecondaryLight\":\"#d1c4e9\",\"darkSecondaryMain\":\"#4065ac\",\"darkSecondaryDark\":\"#4d79ce\",\"darkSecondary200\":\"#b39ddb\",\"darkSecondary800\":\"#6200ea\"};","import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\nimport axios from 'utils/Axios';\nimport { SNACKBAR_OPEN } from 'store/actions';\n\nconst drugListMembers = 'sukl,suklCodes,name,form.name,atc,atc.oldAgeOverallWeight';\n\nexport const getDrugs = createAsyncThunk('interactions/getDrugs', async (arg, thunkAPI) => {\n const state = thunkAPI.getState();\n\n try\n {\n const apiVersion = await (await axios.get(`/info`)).data.version;\n\n const forceUpdate = apiVersion > localStorage.getItem('data-version');\n\n if(forceUpdate || state.interactions.drugs.length === 0)\n {\n const response = await axios.get(`/drugs?rql=$m=${drugListMembers}$o=name`);\n localStorage.setItem('data-version', apiVersion);\n\n response.data.forEach(drug => {\n if (!drug['atc.oldAgeOverallWeight']) delete drug.atc;\n });\n\n return response.data;\n }\n } catch (error) {\n if (error.status !== 401) {\n thunkAPI.dispatch({\n type: SNACKBAR_OPEN,\n open: true,\n message: 'Načítání léků selhalo je možné že aplikace nebude správně fungovat.',\n variant: 'alert',\n alertSeverity: 'error',\n });\n }\n };\n\n\n return thunkAPI.fulfillWithValue(state.interactions.drugs);\n});\n\nconst initialState = {\n drugs: [],\n selectedDrugs: []\n}\n\nconst interactionsSlice = createSlice({\n name: 'interactions',\n initialState,\n reducers: {\n setSelectedDrugs: (state, action) => {\n if (state.selectedDrugs !== action.payload) {\n state.selectedDrugs = action.payload;\n }\n }\n },\n extraReducers: (builder) => {\n builder.addCase(getDrugs.fulfilled, (state, action) => {\n state.drugs = action.payload;\n });\n },\n});\n\nexport const {\n setSelectedDrugs\n} = interactionsSlice.actions;\n\nexport default interactionsSlice.reducer;\n","\n\nexport function hasDbAccess(user)\n{\n const now = Date.now();\n const dbu = user ? new Date(user.dbu * 1000) : new Date(0);\n return dbu > now;\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"#fff\",\"primaryLight\":\"#eceff1\",\"primary200\":\"#b0bec5\",\"primaryMain\":\"#607d8b\",\"primaryDark\":\"#546e7a\",\"primary800\":\"#455a64\",\"secondaryLight\":\"#e0f2f1\",\"secondary200\":\"#80cbc4\",\"secondaryMain\":\"#009688\",\"secondaryDark\":\"#00897b\",\"secondary800\":\"#00695c\",\"successLight\":\"#edf7ed\",\"success200\":\"#b6e0b3\",\"successMain\":\"#6cc067\",\"successDark\":\"#64ba5f\",\"errorLight\":\"#e48784\",\"errorMain\":\"#d9534f\",\"errorDark\":\"#d54c48\",\"orangeLight\":\"#fbe9e7\",\"orangeMain\":\"#ffab91\",\"orangeDark\":\"#d84315\",\"warningLight\":\"#fdf5ea\",\"warningMain\":\"#f0ad4e\",\"warningDark\":\"#ec9c3d\",\"grey50\":\"#fafafa\",\"grey100\":\"#f5f5f5\",\"grey200\":\"#eee\",\"grey300\":\"#e0e0e0\",\"grey500\":\"#9e9e9e\",\"grey600\":\"#757575\",\"grey700\":\"#616161\",\"grey900\":\"#212121\",\"darkPaper\":\"#060d12\",\"darkBackground\":\"#0e1b23\",\"darkLevel1\":\"#0b161d\",\"darkLevel2\":\"#14252f\",\"darkTextTitle\":\"#e4e8f7\",\"darkTextPrimary\":\"#d5d9e9\",\"darkTextSecondary\":\"#d8ddf0\",\"darkPrimaryLight\":\"#eceff1\",\"darkPrimaryMain\":\"#78919c\",\"darkPrimaryDark\":\"#587583\",\"darkPrimary200\":\"#b0bec5\",\"darkPrimary800\":\"#44606e\",\"darkSecondaryLight\":\"#e0f2f1\",\"darkSecondaryMain\":\"#009688\",\"darkSecondaryDark\":\"#00897b\",\"darkSecondary200\":\"#80cbc4\",\"darkSecondary800\":\"#00695c\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"#fff\",\"primaryLight\":\"#e4e7ec\",\"primary200\":\"#909ab0\",\"primaryMain\":\"#203461\",\"primaryDark\":\"#1c2f59\",\"primary800\":\"#132145\",\"secondaryLight\":\"#fde8ef\",\"secondary200\":\"#f6a0bd\",\"secondaryMain\":\"#ec407a\",\"secondaryDark\":\"#ea3a72\",\"secondary800\":\"#e42a5d\",\"successLight\":\"#e3f8e8\",\"success200\":\"#8be09f\",\"successMain\":\"#17c13e\",\"successDark\":\"#14bb38\",\"errorLight\":\"#e48784\",\"errorMain\":\"#d9534f\",\"errorDark\":\"#d54c48\",\"orangeLight\":\"#fbe9e7\",\"orangeMain\":\"#ffab91\",\"orangeDark\":\"#d84315\",\"warningLight\":\"#fdf5ea\",\"warningMain\":\"#f0ad4e\",\"warningDark\":\"#ec9c3d\",\"grey50\":\"#fafafa\",\"grey100\":\"#f5f5f5\",\"grey200\":\"#eee\",\"grey300\":\"#e0e0e0\",\"grey500\":\"#9e9e9e\",\"grey600\":\"#757575\",\"grey700\":\"#616161\",\"grey900\":\"#212121\",\"darkPaper\":\"#030614\",\"darkBackground\":\"#0a0f23\",\"darkLevel1\":\"#070e13\",\"darkLevel2\":\"#12172f\",\"darkTextTitle\":\"#e4e8f7\",\"darkTextPrimary\":\"#d5d9e9\",\"darkTextSecondary\":\"#d8ddf0\",\"darkPrimaryLight\":\"#ecedf1\",\"darkPrimaryMain\":\"#606d88\",\"darkPrimaryDark\":\"#586580\",\"darkPrimary200\":\"#b0b6c4\",\"darkPrimary800\":\"#44506b\",\"darkSecondaryLight\":\"#fde8ef\",\"darkSecondaryMain\":\"#ec407a\",\"darkSecondaryDark\":\"#ea3a72\",\"darkSecondary200\":\"#f6a0bd\",\"darkSecondary800\":\"#e42a5d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"#fff\",\"primaryLight\":\"#e3ebeb\",\"primary200\":\"#8bacad\",\"primaryMain\":\"#16595a\",\"primaryDark\":\"#135152\",\"primary800\":\"#0c3e3f\",\"secondaryLight\":\"#f8f0e5\",\"secondary200\":\"#e3bf91\",\"secondaryMain\":\"#c77e23\",\"secondaryDark\":\"#c1761f\",\"secondary800\":\"#b36115\",\"successLight\":\"#b9f6ca\",\"success200\":\"#69f0ae\",\"successMain\":\"#00e676\",\"successDark\":\"#00c853\",\"errorLight\":\"#ef9a9a\",\"errorMain\":\"#f44336\",\"errorDark\":\"#c62828\",\"orangeLight\":\"#fbe9e7\",\"orangeMain\":\"#ffab91\",\"orangeDark\":\"#d84315\",\"warningLight\":\"#fff8e1\",\"warningMain\":\"#ffe57f\",\"warningDark\":\"#ffc107\",\"grey50\":\"#fafafa\",\"grey100\":\"#f5f5f5\",\"grey200\":\"#eee\",\"grey300\":\"#e0e0e0\",\"grey500\":\"#9e9e9e\",\"grey600\":\"#757575\",\"grey700\":\"#616161\",\"grey900\":\"#212121\",\"darkPaper\":\"#010f17\",\"darkBackground\":\"#010606\",\"darkLevel1\":\"#02131d\",\"darkLevel2\":\"#010f17\",\"darkTextTitle\":\"#fff\",\"darkTextPrimary\":\"#fff\",\"darkTextSecondary\":\"#8492c4\",\"darkPrimaryLight\":\"#eceff1\",\"darkPrimaryMain\":\"#1f7778\",\"darkPrimaryDark\":\"#1b6f70\",\"darkPrimary200\":\"#8fbbbc\",\"darkPrimary800\":\"#125a5b\",\"darkSecondaryLight\":\"#f8f0e5\",\"darkSecondaryMain\":\"#c77e23\",\"darkSecondaryDark\":\"#c1761f\",\"darkSecondary200\":\"#e3bf91\",\"darkSecondary800\":\"#b36115\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"#fff\",\"primaryLight\":\"#e3e8e8\",\"primary200\":\"#8b9fa1\",\"primaryMain\":\"#173e43\",\"primaryDark\":\"#14383d\",\"primary800\":\"#0d282c\",\"secondaryLight\":\"#e8f6f5\",\"secondary200\":\"#9fd8d6\",\"secondaryMain\":\"#3fb0ac\",\"secondaryDark\":\"#39a9a5\",\"secondary800\":\"#299792\",\"successLight\":\"#b9f6ca\",\"success200\":\"#69f0ae\",\"successMain\":\"#00e676\",\"successDark\":\"#00c853\",\"errorLight\":\"#ef9a9a\",\"errorMain\":\"#f44336\",\"errorDark\":\"#c62828\",\"orangeLight\":\"#fbe9e7\",\"orangeMain\":\"#ffab91\",\"orangeDark\":\"#d84315\",\"warningLight\":\"#fff8e1\",\"warningMain\":\"#ffe57f\",\"warningDark\":\"#ffc107\",\"grey50\":\"#fafafa\",\"grey100\":\"#f5f5f5\",\"grey200\":\"#eee\",\"grey300\":\"#e0e0e0\",\"grey500\":\"#9e9e9e\",\"grey600\":\"#757575\",\"grey700\":\"#616161\",\"grey900\":\"#212121\",\"darkPaper\":\"#051114\",\"darkBackground\":\"#030708\",\"darkLevel1\":\"#02131d\",\"darkLevel2\":\"#051114\",\"darkTextTitle\":\"#fff\",\"darkTextPrimary\":\"#fff\",\"darkTextSecondary\":\"#ccd2eb\",\"darkPrimaryLight\":\"#e3e8e8\",\"darkPrimaryMain\":\"#3a5b5f\",\"darkPrimaryDark\":\"#14383d\",\"darkPrimary200\":\"#8b9fa1\",\"darkPrimary800\":\"#0d282c\",\"darkSecondaryLight\":\"#e8f6f5\",\"darkSecondaryMain\":\"#3fb0ac\",\"darkSecondaryDark\":\"#39a9a5\",\"darkSecondary200\":\"#9fd8d6\",\"darkSecondary800\":\"#299792\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"#fff\",\"primaryLight\":\"#e2e5e8\",\"primary200\":\"#8591a1\",\"primaryMain\":\"#0a2342\",\"primaryDark\":\"#091f3c\",\"primary800\":\"#05152b\",\"secondaryLight\":\"#e6f4f1\",\"secondary200\":\"#96d2c6\",\"secondaryMain\":\"#2ca58d\",\"secondaryDark\":\"#279d85\",\"secondary800\":\"#1b8a70\",\"successLight\":\"#b9f6ca\",\"success200\":\"#69f0ae\",\"successMain\":\"#00e676\",\"successDark\":\"#00c853\",\"errorLight\":\"#ef9a9a\",\"errorMain\":\"#f44336\",\"errorDark\":\"#c62828\",\"orangeLight\":\"#fbe9e7\",\"orangeMain\":\"#ffab91\",\"orangeDark\":\"#d84315\",\"warningLight\":\"#fff8e1\",\"warningMain\":\"#ffe57f\",\"warningDark\":\"#ffc107\",\"grey50\":\"#fafafa\",\"grey100\":\"#f5f5f5\",\"grey200\":\"#eee\",\"grey300\":\"#e0e0e0\",\"grey500\":\"#9e9e9e\",\"grey600\":\"#757575\",\"grey700\":\"#616161\",\"grey900\":\"#212121\",\"darkPaper\":\"#030c1d\",\"darkBackground\":\"#051327\",\"darkLevel1\":\"#071a33\",\"darkLevel2\":\"#091f3c\",\"darkTextTitle\":\"#d7dcec\",\"darkTextPrimary\":\"#bdc8f0\",\"darkTextSecondary\":\"#8492c4\",\"darkPrimaryLight\":\"#e2e5e8\",\"darkPrimaryMain\":\"#54657b\",\"darkPrimaryDark\":\"#2f445e\",\"darkPrimary200\":\"#8591a1\",\"darkPrimary800\":\"#05152b\",\"darkSecondaryLight\":\"#e6f4f1\",\"darkSecondaryMain\":\"#2ca58d\",\"darkSecondaryDark\":\"#279d85\",\"darkSecondary200\":\"#96d2c6\",\"darkSecondary800\":\"#1b8a70\"};","function path(root, sublink) {\n return `${root}${sublink}`;\n}\n\nconst ROOTS_HOME = '/'\nconst ROOTS_INTERACTIONS = '/kontrola-preskripce'\nconst ROOTS_ABOUT_INTERACTIONS = '/o-interakcich'\nconst ROOTS_ABOUT_DATABASE = '/o-databazi'\nconst ROOTS_ACCOUNT = '/ucet'\n\n\nexport const PATH_HOME = {\n root: ROOTS_HOME\n}\n\nexport const PATH_AUTH = {\n root: ROOTS_HOME,\n login: path(ROOTS_HOME, 'prihlasit'),\n register: path(ROOTS_HOME, 'registrovat'),\n confirmEmail: path(ROOTS_HOME, 'potvrdit-email'),\n confirmEmail2: (token) => path(ROOTS_HOME, `potvrdit-email?token=${token}`),\n forgotPassword: path(ROOTS_HOME, 'zapomenute-heslo'),\n restorePassword: path(ROOTS_HOME, 'obnovit-heslo'),\n restorePassword2: (token) => path(ROOTS_HOME, `obnovit-heslo?token=${token}`)\n}\n\nexport const PATH_INTERACTIONS = {\n root: ROOTS_INTERACTIONS,\n pli: (sukl) => path(ROOTS_INTERACTIONS, `/${sukl}`)\n}\n\nexport const PATH_ABOUT_INTERACTIONS = {\n root: ROOTS_ABOUT_INTERACTIONS\n}\n\nexport const PATH_ABOUT_DATABASE = {\n databaseCreation: path(ROOTS_ABOUT_DATABASE, '/tvorba-databaze'),\n evaluationOfInteractions: path(ROOTS_ABOUT_DATABASE, '/hodnoceni-interakci'),\n workWithDatabse: path(ROOTS_ABOUT_DATABASE, '/prace-s-databazi'),\n glossary: path(ROOTS_ABOUT_DATABASE, '/slovnik-pojmu'),\n licenseAgreement: path(ROOTS_ABOUT_DATABASE, '/licencni-ujednani'),\n termsAndConditions: path(ROOTS_ABOUT_DATABASE, '/obchodni-podminky'),\n};\n\nexport const PATH_ACCOUNT = {\n root: ROOTS_ACCOUNT,\n extendLicense: ROOTS_ACCOUNT, //path(ROOTS_ACCOUNT, '/prodlouzit-licenci'),\n paymentStatus: ROOTS_ACCOUNT //path(ROOTS_ACCOUNT, '/stav-platby')\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"#fff\",\"primaryLight\":\"#e8eaf6\",\"primary200\":\"#9fa8da\",\"primaryMain\":\"#3f51b5\",\"primaryDark\":\"#3949ab\",\"primary800\":\"#283593\",\"secondaryLight\":\"#e8eaf6\",\"secondary200\":\"#9fa8da\",\"secondaryMain\":\"#3f51b5\",\"secondaryDark\":\"#3949ab\",\"secondary800\":\"#283593\",\"successLight\":\"#b9f6ca\",\"success200\":\"#69f0ae\",\"successMain\":\"#00e676\",\"successDark\":\"#00c853\",\"errorLight\":\"#ef9a9a\",\"errorMain\":\"#f44336\",\"errorDark\":\"#c62828\",\"orangeLight\":\"#fbe9e7\",\"orangeMain\":\"#ffab91\",\"orangeDark\":\"#d84315\",\"warningLight\":\"#fff8e1\",\"warningMain\":\"#ffe57f\",\"warningDark\":\"#ffc107\",\"grey50\":\"#fafafa\",\"grey100\":\"#f5f5f5\",\"grey200\":\"#eee\",\"grey300\":\"#e0e0e0\",\"grey500\":\"#9e9e9e\",\"grey600\":\"#757575\",\"grey700\":\"#616161\",\"grey900\":\"#212121\",\"darkPaper\":\"#111936\",\"darkBackground\":\"#1a223f\",\"darkLevel1\":\"#29314f\",\"darkLevel2\":\"#212946\",\"darkTextTitle\":\"#d7dcec\",\"darkTextPrimary\":\"#bdc8f0\",\"darkTextSecondary\":\"#8492c4\",\"darkPrimaryLight\":\"#eeedfd\",\"darkPrimaryMain\":\"#7267ef\",\"darkPrimaryDark\":\"#6a5fed\",\"darkPrimary200\":\"#b9b3f7\",\"darkPrimary800\":\"#554ae8\",\"darkSecondaryLight\":\"#eeedfd\",\"darkSecondaryMain\":\"#7267ef\",\"darkSecondaryDark\":\"#6a5fed\",\"darkSecondary200\":\"#b9b3f7\",\"darkSecondary800\":\"#554ae8\"};","import { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useNavigate } from 'react-router-dom';\n\n// material-ui\nimport { styled, useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport {\n Box,\n Button,\n Container,\n Drawer,\n IconButton,\n Link,\n List,\n ListItemButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Stack,\n Toolbar,\n Typography\n} from '@mui/material';\nimport MuiTooltip from '@mui/material/Tooltip';\nimport Zoom from '@mui/material/Zoom';\n\n// project imports\nimport Logo from 'ui-component/Logo';\nimport { setTheme } from 'store/customizationReducer';\nimport useAuth from 'hooks/useAuth';\n\n// assets\nimport MenuIcon from '@mui/icons-material/Menu';\nimport DarkModeIcon from '@mui/icons-material/DarkMode';\nimport LightModeIcon from '@mui/icons-material/LightMode';\nimport LoginIcon from '@mui/icons-material/Login';\nimport LogoutIcon from '@mui/icons-material/Logout';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts';\nimport PersonIcon from '@mui/icons-material/Person';\n\nimport { PATH_HOME, PATH_AUTH, PATH_INTERACTIONS, PATH_ABOUT_INTERACTIONS, PATH_ABOUT_DATABASE, PATH_ACCOUNT } from 'routes/paths'\n\nconst NestedListItemButton = styled(ListItemButton)(({ theme }) => ({\n paddingLeft: '32px'\n}));\n\nconst Tooltip = styled(({ ...props }) => (\n \n))``;\n\n// ==============================|| MINIMAL LAYOUT APP BAR ||============================== //\n\nconst Header = ({ ...others }) => {\n const dispatch = useDispatch();\n const theme = useTheme();\n const { logout, isLoggedIn } = useAuth();\n const navigate = useNavigate();\n const mdDown = useMediaQuery((theme) => theme.breakpoints.down('md'));\n\n const [anchorAboutDb, setAnchorAboutDb] = useState(null);\n const openAboutDb = Boolean(anchorAboutDb);\n\n const [anchorAccount, setAnchorAccount] = useState(null);\n const openAccount = Boolean(anchorAccount);\n\n const [drawerToggle, setDrawerToggle] = useState(false);\n\n const [expandAboutDatabase, setExpandAboutDatabase] = useState(false);\n\n /** Method called on multiple components with different event types */\n const drawerToggler = (open) => (event) => {\n if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\n return;\n }\n setDrawerToggle(open);\n };\n\n const toggleThemeMode = (event) => {\n dispatch(setTheme(theme.palette.mode === 'dark' ? 'light' : 'dark'));\n };\n\n const handleLogin = async () => {\n navigate(PATH_AUTH.login, { replace: true });\n };\n\n const handleLogout = async () => {\n handleAccountClose();\n try {\n await logout();\n } catch (err) {\n console.error(err);\n }\n };\n\n const handleAboutDbOpen = (event) => {\n if(!anchorAboutDb) setAnchorAboutDb(event.currentTarget);\n };\n\n const handleAboutDbClose = () => {\n setAnchorAboutDb(null);\n };\n\n const toggleExpandAboutDatabase = () => {\n setExpandAboutDatabase(!expandAboutDatabase);\n };\n\n const handleAccountOpen = (event) => {\n if(!anchorAccount) setAnchorAccount(event.currentTarget);\n };\n\n const handleAccountClose = () => {\n setAnchorAccount(null);\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n O Databázi\n \n \n Tvorba databáze\n Hodnocení interakcí\n Práce s databází\n Slovník pojmů\n Licenční ujednání\n Obchodní podmínky\n \n \n \n \n {\n theme.palette.mode === 'dark' ? : \n }\n \n \n \n {isLoggedIn\n ?\n <>\n \n \n \n {\n \n }\n \n \n \n \n \n \n \n \n Účet\n \n \n \n \n \n Odhlásit\n \n \n \n :\n \n \n \n {\n \n }\n \n \n \n }\n \n \n \n {theme.palette.mode === 'dark' ? : }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n { expandAboutDatabase ? : }\n \n { expandAboutDatabase ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n : <> }\n { isLoggedIn\n ?\n \n \n \n \n \n : <>\n }\n \n {\n drawerToggler(false)(event);\n isLoggedIn ? handleLogout(event) : handleLogin(event);\n }}\n component=\"span\"\n >\n \n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default Header;\n","import { useState } from 'react';\n// material-ui\nimport { useTheme } from '@mui/material/styles';\n\n/**\n * if you want to use image instead of uncomment following.\n *\n * import logoDark from 'assets/images/logo-dark.svg';\n * import logo from 'assets/images/logo.svg';\n *\n */\n\n// ==============================|| LOGO SVG ||============================== //\n\nconst LogoFooter = () => {\n const theme = useTheme();\n const [hover, setHover] = useState(false);\n const color = hover\n ? theme.palette.mode === 'dark' ? '#9ea8ce' : '#818181'\n : theme.palette.text.primary;\n\n return (\n setHover(true)} onMouseLeave={() => setHover(false)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default LogoFooter;\n","// material-ui\nimport { useTheme, styled } from '@mui/material/styles';\nimport { Grid, Link, Typography } from '@mui/material';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport SchoolIcon from '@mui/icons-material/School';\n\n// project imports\nimport { gridSpacing } from 'store/constant';\nimport LogoFooter from 'ui-component/LogoFooter';\n\n// assets\nimport { AcademyIcon } from 'ui-component/Icons';\n\n// styles\nconst FooterLink = styled(Link)(({ theme }) => ({\n color: `${theme.palette.text.primary} !important`,\n display: 'inline-flex',\n alignItems: 'center',\n textDecoration: 'none !important',\n '& svg': {\n fontsize: '1.125rem',\n marginRight: 8\n },\n '&:hover': {\n opacity: 0.8\n }\n}));\n\nconst FooterCard = styled(Card)(({ theme }) => ({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n border: '1px solid',\n borderBottom: 0,\n borderColor: theme.palette.mode === 'dark' ? theme.palette.background.default : theme.palette.primary[200] + 75,\n [theme.breakpoints.down('md')]: {\n textAlign: 'center'\n }\n\n}));\n\nconst FooterSubCard = styled(Card)(({ theme }) => ({\n padding: 0,\n margin: 0,\n borderRadius: 0,\n border: '1px solid',\n borderTop: 0,\n borderBottom: 0,\n borderColor: theme.palette.mode === 'dark' ? theme.palette.background.default : theme.palette.primary[200] + 75,\n background: theme.palette.mode === 'dark' ? '#1a223f' : '#f7f7f7',\n [theme.breakpoints.down('md')]: {\n textAlign: 'center'\n }\n}));\n\n// ==============================|| LANDING - FOOTER PAGE ||============================== //\n\nconst FooterPage = () => {\n const theme = useTheme();\n\n const getYear = () => {\n const currentYear = new Date().getFullYear();\n return currentYear;\n };\n\n const getDbVersion = () => {\n const str = localStorage.getItem('data-version');\n if (!str || str.length < 6) return \"\"; // Pokud není platný údaj, vrátí prázdný string\n\n const year = 2000 + parseInt(str.slice(0, 2), 10);\n const month = parseInt(str.slice(2, 4), 10);\n const day = parseInt(str.slice(4, 6), 10);\n\n return `\\u00A0\\u00A0\\u00A0\\u00A0Databáze: ${day}.${month}.${year}`;\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n Interakční akademie\n \n \n \n \n \n Léková akademie\n \n \n\n \n \n \n \n \n \n \n \n \n DrugAgency a.s. © {getYear()} | Všechna práva vyhrazena\n \n \n \n \n \n \n Verze: 3.0.257{getDbVersion()}\n \n \n \n \n \n \n \n );\n};\n\nexport default FooterPage;\n","//import { Fragment, useState, useEffect } from 'react';\nimport { Fragment } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { styled } from '@mui/material/styles';\n\n// material-ui\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useTheme } from '@mui/material/styles';\nimport { Container, IconButton, Tooltip } from '@mui/material';\nimport Alert from '@mui/material/Alert';\nimport PersonIcon from '@mui/icons-material/Person';\n// import Collapse from '@mui/material/Collapse';\n// import CloseIcon from '@mui/icons-material/Close';\n\n// project imports\nimport HeaderOutlet from 'layout/MainLayout/Header';\nimport FooterOutlet from 'layout/MainLayout/Footer';\nimport useAuth from 'hooks/useAuth';\nimport { hasDbAccess } from 'utils/User';\n\n// assets\nimport { PATH_ACCOUNT } from 'routes/paths'\n\nconst Body = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '100vh',\n // minWidth: '25rem',\n backgroundColor: theme.palette.mode === 'dark' ? theme.palette.background.default : theme.palette.primary.light\n}));\n\nconst Header = styled('div')(({ theme }) => ({\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto',\n backgroundColor: theme.palette.background.default,\n borderBottom: '1px solid',\n borderColor: theme.palette.mode === 'dark' ? theme.palette.dark.dark : theme.palette.grey[200],\n color: theme.palette.text.dark\n}));\n\nconst Footer = styled('div')(({ theme }) => ({\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto'\n}));\n\nconst MainContainer = styled(Container)(({ theme }) => ({\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: 'auto',\n minHeight: 0,\n padding: '0 20px 0 20px',\n display: 'flex',\n flexDirection: 'column'\n}));\n\nconst MainLayout = () => {\n const theme = useTheme();\n const { user, isLoggedIn } = useAuth();\n const mdDown = useMediaQuery(theme.breakpoints.down('md'));\n\n // const [openInfo, setOpenInfo] = useState(() => {\n // const saved = localStorage.getItem(\"openInfo\");\n // return saved !== null ? JSON.parse(saved) : true;\n // });\n\n // useEffect(() => {\n // localStorage.setItem(\"openInfo\", JSON.stringify(openInfo));\n // }, [openInfo]);\n\n return (\n \n { !isLoggedIn || hasDbAccess(user)\n ? \n :\n \n {user.dbu\n ? `Platnost Vaší licence vypršela ${new Date(user.dbu * 1000).toLocaleDateString('cs-CZ')}`\n : 'Pro používání aplikace je nutná platná licence' }\n\n \n \n \n \n \n \n \n \n\n }\n
\n \n
\n\n \n {/* \n {\n setOpenInfo(false);\n }}\n >\n \n \n }\n sx={{ mt: 2 }}\n >\n Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.\n \n */}\n \n \n\n
\n \n \n \n
\n \n );\n};\n\nexport default MainLayout;\n","import { Suspense } from 'react';\n\n// project imports\nimport Loader from './Loader';\n\n// ==============================|| LOADABLE - LAZY LOADING ||============================== //\n\nconst Loadable = (Component) => (props) => (\n }>\n \n \n);\n\nexport default Loadable;\n","import { lazy } from 'react';\n\n// project imports\nimport MainLayout from 'layout/MainLayout';\nimport Loadable from 'ui-component/Loadable';\nimport { PATH_HOME, PATH_ABOUT_INTERACTIONS, PATH_ABOUT_DATABASE } from 'routes/paths'\n\n// Home\nconst HomePage = Loadable(lazy(() => import('views/home')));\n// O interakcích\nconst AboutInteractionsPage = Loadable(lazy(() => import('views/about-interactions')));\n// O databázi\nconst DatabaseCreationPage = Loadable(lazy(() => import('views/about-database/DatabaseCreation')));\nconst EvaluationOfInteractionsPage = Loadable(lazy(() => import('views/about-database/EvaluationOfInteractions')));\nconst WorkWithDatabsePage = Loadable(lazy(() => import('views/about-database/WorkWithDatabse')));\nconst GlossaryPage = Loadable(lazy(() => import('views/about-database/Glossary')));\nconst LicenseAgreementPage = Loadable(lazy(() => import('views/about-database/LicenseAgreement')));\nconst TermsAndConditionsPage = Loadable(lazy(() => import('views/about-database/TermsAndConditions')));\n\n\n// ==============================|| MAIN ROUTING ||============================== //\n\nconst GuestRoutes = {\n path: '/',\n element: (\n \n ),\n children: [\n {\n path: PATH_HOME.root,\n element: \n },\n {\n path: PATH_ABOUT_INTERACTIONS.root,\n element: \n },\n {\n path: PATH_ABOUT_DATABASE.databaseCreation,\n element: \n },\n {\n path: PATH_ABOUT_DATABASE.evaluationOfInteractions,\n element: \n },\n {\n path: PATH_ABOUT_DATABASE.workWithDatabse,\n element: \n },\n {\n path: PATH_ABOUT_DATABASE.glossary,\n element: \n },\n {\n path: PATH_ABOUT_DATABASE.licenseAgreement,\n element: \n },\n {\n path: PATH_ABOUT_DATABASE.termsAndConditions,\n element: \n },\n ]\n};\n\nexport default GuestRoutes;\n","import { PATH_AUTH } from 'routes/paths'\nimport config from 'config';\n\nexport const getLoginWithReturnUrl = () => {\n const url = new URL(window.location);\n const basename = config.basename || ''; // Získání hodnoty basename z konfigurace\n let pathname = url.pathname;\n\n // Odstranění basename z URL, pokud je na začátku\n if (pathname.startsWith(basename)) {\n pathname = pathname.substring(basename.length) || '/';\n }\n\n const redirectTo = PATH_AUTH.login +\n ((url.pathname === '/')\n ? ''\n : '?url=' + encodeURIComponent(pathname + url.search));\n return redirectTo;\n}\n","import PropTypes from 'prop-types';\nimport { useNavigate, useSearchParams } from 'react-router-dom';\n\n// project imports\nimport useAuth from 'hooks/useAuth';\nimport { useEffect } from 'react';\nimport axios from 'utils/Axios';\nimport { getLoginWithReturnUrl } from 'utils/Login';\n\n// ==============================|| AUTH GUARD ||============================== //\n\n/**\n * Authentication guard for routes\n * @param {PropTypes.node} children children element/node\n */\nconst AuthGuard = ({ children }) => {\n const { isLoggedIn, handleNewToken } = useAuth();\n const navigate = useNavigate();\n let [searchParams, setSearchParams] = useSearchParams();\n\n useEffect(() => {\n const ott = searchParams.get('ott');\n if (!isLoggedIn) {\n if (ott) {\n axios.post(`/auth/ott`, { token: ott }).then(resp => {\n handleNewToken(resp.data.token);\n }).catch(err => {\n\n navigate(getLoginWithReturnUrl(), { replace: true });\n });\n }\n else {\n navigate(getLoginWithReturnUrl(), { replace: true });\n }\n }\n else {\n if (ott) {\n searchParams.delete('ott');\n setSearchParams(searchParams);\n window.location.reload();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoggedIn]);\n\n return children;\n};\n\nAuthGuard.propTypes = {\n children: PropTypes.node\n};\n\nexport default AuthGuard;\n","import { lazy } from 'react';\n\n// project imports\nimport MainLayout from 'layout/MainLayout';\nimport Loadable from 'ui-component/Loadable';\nimport AuthGuard from 'utils/route-guard/AuthGuard';\n\nimport { PATH_INTERACTIONS, PATH_ACCOUNT } from 'routes/paths'\n\n// Kontrola preskripce\nconst InteractionsPage = Loadable(lazy(() => import('views/interactions')));\nconst PLIPage = Loadable(lazy(() => import('views/interactions/PLI')));\nconst AccountPage = Loadable(lazy(() => import('views/account')));\nconst ExtendLicensePage = Loadable(lazy(() => import('views/account/ExtendLicense')));\nconst PaymentStatusPage = Loadable(lazy(() => import('views/account/PaymentStatus')));\n\n// ==============================|| MAIN ROUTING ||============================== //\n\nconst UserRoutes = {\n path: '/',\n element: (\n \n \n \n ),\n children: [\n {\n path: PATH_INTERACTIONS.root,\n element: \n },\n {\n path: `${PATH_INTERACTIONS.root}/:sukl`,\n element: \n },\n {\n path: PATH_ACCOUNT.root,\n element: \n },\n {\n path: PATH_ACCOUNT.extendLicense,\n element: \n },\n {\n path: PATH_ACCOUNT.paymentStatus,\n element: \n },\n ]\n};\n\nexport default UserRoutes;\n","import PropTypes from 'prop-types';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useSearchParams } from 'react-router-dom'\r\n\r\n// project imports\r\nimport useAuth from 'hooks/useAuth';\r\nimport { useEffect } from 'react';\r\n\r\n// ==============================|| GUEST GUARD ||============================== //\r\n\r\n/**\r\n * Guest guard for routes having no auth required\r\n * @param {PropTypes.node} children children element/node\r\n */\r\n\r\nconst GuestGuard = ({ children }) => {\r\n const { isLoggedIn } = useAuth();\r\n const navigate = useNavigate();\r\n let searchParams = useSearchParams()[0];\r\n\r\n useEffect(() => {\r\n if (isLoggedIn) {\r\n const url = searchParams.get('url');\r\n if (url) navigate(url, { replace: true });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isLoggedIn]);\r\n\r\n return children;\r\n};\r\n\r\nGuestGuard.propTypes = {\r\n children: PropTypes.node\r\n};\r\n\r\nexport default GuestGuard;\r\n","import { Outlet } from 'react-router-dom';\r\n\r\n// ==============================|| NO LAYOUT ||============================== //\r\n\r\nconst NoLayout = () => (\r\n <>\r\n \r\n \r\n);\r\n\r\nexport default NoLayout;\r\n","import PropTypes from 'prop-types';\r\nimport { motion } from 'framer-motion';\r\n\r\n// ==============================|| ANIMATION FOR CONTENT ||============================== //\r\n\r\nconst NavMotion = ({ children }) => {\r\n const motionVariants = {\r\n initial: {\r\n opacity: 0,\r\n scale: 0.99\r\n },\r\n in: {\r\n opacity: 1,\r\n scale: 1\r\n },\r\n out: {\r\n opacity: 0,\r\n scale: 1.01\r\n }\r\n };\r\n\r\n const motionTransition = {\r\n type: 'tween',\r\n ease: 'anticipate',\r\n duration: 0.4\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nNavMotion.propTypes = {\r\n children: PropTypes.node\r\n};\r\n\r\nexport default NavMotion;\r\n","import { lazy } from 'react';\n\n// project imports\nimport GuestGuard from 'utils/route-guard/GuestGuard';\nimport NoLayout from 'layout/NoLayout';\nimport NavMotion from 'layout/NavMotion';\nimport Loadable from 'ui-component/Loadable';\nimport { PATH_AUTH } from 'routes/paths'\n\n// login routing\nconst AuthLogin = Loadable(lazy(() => import('views/auth/Login')));\nconst NotFoundPage = Loadable(lazy(() => import('views/errors/NotFound')));\nconst AuthRegister = Loadable(lazy(() => import('views/auth/Register')));\nconst AuthConfirmEmail = Loadable(lazy(() => import('views/auth/ConfirmEmail')));\nconst AuthForgotPassword = Loadable(lazy(() => import('views/auth/ForgotPassword')));\nconst AuthRestorePassword = Loadable(lazy(() => import('views/auth/RestorePassword')));\n\n// ==============================|| AUTH ROUTING ||============================== //\n\nconst LoginRoutes = {\n path: '/',\n element: (\n \n \n \n \n \n ),\n children: [\n {\n path: PATH_AUTH.login,\n element: \n },\n {\n path: PATH_AUTH.register,\n element: \n },\n {\n path: PATH_AUTH.confirmEmail,\n element: \n },\n {\n path: PATH_AUTH.forgotPassword,\n element: \n },\n {\n path: PATH_AUTH.restorePassword,\n element: \n },\n {\n path: '*',\n element: \n }\n ]\n};\n\nexport default LoginRoutes;\n","import { useRoutes } from 'react-router-dom';\n\n// routes\nimport GuestRoutes from './GuestRoutes';\nimport UserRoutes from './UserRoutes';\nimport LoginRoutes from './LoginRoutes';\n\n// ==============================|| ROUTING RENDER ||============================== //\n\nexport default function ThemeRoutes() {\n return useRoutes([GuestRoutes, LoginRoutes, UserRoutes]);\n}\n","/**\r\n * Color intention that you want to used in your theme\r\n * @param {JsonObject} theme Theme customization object\r\n */\r\n\r\nexport default function themePalette(theme) {\r\n return {\r\n mode: theme?.customization?.navType,\r\n common: {\r\n black: theme.colors?.darkPaper\r\n },\r\n primary: {\r\n light: theme?.customization?.navType === 'dark' ? theme.colors?.darkPrimaryLight : theme.colors?.primaryLight,\r\n main: theme?.customization?.navType === 'dark' ? theme.colors?.darkPrimaryMain : theme.colors?.primaryMain,\r\n dark: theme?.customization?.navType === 'dark' ? theme.colors?.darkPrimaryDark : theme.colors?.primaryDark,\r\n 200: theme?.customization?.navType === 'dark' ? theme.colors?.darkPrimary200 : theme.colors?.primary200,\r\n 800: theme?.customization?.navType === 'dark' ? theme.colors?.darkPrimary800 : theme.colors?.primary800\r\n },\r\n secondary: {\r\n light: theme?.customization?.navType === 'dark' ? theme.colors?.darkSecondaryLight : theme.colors?.secondaryLight,\r\n main: theme?.customization?.navType === 'dark' ? theme.colors?.darkSecondaryMain : theme.colors?.secondaryMain,\r\n dark: theme?.customization?.navType === 'dark' ? theme.colors?.darkSecondaryDark : theme.colors?.secondaryDark,\r\n 200: theme?.customization?.navType === 'dark' ? theme.colors?.darkSecondary200 : theme.colors?.secondary200,\r\n 800: theme?.customization?.navType === 'dark' ? theme.colors?.darkSecondary800 : theme.colors?.secondary800\r\n },\r\n error: {\r\n light: theme.colors?.errorLight,\r\n main: theme.colors?.errorMain,\r\n dark: theme.colors?.errorDark\r\n },\r\n orange: {\r\n light: theme.colors?.orangeLight,\r\n main: theme.colors?.orangeMain,\r\n dark: theme.colors?.orangeDark\r\n },\r\n warning: {\r\n light: theme.colors?.warningLight,\r\n main: theme.colors?.warningMain,\r\n dark: theme.colors?.warningDark\r\n },\r\n success: {\r\n light: theme.colors?.successLight,\r\n 200: theme.colors?.success200,\r\n main: theme.colors?.successMain,\r\n dark: theme.colors?.successDark\r\n },\r\n grey: {\r\n 50: theme.colors?.grey50,\r\n 100: theme.colors?.grey100,\r\n 500: theme.darkTextSecondary,\r\n 600: theme.heading,\r\n 700: theme.darkTextPrimary,\r\n 900: theme.textDark\r\n },\r\n dark: {\r\n light: theme.colors?.darkTextPrimary,\r\n main: theme.colors?.darkLevel1,\r\n dark: theme.colors?.darkLevel2,\r\n 800: theme.colors?.darkBackground,\r\n 900: theme.colors?.darkPaper\r\n },\r\n text: {\r\n primary: theme.darkTextPrimary,\r\n secondary: theme.darkTextSecondary,\r\n dark: theme.textDark,\r\n hint: theme.colors?.grey100\r\n },\r\n background: {\r\n paper: theme.paper,\r\n default: theme.backgroundDefault\r\n }\r\n };\r\n}\r\n","/**\r\n * Typography used in theme\r\n * @param {JsonObject} theme theme customization object\r\n */\r\n\r\nexport default function themeTypography(theme) {\r\n return {\r\n fontFamily: theme?.customization?.fontFamily,\r\n h6: {\r\n fontWeight: 500,\r\n color: theme.heading,\r\n fontSize: '0.75rem'\r\n },\r\n h5: {\r\n fontSize: '0.875rem',\r\n color: theme.heading,\r\n fontWeight: 500\r\n },\r\n h4: {\r\n fontSize: '1rem',\r\n color: theme.heading,\r\n fontWeight: 600\r\n },\r\n h3: {\r\n fontSize: '1.25rem',\r\n color: theme.heading,\r\n fontWeight: 600\r\n },\r\n h2: {\r\n fontSize: '1.5rem',\r\n color: theme.heading,\r\n fontWeight: 700\r\n },\r\n h1: {\r\n fontSize: '2.125rem',\r\n color: theme.heading,\r\n fontWeight: 700\r\n },\r\n subtitle1: {\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme?.customization?.navType === 'dark' ? theme.heading : theme.textDark\r\n },\r\n subtitle2: {\r\n fontSize: '0.75rem',\r\n fontWeight: 400,\r\n color: theme.darkTextSecondary\r\n },\r\n caption: {\r\n fontSize: '0.75rem',\r\n color: theme.darkTextSecondary,\r\n fontWeight: 400\r\n },\r\n body1: {\r\n fontSize: '0.875rem',\r\n fontWeight: 400,\r\n lineHeight: '1.334em'\r\n },\r\n body2: {\r\n letterSpacing: '0em',\r\n fontWeight: 400,\r\n lineHeight: '1.5em',\r\n color: theme.darkTextPrimary\r\n },\r\n button: {\r\n textTransform: 'capitalize'\r\n },\r\n customInput: {\r\n marginTop: 1,\r\n marginBottom: 1,\r\n '& > label': {\r\n top: 23,\r\n left: 0,\r\n color: theme.grey500,\r\n '&[data-shrink=\"false\"]': {\r\n top: 5\r\n }\r\n },\r\n '& > div > input': {\r\n padding: '30.5px 14px 11.5px !important'\r\n },\r\n '& legend': {\r\n display: 'none'\r\n },\r\n '& fieldset': {\r\n top: 0\r\n }\r\n },\r\n mainContent: {\r\n backgroundColor: theme.background,\r\n width: '100%',\r\n minHeight: 'calc(100vh - 88px)',\r\n flexGrow: 1,\r\n padding: '20px',\r\n marginTop: '88px',\r\n marginRight: '20px',\r\n borderRadius: `${theme?.customization?.borderRadius}px`\r\n },\r\n menuCaption: {\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.heading,\r\n padding: '6px',\r\n textTransform: 'capitalize',\r\n marginTop: '10px'\r\n },\r\n subMenuCaption: {\r\n fontSize: '0.6875rem',\r\n fontWeight: 500,\r\n color: theme.darkTextSecondary,\r\n textTransform: 'capitalize'\r\n },\r\n commonAvatar: {\r\n cursor: 'pointer',\r\n borderRadius: '8px'\r\n },\r\n smallAvatar: {\r\n width: '22px',\r\n height: '22px',\r\n fontSize: '1rem'\r\n },\r\n mediumAvatar: {\r\n width: '34px',\r\n height: '34px',\r\n fontSize: '1.2rem'\r\n },\r\n largeAvatar: {\r\n width: '44px',\r\n height: '44px',\r\n fontSize: '1.5rem'\r\n }\r\n };\r\n}\r\n","import { alpha } from '@mui/material/styles';\r\n\r\nconst createCustomShadow = (theme, color) => {\r\n const transparent = alpha(color, 0.24);\r\n return {\r\n z1: `0 1px 2px 0 ${transparent}`,\r\n z8: `0 8px 16px 0 ${transparent}`,\r\n z12: `0 12px 24px 0 ${transparent} 0 10px 20px 0 ${transparent}`,\r\n z16: `0 0 3px 0 ${transparent} 0 14px 28px -5px ${transparent}`,\r\n z20: `0 0 3px 0 ${transparent} 0 18px 36px -5px ${transparent}`,\r\n z24: `0 0 6px 0 ${transparent} 0 21px 44px 0 ${transparent}`,\r\n\r\n primary: `0px 12px 14px 0px ${alpha(theme.colors?.primaryMain, 0.3)}`,\r\n secondary: `0px 12px 14px 0px ${alpha(theme.colors?.secondaryMain, 0.3)}`,\r\n orange: `0px 12px 14px 0px ${alpha(theme.colors?.orangeMain, 0.3)}`,\r\n success: `0px 12px 14px 0px ${alpha(theme.colors?.successMain, 0.3)}`,\r\n warning: `0px 12px 14px 0px ${alpha(theme.colors?.warningMain, 0.3)}`,\r\n error: `0px 12px 14px 0px ${alpha(theme.colors?.errorMain, 0.3)}`\r\n };\r\n};\r\n\r\nexport default function customShadows(navType, theme) {\r\n return navType === 'dark' ? createCustomShadow(theme, theme.colors?.darkLevel1) : createCustomShadow(theme, theme.colors?.grey600);\r\n}\r\n","import { createTheme } from '@mui/material/styles';\r\n\r\n// assets\r\nimport colors from 'assets/scss/_themes-vars.module.scss';\r\nimport theme1 from 'assets/scss/_theme1.module.scss';\r\nimport theme2 from 'assets/scss/_theme2.module.scss';\r\nimport theme3 from 'assets/scss/_theme3.module.scss';\r\nimport theme4 from 'assets/scss/_theme4.module.scss';\r\nimport theme5 from 'assets/scss/_theme5.module.scss';\r\nimport theme6 from 'assets/scss/_theme6.module.scss';\r\n\r\n// project imports\r\nimport componentStyleOverrides from './compStyleOverride';\r\nimport themePalette from './palette';\r\nimport themeTypography from './typography';\r\nimport customShadows from './shadows';\r\n\r\n/**\r\n * Represent theme style and structure as per Material-UI\r\n * @param {JsonObject} customization customization parameter object\r\n */\r\n\r\nexport const theme = (customization) => {\r\n let color;\r\n switch (customization.presetColor) {\r\n case 'theme1':\r\n color = theme1;\r\n break;\r\n case 'theme2':\r\n color = theme2;\r\n break;\r\n case 'theme3':\r\n color = theme3;\r\n break;\r\n case 'theme4':\r\n color = theme4;\r\n break;\r\n case 'theme5':\r\n color = theme5;\r\n break;\r\n case 'theme6':\r\n color = theme6;\r\n break;\r\n case 'default':\r\n default:\r\n color = colors;\r\n }\r\n\r\n const themeOption = {\r\n colors: color,\r\n heading: '',\r\n paper: '',\r\n backgroundDefault: '',\r\n background: '',\r\n darkTextPrimary: '',\r\n darkTextSecondary: '',\r\n textDark: '',\r\n menuSelected: '',\r\n menuSelectedBack: '',\r\n divider: '',\r\n customization\r\n };\r\n\r\n switch (customization.navType) {\r\n case 'dark':\r\n themeOption.paper = color.darkLevel2;\r\n themeOption.backgroundDefault = color.darkPaper;\r\n themeOption.background = color.darkBackground;\r\n themeOption.darkTextPrimary = color.darkTextPrimary;\r\n themeOption.darkTextSecondary = color.darkTextSecondary;\r\n themeOption.textDark = color.darkTextPrimary;\r\n themeOption.menuSelected = color.darkSecondaryMain;\r\n themeOption.menuSelectedBack = color.darkSecondaryMain + 15;\r\n themeOption.divider = color.darkTextPrimary;\r\n themeOption.heading = color.darkTextTitle;\r\n break;\r\n case 'light':\r\n default:\r\n themeOption.paper = color.paper;\r\n themeOption.backgroundDefault = color.paper;\r\n themeOption.background = color.primaryLight;\r\n themeOption.darkTextPrimary = color.grey700;\r\n themeOption.darkTextSecondary = color.grey500;\r\n themeOption.textDark = color.grey900;\r\n themeOption.menuSelected = color.secondaryDark;\r\n themeOption.menuSelectedBack = color.secondaryLight;\r\n themeOption.divider = color.grey200;\r\n themeOption.heading = color.grey900;\r\n break;\r\n }\r\n\r\n const themeOptions = {\r\n direction: customization.rtlLayout ? 'rtl' : 'ltr',\r\n palette: themePalette(themeOption),\r\n mixins: {\r\n toolbar: {\r\n minHeight: '48px',\r\n padding: '16px',\r\n '@media (min-width: 600px)': {\r\n minHeight: '48px'\r\n }\r\n }\r\n },\r\n typography: themeTypography(themeOption),\r\n customShadows: customShadows(customization.navType, themeOption)\r\n };\r\n\r\n const themes = createTheme(themeOptions);\r\n themes.components = componentStyleOverrides(themeOption);\r\n\r\n return themes;\r\n};\r\n\r\nexport default theme;\r\n","export default function componentStyleOverrides(theme) {\r\n const bgColor = theme?.customization?.navType === 'dark' ? theme.colors?.darkBackground : theme.colors?.grey50;\r\n return {\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n fontWeight: 500,\r\n borderRadius: '4px'\r\n }\r\n }\r\n },\r\n MuiPaper: {\r\n defaultProps: {\r\n elevation: 0\r\n },\r\n styleOverrides: {\r\n root: {\r\n backgroundImage: 'none'\r\n },\r\n rounded: {\r\n borderRadius: `${theme?.customization?.borderRadius}px`\r\n }\r\n }\r\n },\r\n MuiCardHeader: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.colors?.textDark,\r\n padding: '24px'\r\n },\r\n title: {\r\n fontSize: '1.125rem'\r\n }\r\n }\r\n },\r\n MuiCardContent: {\r\n styleOverrides: {\r\n root: {\r\n padding: '24px'\r\n }\r\n }\r\n },\r\n MuiCardActions: {\r\n styleOverrides: {\r\n root: {\r\n padding: '24px'\r\n }\r\n }\r\n },\r\n MuiAlert: {\r\n styleOverrides: {\r\n root: {\r\n alignItems: 'center'\r\n },\r\n outlined: {\r\n border: '1px dashed'\r\n }\r\n }\r\n },\r\n MuiListItemButton: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.darkTextPrimary,\r\n paddingTop: '10px',\r\n paddingBottom: '10px',\r\n '&.Mui-selected': {\r\n color: theme.menuSelected,\r\n backgroundColor: theme.menuSelectedBack,\r\n '&:hover': {\r\n backgroundColor: theme.menuSelectedBack\r\n },\r\n '& .MuiListItemIcon-root': {\r\n color: theme.menuSelected\r\n }\r\n },\r\n '&:hover': {\r\n backgroundColor: theme.menuSelectedBack,\r\n color: theme.menuSelected,\r\n '& .MuiListItemIcon-root': {\r\n color: theme.menuSelected\r\n }\r\n }\r\n }\r\n }\r\n },\r\n MuiListItemIcon: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.darkTextPrimary,\r\n minWidth: '36px'\r\n }\r\n }\r\n },\r\n MuiListItemText: {\r\n styleOverrides: {\r\n primary: {\r\n color: theme.textDark\r\n }\r\n }\r\n },\r\n MuiInputBase: {\r\n styleOverrides: {\r\n input: {\r\n color: theme.textDark,\r\n '&::placeholder': {\r\n color: theme.darkTextSecondary,\r\n fontSize: '0.875rem'\r\n }\r\n }\r\n }\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: {\r\n background: theme?.customization?.outlinedFilled ? bgColor : 'transparent',\r\n borderRadius: `${theme?.customization?.borderRadius}px`,\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: theme?.customization?.navType === 'dark' ? theme.colors.darkTextPrimary + 28 : theme.colors?.grey400\r\n },\r\n '&:hover $notchedOutline': {\r\n borderColor: theme.colors?.primaryLight\r\n },\r\n '&.MuiInputBase-multiline': {\r\n padding: 1\r\n }\r\n },\r\n input: {\r\n fontWeight: 500,\r\n background: theme?.customization?.outlinedFilled ? bgColor : 'transparent',\r\n padding: '15.5px 14px',\r\n borderRadius: `${theme?.customization?.borderRadius}px`,\r\n '&.MuiInputBase-inputSizeSmall': {\r\n padding: '10px 14px',\r\n '&.MuiInputBase-inputAdornedStart': {\r\n paddingLeft: 0\r\n }\r\n }\r\n },\r\n inputAdornedStart: {\r\n paddingLeft: 4\r\n },\r\n notchedOutline: {\r\n borderRadius: `${theme?.customization?.borderRadius}px`\r\n }\r\n }\r\n },\r\n MuiSlider: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-disabled': {\r\n color: theme?.customization?.navType === 'dark' ? theme.colors.darkTextPrimary + 50 : theme.colors?.grey300\r\n }\r\n },\r\n mark: {\r\n backgroundColor: theme.paper,\r\n width: '4px'\r\n },\r\n valueLabel: {\r\n color: theme?.customization?.navType === 'dark' ? theme?.colors?.primaryMain : theme?.colors?.primaryLight\r\n }\r\n }\r\n },\r\n MuiAutocomplete: {\r\n styleOverrides: {\r\n root: {\r\n '& .MuiAutocomplete-tag': {\r\n background:\r\n theme?.customization?.navType === 'dark' ? theme.colors.darkTextPrimary + 20 : theme.colors?.secondaryLight,\r\n borderRadius: 4,\r\n color: theme.textDark,\r\n '.MuiChip-deleteIcon': {\r\n color: theme?.customization?.navType === 'dark' ? theme.colors.darkTextPrimary + 80 : theme.colors?.secondary200\r\n }\r\n }\r\n },\r\n popper: {\r\n borderRadius: `${theme?.customization?.borderRadius}px`,\r\n boxShadow: '0px 8px 10px -5px rgb(0 0 0 / 20%), 0px 16px 24px 2px rgb(0 0 0 / 14%), 0px 6px 30px 5px rgb(0 0 0 / 12%)'\r\n }\r\n }\r\n },\r\n MuiDivider: {\r\n styleOverrides: {\r\n root: {\r\n borderColor: theme.divider,\r\n opacity: theme?.customization?.navType === 'dark' ? 0.2 : 1\r\n }\r\n }\r\n },\r\n MuiSelect: {\r\n styleOverrides: {\r\n select: {\r\n '&:focus': {\r\n backgroundColor: 'transparent'\r\n }\r\n }\r\n }\r\n },\r\n MuiCheckbox: {\r\n styleOverrides: {\r\n root: {\r\n /** checked not prop\r\n *\"&.Mui-checked\": {\r\n * fontSize: \"28px\"\r\n *}\r\n */\r\n }\r\n }\r\n },\r\n MuiAvatar: {\r\n styleOverrides: {\r\n root: {\r\n color: theme?.customization?.navType === 'dark' ? theme.colors?.darkLevel1 : theme.colors?.primaryDark,\r\n background: theme?.customization?.navType === 'dark' ? theme.darkTextPrimary : theme.colors?.primary200\r\n }\r\n }\r\n },\r\n MuiChip: {\r\n styleOverrides: {\r\n root: {\r\n '&.MuiChip-deletable .MuiChip-deleteIcon': {\r\n color: 'inherit'\r\n }\r\n }\r\n }\r\n },\r\n MuiTimelineContent: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.textDark,\r\n fontSize: '16px'\r\n }\r\n }\r\n },\r\n MuiTreeItem: {\r\n styleOverrides: {\r\n label: {\r\n marginTop: 14,\r\n marginBottom: 14\r\n }\r\n }\r\n },\r\n MuiTimelineDot: {\r\n styleOverrides: {\r\n root: {\r\n boxShadow: 'none'\r\n }\r\n }\r\n },\r\n MuiInternalDateTimePickerTabs: {\r\n styleOverrides: {\r\n tabs: {\r\n backgroundColor: theme?.customization?.navType === 'dark' ? theme.colors?.darkPaper : theme.colors?.primaryLight,\r\n '& .MuiTabs-flexContainer': {\r\n borderColor:\r\n theme?.customization?.navType === 'dark' ? theme.colors?.darkTextPrimary + 20 : theme.colors?.primary200\r\n },\r\n '& .MuiTab-root': {\r\n color: theme?.customization?.navType === 'dark' ? theme.colors?.darkTextSecondary : theme.colors?.grey900\r\n },\r\n '& .MuiTabs-indicator': {\r\n backgroundColor: theme.colors?.primaryDark\r\n },\r\n '& .Mui-selected': {\r\n color: theme.colors?.primaryDark\r\n }\r\n }\r\n }\r\n },\r\n MuiTabs: {\r\n styleOverrides: {\r\n flexContainer: {\r\n borderBottom: '1px solid',\r\n borderColor: theme?.customization?.navType === 'dark' ? theme.colors.darkTextPrimary + 20 : theme.colors?.grey200\r\n }\r\n }\r\n },\r\n MuiDialog: {\r\n styleOverrides: {\r\n paper: {\r\n padding: '12px 0 12px 0'\r\n }\r\n }\r\n },\r\n MuiTableCell: {\r\n styleOverrides: {\r\n root: {\r\n borderColor: theme?.customization?.navType === 'dark' ? theme.colors.darkTextPrimary + 15 : theme.colors?.grey200,\r\n '&.MuiTableCell-head': {\r\n fontSize: '0.875rem',\r\n color: theme.heading,\r\n fontWeight: 500\r\n }\r\n }\r\n }\r\n },\r\n MuiTooltip: {\r\n styleOverrides: {\r\n tooltip: {\r\n color: theme?.customization?.navType === 'dark' ? theme.colors?.darkLevel1 : theme.paper,\r\n background: theme?.customization?.navType === 'dark' ? theme.colors?.grey50 : theme.colors?.grey700,\r\n border: `1px solid ${theme?.customization?.navType === 'dark' ? theme.colors?.grey50 : theme.colors?.grey700}`\r\n },\r\n arrow: {\r\n \"&::before\": {\r\n backgroundColor: theme?.customization?.navType === 'dark' ? theme.colors?.grey50 : theme.colors?.grey700,\r\n border: `1px solid ${theme?.customization?.navType === 'dark' ? theme.colors?.grey50 : theme.colors?.grey700}`\r\n }\r\n }\r\n }\r\n },\r\n MuiDialogTitle: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: '1.25rem'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","import PropTypes from 'prop-types';\r\nimport { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// ==============================|| NAVIGATION SCROLL TO TOP ||============================== //\r\n\r\nconst NavigationScroll = ({ children }) => {\r\n const location = useLocation();\r\n const { pathname } = location;\r\n\r\n useEffect(() => {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }, [pathname]);\r\n\r\n return children || null;\r\n};\r\n\r\nNavigationScroll.propTypes = {\r\n children: PropTypes.node\r\n};\r\n\r\nexport default NavigationScroll;\r\n","import { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\n// material-ui\nimport { Alert, Button, Fade, Grow, IconButton, Slide } from '@mui/material';\nimport MuiSnackbar from '@mui/material/Snackbar';\n\n// assets\nimport CloseIcon from '@mui/icons-material/Close';\n\n// animation function\nfunction TransitionSlideLeft(props) {\n return ;\n}\n\nfunction TransitionSlideUp(props) {\n return ;\n}\n\nfunction TransitionSlideRight(props) {\n return ;\n}\n\nfunction TransitionSlideDown(props) {\n return ;\n}\n\nfunction GrowTransition(props) {\n return ;\n}\n\n// animation options\nconst transition = {\n SlideLeft: TransitionSlideLeft,\n SlideUp: TransitionSlideUp,\n SlideRight: TransitionSlideRight,\n SlideDown: TransitionSlideDown,\n Grow: GrowTransition,\n Fade\n};\n\n// ==============================|| SNACKBAR ||============================== //\n\nconst Snackbar = () => {\n const [open, setOpen] = useState(false);\n const snackbarInitial = useSelector((state) => state.snackbar);\n\n const handleClose = (reason) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n };\n\n useEffect(() => {\n setOpen(snackbarInitial.open);\n }, [snackbarInitial.action, snackbarInitial.open]);\n\n return (\n <>\n {/* default snackbar */}\n {snackbarInitial.variant === 'default' && (\n handleClose(v)}\n message={snackbarInitial.message}\n TransitionComponent={transition[snackbarInitial.transition]}\n action={\n <>\n \n handleClose()}>\n \n \n \n }\n />\n )}\n\n {/* alert snackbar */}\n {snackbarInitial.variant === 'alert' && (\n handleClose(v)}\n >\n \n {snackbarInitial.actionButton !== false && (\n \n )}\n {snackbarInitial.close !== false && (\n handleClose()}>\n \n \n )}\n \n }\n >\n {snackbarInitial.message}\n \n \n )}\n \n );\n};\n\nexport default Snackbar;\n","import { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\n// material-ui\nimport { ThemeProvider } from '@mui/material/styles';\nimport { CssBaseline, StyledEngineProvider } from '@mui/material';\n\n// routing\nimport Routes from 'routes';\n\n// defaultTheme\nimport themes from 'themes';\n\n// project imports\nimport NavigationScroll from 'layout/NavigationScroll';\nimport Snackbar from 'ui-component/extended/Snackbar';\n\n// auth provider\nimport { JWTProvider } from 'contexts/JWTContext';\n\nfunction App() {\n const customization = useSelector((state) => state.customization);\n\n useEffect(() => {\n localStorage.removeItem(\"app-interaction\");\n}, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\n// third party\nimport { BrowserRouter } from 'react-router-dom';\nimport { Provider } from 'react-redux';\nimport { PersistGate } from 'redux-persist/integration/react';\n\n// project imports\nimport App from 'App';\nimport { store, persister } from 'store';\nimport Loader from 'ui-component/Loader';\n\n// style + assets\nimport 'assets/scss/style.scss';\nimport config from 'config';\n\nReactDOM.render(\n \n \n } persistor={persister}>\n \n \n \n \n \n ,\n document.getElementById('root')\n);\n","/**\r\n * axios setup to use mock service\r\n */\r\n\r\nimport axios from 'axios';\r\nimport { store } from 'store';\r\nimport { SNACKBAR_OPEN } from 'store/actions';\r\n\r\nconst axiosServices = axios.create();\r\naxiosServices.defaults.withCredentials = true;\r\n\r\nif (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {\r\n axiosServices.defaults.baseURL = 'https://api.lekoveinterakce.cz/';//'https://localhost:5000';\r\n}\r\nelse {\r\n axiosServices.defaults.baseURL = 'https://api.lekoveinterakce.cz/';\r\n}\r\n\r\n//validate response\r\naxiosServices.interceptors.response.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.response && error.response.status === 401) {\r\n try {\r\n localStorage.removeItem('user');\r\n delete axios.defaults.headers.common.Authorization;\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 4000);\r\n store.dispatch(({\r\n type: SNACKBAR_OPEN,\r\n open: true,\r\n message: 'Vaše relace vypršela, budete automaticky odhlášeni.',\r\n variant: 'alert',\r\n alertSeverity: 'error',\r\n }));\r\n }\r\n catch(err) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n return Promise.reject((error.response && {message: error.response.data.message, status: error.response.status}) || {message: 'Volání vzdáleného serveru selhalo', status: error.response.status});\r\n }\r\n);\r\n\r\nexport default axiosServices;\r\n","const config = {\n // basename: only at build time to set, and Don't add '/' at end off BASENAME for breadcrumbs, also Don't put only '/' use blank('') instead,\n // like '/berry-material-react/react/default'\n basename: '',\n defaultPath: '/',\n fontFamily: `'Roboto', sans-serif`,\n borderRadius: 12,\n outlinedFilled: true,\n theme: 'dark', // light, dark\n presetColor: 'default', // default, theme1, theme2, theme3, theme4, theme5, theme6\n i18n: 'cs', // 'en' - English, 'fr' - French, 'ro' - Romanian, 'zh' - Chinese\n rtlLayout: false,\n jwt: {\n secret: 'SECRET-KEY',\n timeout: '1 days'\n }\n};\n\nexport default config;\n","// action - state management\nexport const LOGIN = 'auth/login';\nexport const LOGOUT = 'auth/logout';\n\n// ==============================|| ACCOUNT REDUCER ||============================== //\n\nconst authReducer = (state, action) => {\n switch (action.type) {\n case LOGIN: {\n const { user } = action.payload;\n return {\n ...state,\n isLoggedIn: true,\n isInitialized: true,\n user\n };\n }\n case LOGOUT: {\n return {\n ...state,\n isInitialized: true,\n isLoggedIn: false,\n user: null\n };\n }\n default: {\n return { ...state };\n }\n }\n};\n\nexport default authReducer;\n","import { useContext } from 'react';\n\n// auth provider\nimport JWTContext from 'contexts/JWTContext';\n\n// ==============================|| AUTH HOOKS ||============================== //\n\nconst useAuth = () => {\n const context = useContext(JWTContext);\n\n if (!context) throw new Error('context must be use inside provider');\n\n return context;\n};\n\nexport default useAuth;\n","// action - snackbar\nexport const SNACKBAR_OPEN = '@snackbar/SNACKBAR_OPEN';\n","// material-ui\nimport LinearProgress from '@mui/material/LinearProgress';\nimport { styled } from '@mui/material/styles';\n\n// styles\nconst LoaderWrapper = styled('div')({\n position: 'fixed',\n top: 0,\n left: 0,\n zIndex: 1301,\n width: '100%'\n});\n\n// ==============================|| LOADER ||============================== //\nconst Loader = () => (\n \n \n \n);\n\nexport default Loader;\n","import { padSukl } from './Interactions'\n\nexport const normalizeSuklCodes = (suklCodes) => {\n const arr = suklCodes.split(',');\n\n for (let i = 0; i < arr.length; i++) \t{\n arr[i] = padSukl(arr[i]);\n }\n\n return arr.join(',');\n};\n\nexport const createDrugsLookup = (drugs) => {\n /// Build sukl lookup table.\n const drugsLookup = {};\n drugs.forEach((drug, i) => {\n drug.sukl = padSukl(drug.sukl);\n drug.suklCodes = normalizeSuklCodes(drug.suklCodes);\n const suklCodes = drug.suklCodes.split(',');\n suklCodes.forEach(suklCode => {\n drugsLookup[suklCode] = i;\n });\n });\n\n return drugsLookup;\n};\n","import { createTransform } from 'redux-persist';\nimport { createDrugsLookup } from 'utils/Drugs';\n\nexport default function createTransformCompress(config) {\n return createTransform(\n (state, key) => {\n if (key === 'drugsLookup') return null;\n return state;\n },\n (state, key, fullState) => {\n if (key === 'drugsLookup')\n return createDrugsLookup(JSON.parse(fullState.drugs));\n return state;\n },\n config\n )\n }\n","// action - state management\nimport * as actionTypes from './actions';\n\nconst initialState = {\n action: false,\n open: false,\n message: 'Note archived',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n variant: 'default',\n alertSeverity: 'success',\n transition: 'Fade',\n close: true,\n actionButton: false,\n};\n\n// ==============================|| SNACKBAR REDUCER ||============================== //\n\nconst snackbarReducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.SNACKBAR_OPEN:\n return {\n ...state,\n action: !state.action,\n open: action.open ? action.open : initialState.open,\n message: action.message ? action.message : initialState.message,\n anchorOrigin: action.anchorOrigin ? action.anchorOrigin : initialState.anchorOrigin,\n variant: action.variant ? action.variant : initialState.variant,\n alertSeverity: action.alertSeverity ? action.alertSeverity : initialState.alertSeverity,\n transition: action.transition ? action.transition : initialState.transition,\n close: action.close === false ? action.close : initialState.close,\n actionButton: action.actionButton ? action.actionButton : initialState.actionButton\n };\n default:\n return state;\n }\n};\n\nexport default snackbarReducer;\n","import { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\n\n// reducer import\nimport customizationReducer from './customizationReducer';\nimport authReducer from './authReducer';\nimport interactionsReducer from './interactionsSlice';\nimport createTransformDrugs from '../utils/ReduxPersistTransformDrugs'\nimport snackbarReducer from './snackbarReducer';\n\nconst reducer = combineReducers({\n auth: authReducer,\n customization: persistReducer(\n {\n key: 'customization',\n storage,\n keyPrefix: 'app-'\n },\n customizationReducer\n ),\n snackbar: snackbarReducer,\n interactions: persistReducer(\n {\n transforms: [createTransformDrugs()],\n key: 'drugs',\n storage,\n keyPrefix: 'app-',\n whitelist: ['drugs']\n },\n interactionsReducer\n )\n});\n\nexport default reducer;\n","import { configureStore } from '@reduxjs/toolkit'\nimport { persistStore } from 'redux-persist';\n\nimport reducer from './reducer';\nimport thunk from 'redux-thunk'\n\n// ==============================|| REDUX - MAIN STORE ||============================== //\n\nconst store = configureStore({\n reducer,\n devTools: process.env.NODE_ENV !== 'production',\n middleware: [thunk]\n });\nconst persister = persistStore(store);\n\nexport { store, persister };\n"],"sourceRoot":""}