{"version":3,"sources":["hooks/useMe.js","store/authReducer.js","store/customizationReducer.js","store/menuReducer.js","store/breadcrumbReducer.js","store/reducer.js","store/index.js","apis/controllers/backoffice.js","apis/controllers/admin.js","apis/controllers/transaction.js","assets/scss/_themes-vars.module.scss","ui-component/cards/MainCard.js","context/permissionContext.js","apis/controllers/auth.js","context/userContext.js","hooks/useLogOut.js","assets/images/qubiteq.png","store/actions.js","serviceWorker.js","ui-component/extended/Breadcrumbs.js","layout/MainLayout/LogoSection/index.js","layout/MainLayout/Header/ProfileSection/index.js","layout/MainLayout/Header/LanguageSection/Wrapper.js","layout/MainLayout/Header/LanguageSection/index.js","layout/MainLayout/Header/index.js","layout/MainLayout/Sidebar/MenuList/NavItem/index.js","layout/MainLayout/Sidebar/MenuList/NavCollapse/index.js","layout/MainLayout/Sidebar/MenuList/NavGroup/index.js","layout/MainLayout/Sidebar/MenuList/index.js","layout/MainLayout/Sidebar/index.js","menu-items/dashboard.js","menu-items/index.js","layout/MainLayout/index.js","views/verification/index.js","hoc/components/PermissionDenied.js","hoc/index.js","routes/MainRoutes.js","ui-component/wrappers/index.js","layout/MinimalLayout/index.js","routes/AuthenticationRoutes.js","routes/index.js","themes/palette.js","themes/typography.js","themes/index.js","themes/compStyleOverride.js","layout/NavigationScroll.js","App.js","i18n/index.js","index.js","views/payments/Checkout/Chekcout.js","views/payments/index.js","apis/axiosInstance.js","config.js","store/constant.js"],"names":["useMe","useContext","UserContext","data","other","whoami","initialState","isLoggedIn","isEmailVerified","token","authReducer","state","action","type","actionTypes","payload","fontFamily","config","borderRadius","language","opened","customizationReducer","isOpen","lockMenu","menuItems","menuReducer","id","breadcrumbs","info","breadcrumbReducer","reducer","combineReducers","customization","auth","menu","persistConfig","key","storage","whitelist","persistedReducer","persistReducer","store","createStore","persistor","persistStore","backofficeApi","post","path","params","cancelToken","axiosInstance","then","res","error","catch","err","response","get","getParams","getData","getLookups","commitChanges","getForm","adminApi","console","log","impersonate","exitImpersonation","transactionApi","getTransaction","saveTransaction","createTransaction","executeTransaction","createPayPalCompetitionOrder","capturePayPalCompetitionOrder","module","exports","headerSX","mr","MainCard","forwardRef","ref","border","boxShadow","children","content","contentClass","contentSX","darkTitle","secondary","shadow","sx","title","others","theme","useTheme","borderColor","palette","primary","variant","className","Context","createContext","PermissionProvider","Provider","value","permissions","Ability","Can","createContextualCan","Consumer","authApi","login","username","password","register","resetPasswordEmail","email","resetPassword","newPassword","sendVerificationEmail","emailTo","ValidateVerificationPin","userIdentifier","getUserHasRoles","updateUserHasRoles","getUserPermissionTree","updateUserPermissionTree","getRolePermissionTree","updateRolePermissionTree","getMe","logout","refreshToken","UserProvider","memo","useSelector","enqueueSnackbar","useSnackbar","navigate","useNavigate","useLogout","meQuery","useQuery","formatedPermissions","map","dbPermission","split","subject","abilities","defineAbility","can","forEach","element","status","refetchInterval","minutes","enabled","dispatch","useDispatch","queryClient","useQueryClient","authState","useCallback","RESET_MENU","LOGOUT","interceptors","request","use","getState","headers","Authorization","cancelQueries","SET_MENU","MENU_OPEN","SET_FONT_FAMILY","SET_BORDER_RADIUS","SET_LANGUAGE","LOGIN","REFRESH_TOKEN","VERIFY_EMAIL","LOCK_MENU","STORE_MENU","SET_BREADCRUMBS","RESET_BREADCRUMBS","Boolean","window","location","hostname","match","linkSX","display","color","textDecoration","alignContent","alignItems","Breadcrumbs","card","divider","icon","icons","maxItems","navigation","rightAlign","separator","titleBottom","iconStyle","marginRight","spacing","marginTop","width","height","main","useState","item","useEffect","mainContent","itemContent","CollapseIcon","ItemIcon","SeparatorIcon","separatorIcon","stroke","size","breadcrumbContent","Typography","itemTitle","AccountTreeTwoToneIcon","component","Link","to","style","Trans","i18nKey","Card","marginBottom","gridSpacing","background","default","Box","p","pl","Grid","container","direction","justifyContent","fontWeight","ml","Divider","mb","LogoSection","ButtonBase","disableRipple","defaultPath","src","qubiteq","ProfileSection","t","useTranslation","selectedIndex","setSelectedIndex","open","setOpen","anchorRef","useRef","handleClose","event","current","contains","target","prevOpen","focus","Chip","transition","light","backgroundColor","lineHeight","label","undefined","onClick","Popper","placement","anchorEl","role","disablePortal","popperOptions","modifiers","name","options","offset","TransitionProps","in","Paper","ClickAwayListener","onClickAway","elevation","shadows","Stack","firstName","lastName","roles","join","List","maxWidth","minWidth","paper","breakpoints","down","mt","ListItemButton","selected","index","route","handleListItemClick","ListItemIcon","ListItemText","Wrapper","matchesXs","useMediaQuery","Avatar","typography","commonAvatar","mediumAvatar","dark","position","LanguageSection","selectedLanguage","setLanguage","i18n","handleLanguageChange","e","changeLanguage","LanguageRadioGroup","FormControl","RadioGroup","onChange","FormControlLabel","control","Radio","fontSize","grey","xs","Header","handleLeftDrawerToggle","md","flexGrow","overflow","NavItem","level","matchesSM","useLocation","Icon","Loadable","lazy","itemIcon","findIndex","itemTarget","listItemProps","props","basename","url","external","href","includes","pathname","disabled","py","my","caption","subMenuCaption","gutterBottom","chip","avatar","NavCollapse","setSelected","menus","align","menuIcon","strokeWidth","Collapse","timeout","unmountOnExit","disablePadding","left","top","opacity","NavGroup","items","I","a","passThrough","allowed","subheader","menuCaption","NavGroupWithSkeleton","withSkeleton","Skeleton","_","MenuList","navItems","Sidebar","drawerOpen","drawerToggle","matchUpMd","up","drawer","mx","paddingLeft","paddingRight","px","document","body","flexShrink","drawerWidth","Drawer","anchor","onClose","text","borderRight","ModalProps","keepMounted","IconHome2","IconTool","IconUsers","IconReportAnalytics","IconDashboard","IconUser","IconSettings","Main","styled","shouldForwardProp","prop","borderBottomLeftRadius","borderBottomRightRadius","transitions","create","easing","sharp","duration","leavingScreen","marginLeft","padding","easeOut","enteringScreen","MainLayout","matchDownMd","leftDrawerOpened","CssBaseline","AppBar","enableColorOnDark","bgcolor","Toolbar","IconChevronRight","Verification","colors","primaryMain","length","inputStyle","onComplete","pin","Number","success","invalidateQueries","Button","errorMain","withPermission","Component","unrestricted","isLoading","isError","hasPermission","PermissionDenied","HomeView","AccountSettings","UsersView","View","UsersManage","Manage","RolesView","ProductsView","RolesManage","FunctionsView","ImpersonationView","HomologationView","HomologationManage","DutiesView","DutiesManage","PaymentLandingPage","PageNotFound","ServerError","UserDetails","UserRoles","UserPermissions","RolesDetails","RolesPermissions","MainRoutes","MinimalWrapper","minHeight","MinimalLayout","AuthLogin3","AuthRegister3","ResetPassword","UserInvitation","Transaction","Success","Cancel","AuthenticationRoutes","Routes","routes","useRoutes","themePalette","mode","navType","common","black","darkPaper","primaryLight","primaryDark","primary200","primary800","secondaryLight","secondaryMain","secondaryDark","secondary200","secondary800","errorLight","errorDark","orange","orangeLight","orangeMain","orangeDark","warning","warningLight","warningMain","warningDark","successLight","success200","successMain","successDark","grey50","grey100","darkTextSecondary","heading","darkTextPrimary","textDark","darkLevel1","darkLevel2","darkBackground","hint","backgroundDefault","themeTypography","h6","h5","h4","h3","h2","h1","subtitle1","textDarkPrimary","subtitle2","body1","body2","letterSpacing","button","textTransform","customInput","grey500","cursor","smallAvatar","largeAvatar","themeOption","grey900","grey700","menuSelected","menuSelectedBack","grey200","themeOptions","mixins","toolbar","themes","createTheme","components","bgColor","MuiButton","styleOverrides","root","MuiPaper","defaultProps","backgroundImage","rounded","MuiCardHeader","MuiCardContent","MuiCardActions","MuiListItemButton","paddingTop","paddingBottom","MuiListItemIcon","MuiListItemText","MuiInputBase","input","MuiOutlinedInput","grey400","inputAdornedStart","notchedOutline","MuiSlider","grey300","mark","valueLabel","MuiDivider","MuiAvatar","MuiChip","MuiTooltip","tooltip","componentStyleOverrides","NavigationScroll","scrollTo","behavior","propTypes","PropTypes","node","QueryClient","App","localStorage","getItem","CONFIG","JSON","parse","setLicenseKey","WIJMO_LICENSE_KEY","StyledEngineProvider","injectFirst","ThemeProvider","maxSnack","anchorOrigin","vertical","horizontal","TransitionComponent","Slide","client","LanguageDetector","initReactI18next","init","debug","fallbackLng","interpolation","escapeValue","resources","en","translation","Home","Users","Roles","Analytics","GoodMorning","GoodEvening","Dashboard","SelectLanguage","EnterCredsContinue","LoginEmailUsername","Login","Logout","ForgotPassword","DontHaveAcount","LoginSuccess","SomethingWrong","Email","Password","ConfirmPassword","RequiredField","CreateAccount","YourCreds","AcceptTerms","AcceptTermsError","AlreadyAccount","SignUp","Firstname","Lastname","PhoneNumber","PasswordsNotMatching","InvalidDate","InvalidPhone","InvalidEmail","SiteUnavailable","PageUnderConstruction","SelectTransactionsStep","SelectPaymentMethodStep","PaymentDetailsStep","PaymentReviewStep","gre","ReactDOM","render","loading","getElementById","navigator","serviceWorker","ready","registration","unregister","message","Checkout","usePayPalScriptReducer","isPending","currency","setCurrency","layout","createOrder","actions","order","purchase_units","amount","onCreateOrder","onApprove","capture","details","payer","given_name","alert","onApproveOrder","axios","withCredentials","baseURL","process","Object","keys","Date","isNaN","moment","format","originalRequest","errorObject","Promise","reject","_retry","refreshResponse"],"mappings":"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","file":"static/js/main.ee0c6fa1.chunk.js","sourcesContent":["import { UserContext } from 'context/userContext';\r\nimport { useContext } from 'react';\r\n\r\nexport const useMe = () => {\r\n const { data, ...other } = useContext(UserContext);\r\n return { whoami: data, ...other };\r\n};\r\n","// action - state management\r\nimport * as actionTypes from './actions';\r\n\r\nexport const initialState = {\r\n isLoggedIn: false,\r\n isEmailVerified: null,\r\n token: null\r\n};\r\n\r\n// ==============================|| CUSTOMIZATION REDUCER ||============================== //\r\n\r\nconst authReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.LOGIN:\r\n return {\r\n ...state,\r\n ...action.payload,\r\n isLoggedIn: true\r\n };\r\n case actionTypes.VERIFY_EMAIL:\r\n return {\r\n ...state,\r\n isEmailVerified: true\r\n };\r\n\r\n case actionTypes.REFRESH_TOKEN:\r\n return {\r\n ...state,\r\n ...action.payload\r\n };\r\n case actionTypes.LOGOUT:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default authReducer;\r\n","// project imports\r\nimport config from 'config';\r\n\r\n// action - state management\r\nimport * as actionTypes from './actions';\r\n\r\nexport const initialState = {\r\n fontFamily: config.fontFamily,\r\n borderRadius: config.borderRadius,\r\n language: config.language,\r\n opened: true\r\n};\r\n\r\n// ==============================|| CUSTOMIZATION REDUCER ||============================== //\r\n\r\nconst customizationReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_FONT_FAMILY:\r\n return {\r\n ...state,\r\n fontFamily: action.fontFamily\r\n };\r\n case actionTypes.SET_BORDER_RADIUS:\r\n return {\r\n ...state,\r\n borderRadius: action.borderRadius\r\n };\r\n case actionTypes.SET_LANGUAGE:\r\n return {\r\n ...state,\r\n language: action.language\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default customizationReducer;\r\n","// action - state management\r\nimport * as actionTypes from './actions';\r\n\r\nexport const initialState = {\r\n isOpen: ['Home.View'], // for active default menu\r\n opened: true,\r\n lockMenu: false,\r\n menuItems: []\r\n};\r\n\r\n// ==============================|| CUSTOMIZATION REDUCER ||============================== //\r\n\r\nconst menuReducer = (state = initialState, action) => {\r\n let id;\r\n switch (action.type) {\r\n case actionTypes.MENU_OPEN:\r\n id = action.id;\r\n return {\r\n ...state,\r\n isOpen: [id]\r\n };\r\n case actionTypes.SET_MENU:\r\n return {\r\n ...state,\r\n opened: action.opened\r\n };\r\n case actionTypes.LOCK_MENU:\r\n return {\r\n ...state,\r\n lockMenu: action.lockMenu\r\n };\r\n case actionTypes.STORE_MENU:\r\n return {\r\n ...state,\r\n menuItems: action.menuItems\r\n };\r\n case actionTypes.RESET_MENU:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default menuReducer;\r\n","// action - state management\r\nimport * as actionTypes from './actions';\r\n\r\nexport const initialState = { breadcrumbs: null, info: null };\r\n\r\n// ==============================|| BREADCRUMB REDUCER ||============================== //\r\n\r\nconst breadcrumbReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_BREADCRUMBS:\r\n return {\r\n ...state,\r\n ...action.payload\r\n };\r\n case actionTypes.RESET_BREADCRUMBS:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default breadcrumbReducer;\r\n","import { combineReducers } from 'redux';\r\n\r\n// reducer import\r\nimport authReducer from './authReducer';\r\nimport customizationReducer from './customizationReducer';\r\nimport menuReducer from './menuReducer';\r\nimport breadcrumbReducer from './breadcrumbReducer';\r\n// ==============================|| COMBINE REDUCER ||============================== //\r\n\r\nconst reducer = combineReducers({\r\n customization: customizationReducer,\r\n auth: authReducer,\r\n menu: menuReducer,\r\n breadcrumbs: breadcrumbReducer\r\n});\r\n\r\nexport default reducer;\r\n","import { createStore } from 'redux';\r\nimport reducer from './reducer';\r\nimport { persistStore, persistReducer } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\n\r\n// ==============================|| REDUX - MAIN STORE ||============================== //\r\n\r\nconst persistConfig = {\r\n key: 'root',\r\n storage,\r\n whitelist: ['auth', 'menu', 'customization']\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, reducer);\r\nconst store = createStore(persistedReducer);\r\nconst persistor = persistStore(store);\r\n\r\nexport { store, persistor };\r\n","import axiosInstance from '../axiosInstance';\r\n\r\nexport const backofficeApi = {\r\n post: (path, params, cancelToken) =>\r\n axiosInstance\r\n .post(`/backoffice${path}`, params, {\r\n cancelToken: cancelToken?.token\r\n })\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n throw err.error ? err : err?.response?.data;\r\n }),\r\n get: (path, params, cancelToken) =>\r\n axiosInstance\r\n .get(`/backoffice${path}`, params, {\r\n cancelToken: cancelToken?.token\r\n })\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n throw err.error ? err : err?.response?.data;\r\n })\r\n};\r\n\r\nexport const getParams = async (params) => backofficeApi.post('/getparams', params);\r\n\r\nexport const getData = async (params) => backofficeApi.post('/getdata', params);\r\n\r\nexport const getLookups = async (params) => backofficeApi.post('/getlookups', params);\r\n\r\nexport const commitChanges = async (params) => backofficeApi.post('/commitchanges', params);\r\n\r\nexport const getForm = async (params) => backofficeApi.post('/getform', params);\r\n","/* eslint-disable import/no-cycle */\r\nimport axiosInstance from '../axiosInstance';\r\n\r\nexport const adminApi = {\r\n post: async (path, params, cancelToken) =>\r\n axiosInstance\r\n .post(`/admin${path}`, params, {\r\n cancelToken: cancelToken?.token\r\n })\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n console.log('err', err);\r\n throw err.error ? err : err?.response;\r\n }),\r\n get: async (path, params, cancelToken) =>\r\n axiosInstance\r\n .get(\r\n `/admin${path}`,\r\n { params },\r\n {\r\n cancelToken: cancelToken?.token\r\n }\r\n )\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n throw err.error ? err : err?.response;\r\n })\r\n};\r\n\r\nexport const impersonate = async (params) => adminApi.post('/impersonate', params);\r\nexport const exitImpersonation = async () => adminApi.post('/exitImpersonation');\r\n","import axiosInstance from '../axiosInstance';\r\n\r\nexport const transactionApi = {\r\n post: (path, params, cancelToken) =>\r\n axiosInstance\r\n .post(`/transaction${path}`, params, {\r\n cancelToken: cancelToken?.token\r\n })\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n throw err.error ? err : err?.response?.data;\r\n }),\r\n get: (path, params, cancelToken) =>\r\n axiosInstance\r\n .get(`/transaction${path}`, params, {\r\n cancelToken: cancelToken?.token\r\n })\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n throw err.error ? err : err?.response?.data;\r\n })\r\n};\r\n\r\nexport const getTransaction = async (params) => transactionApi.post('/gettransaction', params);\r\n\r\nexport const saveTransaction = async (params) => transactionApi.post('/savetransaction', params);\r\n\r\nexport const createTransaction = async (params) => transactionApi.post('/createpayment', params);\r\n\r\nexport const executeTransaction = async (params) => transactionApi.post('/executepayment', params);\r\n\r\nexport const createPayPalCompetitionOrder = async (params) => transactionApi.post('/createpaypalcompetitionorder', params);\r\n\r\nexport const capturePayPalCompetitionOrder = async (params) => transactionApi.post('/capturepaypalcompetitionorder', params);\r\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\":\"#673ab7\",\"secondaryDark\":\"#5e35b1\",\"secondary800\":\"#4527a0\",\"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\":\"#e3f2fd\",\"darkPrimaryMain\":\"#2196f3\",\"darkPrimaryDark\":\"#1e88e5\",\"darkPrimary200\":\"#90caf9\",\"darkPrimary800\":\"#1565c0\",\"darkSecondaryLight\":\"#d1c4e9\",\"darkSecondaryMain\":\"#7c4dff\",\"darkSecondaryDark\":\"#651fff\",\"darkSecondary200\":\"#b39ddb\",\"darkSecondary800\":\"#6200ea\"};","import PropTypes from 'prop-types';\r\nimport { forwardRef } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Card, CardContent, CardHeader, Divider, Typography } from '@mui/material';\r\n\r\n// constant\r\nconst headerSX = {\r\n '& .MuiCardHeader-action': { mr: 0 }\r\n};\r\n\r\n// ==============================|| CUSTOM MAIN CARD ||============================== //\r\n\r\nconst MainCard = forwardRef(\r\n (\r\n {\r\n border = true,\r\n boxShadow,\r\n children,\r\n content = true,\r\n contentClass = '',\r\n contentSX = {},\r\n darkTitle,\r\n secondary,\r\n shadow,\r\n sx = {},\r\n title,\r\n ...others\r\n },\r\n ref\r\n ) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n {/* card header and action */}\r\n {!darkTitle && title && }\r\n {darkTitle && title && (\r\n {title}} action={secondary} />\r\n )}\r\n\r\n {/* content & header divider */}\r\n {title && }\r\n\r\n {/* card content */}\r\n {content && (\r\n \r\n {children}\r\n \r\n )}\r\n {!content && children}\r\n \r\n );\r\n }\r\n);\r\n\r\nMainCard.propTypes = {\r\n border: PropTypes.bool,\r\n boxShadow: PropTypes.bool,\r\n children: PropTypes.node,\r\n content: PropTypes.bool,\r\n contentClass: PropTypes.string,\r\n contentSX: PropTypes.object,\r\n darkTitle: PropTypes.bool,\r\n secondary: PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.object]),\r\n shadow: PropTypes.string,\r\n sx: PropTypes.object,\r\n title: PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.object])\r\n};\r\n\r\nexport default MainCard;\r\n","import React, { createContext } from 'react';\r\nimport { Ability } from '@casl/ability';\r\nimport { createContextualCan, useAbility } from '@casl/react';\r\nimport propTypes from 'prop-types';\r\nimport { useMe } from 'hooks/useMe';\r\n\r\nconst Context = createContext();\r\n\r\nfunction usePermissions() {\r\n const permissions = useAbility(Context);\r\n if (permissions === undefined) {\r\n throw new Error('usePermissions should be used within a PermissionProvider');\r\n }\r\n return permissions;\r\n}\r\n\r\nconst PermissionProvider = ({ children }) => {\r\n const { whoami } = useMe();\r\n return {children};\r\n};\r\n\r\nPermissionProvider.propTypes = {\r\n children: propTypes.node\r\n};\r\n\r\nexport { usePermissions, PermissionProvider };\r\nexport const Can = createContextualCan(Context.Consumer);\r\n","/* eslint-disable import/no-cycle */\r\nimport axiosInstance from '../axiosInstance';\r\n\r\nexport const authApi = {\r\n post: async (path, params, cancelToken) =>\r\n axiosInstance\r\n .post(`/auth${path}`, params, {\r\n cancelToken: cancelToken?.token\r\n })\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n console.log('err', err);\r\n throw err.error ? err : err?.response;\r\n }),\r\n get: async (path, params, cancelToken) =>\r\n axiosInstance\r\n .get(\r\n `/auth${path}`,\r\n { params },\r\n {\r\n cancelToken: cancelToken?.token\r\n }\r\n )\r\n .then((res) => {\r\n if (res?.data?.error) throw res.data;\r\n return res?.data;\r\n })\r\n .catch((err) => {\r\n throw err.error ? err : err?.response;\r\n })\r\n};\r\n\r\nexport const login = async ({ username, password }) => authApi.post('/login', { username, password });\r\n\r\nexport const register = async (params) => authApi.post('/register', params);\r\n\r\nexport const resetPasswordEmail = async (email) => authApi.post('/passwordResetEmail', email);\r\n\r\nexport const resetPassword = async (newPassword) => authApi.post('/passwordReset', newPassword);\r\n\r\nexport const sendVerificationEmail = async ({ emailTo }) => authApi.post('/sendverificationmail', { emailTo });\r\n\r\nexport const ValidateVerificationPin = async ({ userIdentifier, value }) => authApi.post('/verifyEmail', { userIdentifier, value });\r\n\r\nexport const getUserHasRoles = async (params) => authApi.post('/userhasroles', params);\r\n\r\nexport const updateUserHasRoles = async (params) => authApi.post('/updateuserhasroles', params);\r\n\r\nexport const getUserPermissionTree = async (params) => authApi.post('/userPermissionTree', params);\r\n\r\nexport const updateUserPermissionTree = async (params) => authApi.post('/updateuserPermissionTree', params);\r\n\r\nexport const getRolePermissionTree = async (params) => authApi.post('/RolePermissionTree', params);\r\n\r\nexport const updateRolePermissionTree = async (params) => authApi.post('/updateRolePermissionTree', params);\r\n\r\nexport const getMe = async () => authApi.get('/getUserDetails');\r\n\r\nexport const logout = async (params) => authApi.post('/logout', params);\r\n\r\nexport const refreshToken = async (params) => authApi.post('/refresh', params);\r\n","import { memo, createContext } from 'react';\r\nimport propTypes from 'prop-types';\r\nimport { useQuery } from 'react-query';\r\nimport { useSelector } from 'react-redux';\r\nimport { auth } from 'apis';\r\nimport { useLogout } from 'hooks/useLogOut';\r\nimport { useSnackbar } from 'notistack';\r\nimport { defineAbility } from '@casl/ability';\r\nimport { createContextualCan } from '@casl/react';\r\nimport { useNavigate } from 'react-router';\r\n\r\nconst UserContext = createContext();\r\n\r\nconst minutesToMSeconds = ({ minutes }) => minutes * 60 * 1000;\r\n\r\nconst UserProvider = memo(({ children }) => {\r\n const { isLoggedIn } = useSelector((state) => state.auth);\r\n const { enqueueSnackbar } = useSnackbar();\r\n const navigate = useNavigate();\r\n const { logout } = useLogout();\r\n\r\n const meQuery = useQuery(\r\n 'me',\r\n async () => {\r\n try {\r\n const res = await auth.getMe();\r\n const formatedPermissions = res.permissions.map((dbPermission) => {\r\n const [subject, action] = dbPermission.split('.');\r\n return {\r\n action,\r\n subject\r\n };\r\n });\r\n const abilities = defineAbility((can) => {\r\n formatedPermissions.forEach((element) => {\r\n can(element.action, element.subject);\r\n });\r\n });\r\n return { ...res, permissions: abilities };\r\n } catch (error) {\r\n if (error?.status === 400) {\r\n enqueueSnackbar('Your connection has expired, please login again', {\r\n variant: 'error'\r\n });\r\n logout();\r\n }\r\n if (error?.status === 503) {\r\n navigate('site-is-temporarily-unavailable');\r\n }\r\n throw error;\r\n }\r\n },\r\n {\r\n refetchInterval: minutesToMSeconds({ minutes: 120 }),\r\n enabled: isLoggedIn\r\n }\r\n );\r\n return {children};\r\n});\r\n\r\nUserProvider.propTypes = {\r\n children: propTypes.node\r\n};\r\n\r\nexport { UserProvider, UserContext };\r\nexport const Can = createContextualCan(UserContext.Consumer);\r\n","import { useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useQueryClient } from 'react-query';\r\nimport axiosInstance from 'apis/axiosInstance';\r\nimport { RESET_MENU, LOGOUT } from 'store/actions';\r\nimport { store } from 'store';\r\nimport { auth } from 'apis';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nexport const useLogout = () => {\r\n const dispatch = useDispatch();\r\n const queryClient = useQueryClient();\r\n const authState = useSelector((state) => state.auth);\r\n const navigate = useNavigate();\r\n const logout = useCallback(async () => {\r\n const refreshToken = authState.refreshToken;\r\n // notify backend to blacklist token\r\n await auth.logout({ refreshToken }).catch((err) => console.error(err));\r\n // reset store\r\n dispatch({ type: RESET_MENU });\r\n dispatch({ type: LOGOUT });\r\n // reset axios interceptors\r\n axiosInstance.interceptors.request.use((config) => {\r\n const state = store.getState();\r\n config.headers = {\r\n ...config.headers,\r\n Authorization: `Bearer ${state.auth.token}`\r\n };\r\n return config;\r\n });\r\n // cancel queries\r\n queryClient.cancelQueries('me');\r\n navigate('/');\r\n }, [authState, dispatch, queryClient]);\r\n\r\n return { logout };\r\n};\r\n","export default __webpack_public_path__ + \"static/media/qubiteq.7ddda2f8.png\";","// action - customization reducer\r\nexport const SET_MENU = '@customization/SET_MENU';\r\nexport const MENU_TOGGLE = '@customization/MENU_TOGGLE';\r\nexport const MENU_OPEN = '@customization/MENU_OPEN';\r\nexport const SET_FONT_FAMILY = '@customization/SET_FONT_FAMILY';\r\nexport const SET_BORDER_RADIUS = '@customization/SET_BORDER_RADIUS';\r\nexport const SET_LANGUAGE = '@customization/SET_LANGUAGE';\r\nexport const LOGIN = '@authentication/LOGIN';\r\nexport const LOGOUT = '@authentication/LOGOUT';\r\nexport const REFRESH_TOKEN = '@authentication/REFRESH_TOKEN';\r\nexport const VERIFY_EMAIL = '@authentication/VERIFY_EMAIL';\r\nexport const LOCK_MENU = '@menu/SET_MENU_LOCKED';\r\nexport const STORE_MENU = '@menu/STORE_MENU';\r\nexport const RESET_MENU = '@menu/RESET_MENU';\r\nexport const SET_BREADCRUMBS = '@breadcrumbs/SET_BREADCRUMBS';\r\nexport const RESET_BREADCRUMBS = '@breadcrumbs/RESET_BREADCRUMBS';\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import PropTypes from 'prop-types';\r\nimport { useEffect, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, Card, Divider, Grid, Typography } from '@mui/material';\r\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs';\r\n\r\n// project imports\r\nimport config from 'config';\r\nimport { gridSpacing } from 'store/constant';\r\nimport { Trans } from 'react-i18next';\r\n\r\n// assets\r\nimport { IconTallymark1 } from '@tabler/icons';\r\nimport AccountTreeTwoToneIcon from '@mui/icons-material/AccountTreeTwoTone';\r\nimport HomeIcon from '@mui/icons-material/Home';\r\nimport HomeTwoToneIcon from '@mui/icons-material/HomeTwoTone';\r\n\r\nconst linkSX = {\r\n display: 'flex',\r\n color: 'grey.900',\r\n textDecoration: 'none',\r\n alignContent: 'center',\r\n alignItems: 'center'\r\n};\r\n\r\n// ==============================|| BREADCRUMBS ||============================== //\r\n\r\nconst Breadcrumbs = ({ card, divider, icon, icons, maxItems, navigation, rightAlign, separator, title, titleBottom, ...others }) => {\r\n const theme = useTheme();\r\n\r\n const iconStyle = {\r\n marginRight: theme.spacing(0.75),\r\n marginTop: `-${theme.spacing(0.25)}`,\r\n width: '1rem',\r\n height: '1rem',\r\n color: theme.palette.secondary.main\r\n };\r\n\r\n const [main, setMain] = useState();\r\n const [item, setItem] = useState();\r\n\r\n // set active item state\r\n const getCollapse = (menu) => {\r\n if (menu.children) {\r\n menu.children.filter((collapse) => {\r\n if (collapse.type && collapse.type === 'collapse') {\r\n getCollapse(collapse);\r\n } else if (collapse.type && collapse.type === 'item') {\r\n if (document.location.pathname === config.basename + collapse.url) {\r\n setMain(menu);\r\n setItem(collapse);\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (navigation) {\r\n console.log('NAVIGATION', navigation);\r\n // navigation?.map((menu) => {\r\n // if (menu.type && menu.type === 'group') {\r\n // getCollapse(menu);\r\n // }\r\n // return false;\r\n // });\r\n }\r\n });\r\n\r\n // item separator\r\n const SeparatorIcon = separator;\r\n const separatorIcon = separator ? : ;\r\n\r\n let mainContent;\r\n let itemContent;\r\n let breadcrumbContent = ;\r\n let itemTitle = '';\r\n let CollapseIcon;\r\n let ItemIcon;\r\n\r\n // collapse item\r\n if (main && main.type === 'collapse') {\r\n CollapseIcon = main.icon ? main.icon : AccountTreeTwoToneIcon;\r\n mainContent = (\r\n \r\n {icons && }\r\n {main.title}\r\n \r\n );\r\n }\r\n\r\n // items\r\n if (item && item.type === 'item') {\r\n itemTitle = item.title;\r\n\r\n ItemIcon = item.icon ? item.icon : AccountTreeTwoToneIcon;\r\n itemContent = (\r\n \r\n {icons && }\r\n {itemTitle}\r\n \r\n );\r\n\r\n // main\r\n breadcrumbContent = (\r\n \r\n \r\n \r\n {title && !titleBottom && (\r\n \r\n \r\n {item.title}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {icons && }\r\n {icon && }\r\n {!icon && 'Dashboard'}\r\n \r\n {mainContent}\r\n {itemContent}\r\n \r\n \r\n {title && titleBottom && (\r\n \r\n \r\n {item.title}\r\n \r\n \r\n )}\r\n \r\n \r\n {card === false && divider !== false && }\r\n \r\n );\r\n }\r\n\r\n return breadcrumbContent;\r\n};\r\n\r\nBreadcrumbs.propTypes = {\r\n card: PropTypes.bool,\r\n divider: PropTypes.bool,\r\n icon: PropTypes.bool,\r\n icons: PropTypes.bool,\r\n maxItems: PropTypes.number,\r\n navigation: PropTypes.array,\r\n rightAlign: PropTypes.bool,\r\n separator: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\r\n title: PropTypes.bool,\r\n titleBottom: PropTypes.bool\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","import { Link } from 'react-router-dom';\r\n\r\n// material-ui\r\nimport { ButtonBase } from '@mui/material';\r\n\r\n// project imports\r\nimport config from 'config';\r\nimport { Logo } from '@qubiteq/qublib';\r\n// material-ui\r\nimport qubiteq from 'assets/images/qubiteq.png';\r\n// ==============================|| MAIN LOGO ||============================== //\r\n\r\nconst LogoSection = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default LogoSection;\r\n","import { useState, useRef, useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport {\r\n Box,\r\n Chip,\r\n ClickAwayListener,\r\n Divider,\r\n List,\r\n ListItemButton,\r\n ListItemIcon,\r\n ListItemText,\r\n Paper,\r\n Popper,\r\n Stack,\r\n Typography\r\n} from '@mui/material';\r\nimport MainCard from 'ui-component/cards/MainCard';\r\nimport { Transitions } from '@qubiteq/qublib';\r\nimport { IconLogout, IconSettings } from '@tabler/icons';\r\nimport { useMe } from 'hooks/useMe';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useLogout } from 'hooks/useLogOut';\r\n\r\n// ==============================|| PROFILE MENU ||============================== //\r\n\r\nconst ProfileSection = () => {\r\n const theme = useTheme();\r\n const { whoami } = useMe();\r\n const { t } = useTranslation();\r\n const customization = useSelector((state) => state.customization);\r\n const navigate = useNavigate();\r\n const [selectedIndex, setSelectedIndex] = useState(-1);\r\n const [open, setOpen] = useState(false);\r\n const { logout } = useLogout();\r\n\r\n const anchorRef = useRef(null);\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setSelectedIndex(-1);\r\n setOpen(false);\r\n };\r\n\r\n const handleListItemClick = (event, index, route = '') => {\r\n setSelectedIndex(index);\r\n handleClose(event);\r\n\r\n if (route && route !== '') {\r\n navigate(route);\r\n }\r\n };\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const prevOpen = useRef(open);\r\n useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current.focus();\r\n }\r\n\r\n prevOpen.current = open;\r\n }, [open]);\r\n\r\n return (\r\n <>\r\n }\r\n variant=\"outlined\"\r\n ref={anchorRef}\r\n aria-controls={open ? 'menu-list-grow' : undefined}\r\n aria-haspopup=\"true\"\r\n onClick={handleToggle}\r\n color=\"primary\"\r\n />\r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* {t('GoodMorning')}, */}\r\n \r\n {`${whoami?.firstName} ${whoami?.lastName}`}\r\n \r\n \r\n {`${whoami?.roles?.join(', ')}`}\r\n \r\n \r\n \r\n \r\n \r\n handleListItemClick(event, 0, '/user/settings')}\r\n >\r\n \r\n \r\n \r\n {t('AccountSettings')}} />\r\n \r\n\r\n \r\n \r\n \r\n \r\n {t('Logout')}} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProfileSection;\r\n","import { useState, useRef, useEffect } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Avatar, Box, ButtonBase, ClickAwayListener, Paper, Popper, useMediaQuery } from '@mui/material';\r\n\r\n// project imports\r\nimport { Transitions } from '@qubiteq/qublib';\r\nimport MainCard from 'ui-component/cards/MainCard';\r\n\r\n// assets\r\nimport { IconWorld } from '@tabler/icons';\r\n\r\n// propTypes\r\nimport propTypes from 'prop-types';\r\n\r\n// ==============================|| NOTIFICATION ||============================== //\r\n\r\nconst Wrapper = ({ children }) => {\r\n const theme = useTheme();\r\n const matchesXs = useMediaQuery(theme.breakpoints.down('md'));\r\n\r\n const [open, setOpen] = useState(false);\r\n /**\r\n * anchorRef is used on different componets and specifying one type leads to other components throwing an error\r\n * */\r\n const anchorRef = useRef(null);\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n const prevOpen = useRef(open);\r\n useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current.focus();\r\n }\r\n prevOpen.current = open;\r\n }, [open]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nWrapper.propTypes = {\r\n children: propTypes.node\r\n};\r\n\r\nexport default Wrapper;\r\n","import { useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { SET_LANGUAGE } from 'store/actions';\r\n\r\n// i18next\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Grid, Divider, FormControl, FormControlLabel, Radio, RadioGroup, Stack, Typography } from '@mui/material';\r\n\r\n// project imports\r\nimport Wrapper from './Wrapper';\r\n\r\n// ==============================|| LANGUAGE ||============================== //\r\n\r\nconst LanguageSection = () => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { language } = useSelector((state) => state.customization);\r\n const [selectedLanguage, setLanguage] = useState(language);\r\n const { i18n, t } = useTranslation();\r\n\r\n const handleLanguageChange = (e) => {\r\n setLanguage(e.target.value);\r\n dispatch({ type: SET_LANGUAGE, language: e.target.value });\r\n i18n.changeLanguage(e.target.value);\r\n };\r\n\r\n const LanguageRadioGroup = () => (\r\n \r\n \r\n }\r\n label=\"English\"\r\n sx={{\r\n '& .MuiSvgIcon-root': { fontSize: 28 },\r\n '& .MuiFormControlLabel-label': { color: theme.palette.grey[900] }\r\n }}\r\n />\r\n }\r\n label=\"Ελληνικά\"\r\n sx={{\r\n '& .MuiSvgIcon-root': { fontSize: 28 },\r\n '& .MuiFormControlLabel-label': { color: theme.palette.grey[900] }\r\n }}\r\n />\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('SelectLanguage')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LanguageSection;\r\n","import PropTypes from 'prop-types';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Avatar, Box, ButtonBase } from '@mui/material';\r\n\r\n// project imports\r\nimport LogoSection from '../LogoSection';\r\n// import SearchSection from './SearchSection';\r\nimport ProfileSection from './ProfileSection';\r\n// import NotificationSection from './NotificationSection';\r\nimport LanguageSection from './LanguageSection';\r\n// assets\r\nimport { IconMenu2 } from '@tabler/icons';\r\n\r\n// ==============================|| MAIN NAVBAR / HEADER ||============================== //\r\n\r\nconst Header = ({ handleLeftDrawerToggle }) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <>\r\n {/* logo & toggler button */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* header search */}\r\n {/* */}\r\n \r\n \r\n\r\n {/* notification & profile */}\r\n \r\n {/* */}\r\n \r\n \r\n );\r\n};\r\n\r\nHeader.propTypes = {\r\n handleLeftDrawerToggle: PropTypes.func\r\n};\r\n\r\nexport default Header;\r\n","import PropTypes from 'prop-types';\r\nimport { forwardRef, lazy, useEffect } from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Avatar, Chip, ListItemButton, ListItemIcon, ListItemText, Typography, useMediaQuery } from '@mui/material';\r\n\r\n// project imports\r\nimport { MENU_OPEN, SET_MENU } from 'store/actions';\r\nimport config from 'config';\r\n\r\n// assets\r\nimport FiberManualRecordIcon from '@mui/icons-material/FiberManualRecord';\r\n\r\n// i18n\r\nimport { Trans } from 'react-i18next';\r\n\r\nimport { Loadable } from '@qubiteq/qublib';\r\n\r\n// ==============================|| SIDEBAR MENU LIST ITEMS ||============================== //\r\n\r\nconst NavItem = ({ item, level }) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const menu = useSelector((state) => state.menu);\r\n const customization = useSelector((state) => state.customization);\r\n const matchesSM = useMediaQuery(theme.breakpoints.down('lg'));\r\n const location = useLocation();\r\n\r\n const Icon = Loadable(\r\n lazy(() =>\r\n import('@tabler/icons').then((module) => {\r\n return {\r\n default: module[item.icon]\r\n };\r\n })\r\n )\r\n );\r\n const itemIcon = item?.icon ? (\r\n \r\n ) : (\r\n id === item?.id) > -1 ? 8 : 6,\r\n height: menu.isOpen.findIndex((id) => id === item?.id) > -1 ? 8 : 6\r\n }}\r\n fontSize={level > 0 ? 'inherit' : 'medium'}\r\n />\r\n );\r\n\r\n let itemTarget = '_self';\r\n if (item.target) {\r\n itemTarget = '_blank';\r\n }\r\n\r\n let listItemProps = {\r\n component: forwardRef((props, ref) => )\r\n };\r\n if (item?.external) {\r\n listItemProps = { component: 'a', href: item.url, target: itemTarget };\r\n }\r\n\r\n useEffect(() => {\r\n if (item?.url.includes(location?.pathname?.split('/')[1])) {\r\n dispatch({ type: MENU_OPEN, id: item.id });\r\n }\r\n }, [location, dispatch, item.id, item?.url]);\r\n\r\n const itemHandler = (id) => {\r\n dispatch({ type: MENU_OPEN, id });\r\n if (matchesSM) dispatch({ type: SET_MENU, opened: false });\r\n };\r\n\r\n return (\r\n 1 ? 'transparent !important' : 'inherit',\r\n py: level > 1 ? 1 : 1.25,\r\n pl: `${level * 24}px`\r\n }}\r\n selected={menu.isOpen.findIndex((id) => id === item.id) > -1}\r\n onClick={() => itemHandler(item.id)}\r\n >\r\n {itemIcon}\r\n \r\n {item.title}\r\n \r\n }\r\n secondary={\r\n item.caption && (\r\n \r\n {item.caption}\r\n \r\n )\r\n }\r\n />\r\n {item.chip && (\r\n {item.chip.avatar}}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nNavItem.propTypes = {\r\n item: PropTypes.object,\r\n level: PropTypes.number\r\n};\r\n\r\nexport default NavItem;\r\n","import PropTypes from 'prop-types';\r\nimport { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Collapse, List, ListItemButton, ListItemIcon, ListItemText, Typography } from '@mui/material';\r\n\r\n// project imports\r\nimport NavItem from '../NavItem';\r\n\r\n// assets\r\nimport FiberManualRecordIcon from '@mui/icons-material/FiberManualRecord';\r\nimport { IconChevronDown, IconChevronUp } from '@tabler/icons';\r\n\r\n// ==============================|| SIDEBAR MENU LIST COLLAPSE ITEMS ||============================== //\r\n\r\nconst NavCollapse = ({ menu, level }) => {\r\n const theme = useTheme();\r\n const customization = useSelector((state) => state.customization);\r\n\r\n const [open, setOpen] = useState(false);\r\n const [selected, setSelected] = useState(null);\r\n\r\n const handleClick = () => {\r\n setOpen(!open);\r\n setSelected(!selected ? menu.id : null);\r\n };\r\n\r\n // menu collapse & item\r\n const menus = menu.children?.map((item) => {\r\n switch (item.type) {\r\n case 'collapse':\r\n return ;\r\n case 'item':\r\n return ;\r\n default:\r\n return (\r\n \r\n Menu Items Error\r\n \r\n );\r\n }\r\n });\r\n\r\n const Icon = menu.icon;\r\n const menuIcon = menu.icon ? (\r\n \r\n ) : (\r\n 0 ? 'inherit' : 'medium'}\r\n />\r\n );\r\n\r\n return (\r\n <>\r\n 1 ? 'transparent !important' : 'inherit',\r\n py: level > 1 ? 1 : 1.25,\r\n pl: `${level * 24}px`\r\n }}\r\n selected={selected === menu.id}\r\n onClick={handleClick}\r\n >\r\n {menuIcon}\r\n \r\n {menu.title}\r\n \r\n }\r\n secondary={\r\n menu.caption && (\r\n \r\n {menu.caption}\r\n \r\n )\r\n }\r\n />\r\n {open ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {menus}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nNavCollapse.propTypes = {\r\n menu: PropTypes.object,\r\n level: PropTypes.number\r\n};\r\n\r\nexport default NavCollapse;\r\n","import PropTypes from 'prop-types';\r\n\r\n// i18n\r\nimport { Trans } from 'react-i18next';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Divider, List, Typography } from '@mui/material';\r\n\r\n// project imports\r\nimport NavItem from '../NavItem';\r\nimport NavCollapse from '../NavCollapse';\r\n\r\n// permissions\r\nimport { Can } from 'context/permissionContext';\r\n\r\n// ==============================|| SIDEBAR MENU LIST GROUP ||============================== //\r\n\r\nconst NavGroup = ({ item }) => {\r\n const theme = useTheme();\r\n // menu list collapse & items\r\n const items = item.children?.map((menu) => {\r\n switch (menu.type) {\r\n case 'collapse':\r\n return ;\r\n case 'item':\r\n if (menu.subject) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return ;\r\n\r\n default:\r\n return (\r\n \r\n Menu Items Error\r\n \r\n );\r\n }\r\n });\r\n\r\n return (\r\n \r\n {(allowed) =>\r\n allowed || !item.subject ? (\r\n <>\r\n \r\n {item.title}\r\n {item.caption && (\r\n \r\n {item.caption}\r\n \r\n )}\r\n \r\n )\r\n }\r\n >\r\n {items}\r\n \r\n\r\n {/* group divider */}\r\n \r\n \r\n ) : null\r\n }\r\n \r\n );\r\n};\r\n\r\nNavGroup.propTypes = {\r\n item: PropTypes.object\r\n};\r\n\r\nexport default NavGroup;\r\n","// material-ui\r\nimport { Skeleton, Stack, Typography } from '@mui/material';\r\n\r\n// project imports\r\nimport NavGroup from './NavGroup';\r\nimport { useSelector } from 'react-redux';\r\n// import menuItems from 'menu-items';\r\nimport { withSkeleton } from '@qubiteq/qublib';\r\nimport { useMe } from 'hooks/useMe';\r\n\r\n// ==============================|| SIDEBAR MENU LIST ||============================== //\r\n\r\nconst NavGroupSkeleton = () => {\r\n return (\r\n \r\n \r\n {[1, 2, 3, 4, 5].map((_, index) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nconst NavGroupWithSkeleton = withSkeleton(NavGroup, NavGroupSkeleton);\r\n\r\nconst MenuList = () => {\r\n const { menuItems } = useSelector((state) => state.menu);\r\n const { status } = useMe();\r\n const navItems = menuItems?.map((item) => {\r\n switch (item.type) {\r\n case 'group':\r\n return ;\r\n default:\r\n return (\r\n \r\n Menu Items Error\r\n \r\n );\r\n }\r\n });\r\n\r\n return <>{navItems};\r\n};\r\n\r\nexport default MenuList;\r\n","import PropTypes from 'prop-types';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, Drawer, useMediaQuery } from '@mui/material';\r\n\r\n// third-party\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { BrowserView, MobileView } from 'react-device-detect';\r\n\r\n// project imports\r\nimport MenuList from './MenuList';\r\nimport LogoSection from '../LogoSection';\r\n/* import MenuCard from './MenuCard'; */\r\nimport { drawerWidth } from 'store/constant';\r\n\r\n// ==============================|| SIDEBAR DRAWER ||============================== //\r\n\r\nconst Sidebar = ({ drawerOpen, drawerToggle, window }) => {\r\n const theme = useTheme();\r\n const matchUpMd = useMediaQuery(theme.breakpoints.up('md'));\r\n\r\n const drawer = (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const container = window !== undefined ? () => window.document.body : undefined;\r\n\r\n return (\r\n \r\n \r\n {drawer}\r\n \r\n \r\n );\r\n};\r\n\r\nSidebar.propTypes = {\r\n drawerOpen: PropTypes.bool,\r\n drawerToggle: PropTypes.func,\r\n window: PropTypes.object\r\n};\r\n\r\nexport default Sidebar;\r\n","// assets\r\nimport { IconDashboard, IconTool, IconUser, IconUsers, IconReportAnalytics, IconHome2, IconSettings } from '@tabler/icons';\r\n\r\n// constant\r\nconst icons = { IconHome2, IconTool, IconUsers, IconReportAnalytics, IconDashboard, IconUser, IconSettings };\r\n// ==============================|| DASHBOARD MENU ITEMS ||============================== //\r\n\r\nconst dashboard = {\r\n id: 'dashboard',\r\n title: 'Dashboard',\r\n type: 'group',\r\n children: [\r\n {\r\n id: 'Home.View',\r\n title: 'Home',\r\n type: 'item',\r\n url: '/home',\r\n icon: icons.IconHome2\r\n },\r\n {\r\n id: 'Users.View',\r\n title: 'Users',\r\n type: 'item',\r\n url: '/users/view',\r\n icon: icons.IconUser,\r\n breadcrumbs: true,\r\n subject: 'Users'\r\n },\r\n {\r\n id: 'Roles.View',\r\n title: 'Roles',\r\n type: 'item',\r\n url: '/roles/view',\r\n icon: icons.IconUsers,\r\n breadcrumbs: true,\r\n subject: 'Roles'\r\n },\r\n {\r\n id: 'AccountSettings.View',\r\n title: 'AccountSettings',\r\n type: 'item',\r\n url: '/user/settings',\r\n icon: icons.IconSettings\r\n }\r\n ]\r\n};\r\n\r\nexport default dashboard;\r\n","import dashboard from './dashboard';\r\n\r\n// ==============================|| MENU ITEMS ||============================== //\r\n\r\nconst menuItems = {\r\n items: [dashboard]\r\n};\r\n\r\nexport default menuItems;\r\n","import { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Outlet } from 'react-router-dom';\r\n\r\n// material-ui\r\nimport { styled, useTheme } from '@mui/material/styles';\r\nimport { AppBar, Box, CssBaseline, Toolbar, useMediaQuery } from '@mui/material';\r\n\r\n// project imports\r\nimport Breadcrumbs from 'ui-component/extended/Breadcrumbs';\r\nimport Header from './Header';\r\nimport Sidebar from './Sidebar';\r\nimport navigation from 'menu-items';\r\nimport { drawerWidth } from 'store/constant';\r\nimport { SET_MENU } from 'store/actions';\r\n\r\n// assets\r\nimport { IconChevronRight } from '@tabler/icons';\r\n\r\n// styles\r\nconst Main = styled('main', { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({\r\n ...theme.typography.mainContent,\r\n ...(!open && {\r\n borderBottomLeftRadius: 0,\r\n borderBottomRightRadius: 0,\r\n transition: theme.transitions.create('margin', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen\r\n }),\r\n [theme.breakpoints.up('md')]: {\r\n marginLeft: -(drawerWidth - 20),\r\n width: `calc(100% - ${drawerWidth}px)`\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n marginLeft: '20px',\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n padding: '16px'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n marginLeft: '10px',\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n padding: '16px',\r\n marginRight: '10px'\r\n }\r\n }),\r\n ...(open && {\r\n transition: theme.transitions.create('margin', {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen\r\n }),\r\n marginLeft: 0,\r\n borderBottomLeftRadius: 0,\r\n borderBottomRightRadius: 0,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n [theme.breakpoints.down('md')]: {\r\n marginLeft: '20px'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n marginLeft: '10px'\r\n }\r\n })\r\n}));\r\n\r\n// ==============================|| MAIN LAYOUT ||============================== //\r\n\r\nconst MainLayout = () => {\r\n const theme = useTheme();\r\n const matchDownMd = useMediaQuery(theme.breakpoints.down('lg'));\r\n\r\n // Handle left drawer\r\n const leftDrawerOpened = useSelector((state) => state.menu.opened);\r\n const dispatch = useDispatch();\r\n const handleLeftDrawerToggle = () => {\r\n dispatch({ type: SET_MENU, opened: !leftDrawerOpened });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch({ type: SET_MENU, opened: !matchDownMd });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [matchDownMd]);\r\n\r\n return (\r\n \r\n \r\n {/* header */}\r\n \r\n \r\n
\r\n \r\n \r\n\r\n {/* drawer */}\r\n \r\n\r\n {/* main content */}\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MainLayout;\r\n","// mui\r\nimport { Stack, Grid, Typography, Box, Button } from '@mui/material';\r\n\r\n// colors\r\nimport colors from 'assets/scss/_themes-vars.module.scss';\r\n\r\n// Apis\r\nimport { auth } from 'apis';\r\n\r\n// react-router-dom\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\n// store\r\nimport { VERIFY_EMAIL } from 'store/actions';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { PinInput } from '@qubiteq/qublib';\r\n\r\nimport { useSnackbar } from 'notistack';\r\n\r\nimport { useMe } from 'hooks/useMe';\r\n\r\nimport { useQueryClient } from 'react-query';\r\n\r\nconst Verification = () => {\r\n const dispatch = useDispatch();\r\n const { isLoggedIn } = useSelector((state) => state.auth);\r\n const queryClient = useQueryClient();\r\n const { whoami } = useMe();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const navigate = useNavigate();\r\n const userIdentifier = whoami?.email;\r\n\r\n const onComplete = (pin) => {\r\n auth.ValidateVerificationPin({ userIdentifier, value: Number(pin) })\r\n .then((res) => {\r\n if (res.success === 1) {\r\n if (!isLoggedIn) {\r\n navigate('/login');\r\n }\r\n dispatch({ type: VERIFY_EMAIL });\r\n queryClient.invalidateQueries('me');\r\n enqueueSnackbar('Το email επιβεβαιώθηκε με επιτυχία', {\r\n variant: 'success'\r\n });\r\n }\r\n if (res.success === 0) {\r\n enqueueSnackbar('Το email δεν επιβεβαιώθηκε', {\r\n variant: 'error'\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n console.log('error', error);\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Enter the verification code\r\n \r\n An email with the verification code was sent to your email account\r\n \r\n \r\n {\r\n auth.sendVerificationEmail({ emailTo: userIdentifier })\r\n .then((res) => {\r\n console.log('res', res);\r\n enqueueSnackbar('Το PIN έχει σταλεί στο email σας', {\r\n variant: 'success'\r\n });\r\n })\r\n .catch((error) => {\r\n console.log('error', error);\r\n });\r\n }}\r\n sx={{ mt: 4 }}\r\n >\r\n Επαναποστολή PIN\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Verification;\r\n","// mui\r\nimport { Grid, Stack, Typography } from '@mui/material';\r\n\r\n// icons\r\nimport { IconLockAccess } from '@tabler/icons';\r\n\r\n// colors\r\nimport colors from 'assets/scss/_themes-vars.module.scss';\r\n\r\nexport default () => {\r\n return (\r\n \r\n \r\n \r\n \r\n Restricted permission\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","// project imports\r\nimport VerificationPrompt from 'views/verification';\r\n\r\nimport { PermissionDenied } from './components';\r\n\r\nimport { useMe } from 'hooks/useMe';\r\n\r\nexport const withPermission =\r\n (Component, { action, subject, unrestricted }) =>\r\n (props) => {\r\n const { whoami, isLoading, isError } = useMe();\r\n const isEmailVerified = whoami?.isEmailVerified;\r\n const hasPermission = whoami?.permissions?.can(action, subject);\r\n\r\n if (isLoading || isError) {\r\n return null;\r\n }\r\n if (!isEmailVerified) {\r\n return ;\r\n }\r\n if (!hasPermission && !unrestricted) {\r\n return ;\r\n }\r\n return ;\r\n };\r\n","import { lazy } from 'react';\r\n\r\n// project imports\r\nimport MainLayout from 'layout/MainLayout';\r\nimport { Loadable } from '@qubiteq/qublib';\r\n\r\n// permission\r\nimport { withPermission } from 'hoc';\r\n\r\n// react-router\r\nimport { Navigate } from 'react-router-dom';\r\n\r\n// dashboard routing\r\n\r\nconst HomeView = withPermission(Loadable(lazy(() => import('views/dashboard/Home'))), {\r\n unrestricted: true\r\n});\r\nconst AccountSettings = withPermission(Loadable(lazy(() => import('views/settings/AccountSettings'))), {\r\n unrestricted: true\r\n});\r\nconst UsersView = withPermission(Loadable(lazy(() => import('views/dashboard/Users').then((module) => ({ default: module.View })))), {\r\n action: 'View',\r\n subject: 'Users'\r\n});\r\nconst UsersManage = withPermission(Loadable(lazy(() => import('views/dashboard/Users').then((module) => ({ default: module.Manage })))), {\r\n action: 'Manage',\r\n subject: 'Users'\r\n});\r\nconst RolesView = withPermission(Loadable(lazy(() => import('views/dashboard/Roles').then((module) => ({ default: module.View })))), {\r\n action: 'View',\r\n subject: 'Roles'\r\n});\r\nconst ProductsView = withPermission(Loadable(lazy(() => import('views/dashboard/Products').then((module) => ({ default: module.View })))), {\r\n action: 'View',\r\n subject: 'Products'\r\n});\r\nconst RolesManage = withPermission(Loadable(lazy(() => import('views/dashboard/Roles').then((module) => ({ default: module.Manage })))), {\r\n action: 'Manage',\r\n subject: 'Roles'\r\n});\r\nconst FunctionsView = withPermission(\r\n Loadable(lazy(() => import('views/dashboard/Functions').then((module) => ({ default: module.View })))),\r\n {\r\n action: 'View',\r\n subject: 'Functions'\r\n }\r\n);\r\n// admin routing\r\nconst ImpersonationView = withPermission(Loadable(lazy(() => import('views/admin/Impersonation'))), {\r\n action: 'Impersonation',\r\n subject: 'Admin'\r\n});\r\nconst HomologationView = withPermission(\r\n Loadable(lazy(() => import('views/dashboard/Homologation').then((module) => ({ default: module.View })))),\r\n {\r\n action: 'View',\r\n subject: 'Homologation'\r\n }\r\n);\r\nconst HomologationManage = withPermission(\r\n Loadable(lazy(() => import('views/dashboard/Homologation').then((module) => ({ default: module.Manage })))),\r\n {\r\n action: 'Manage',\r\n subject: 'Homologation'\r\n }\r\n);\r\nconst DutiesView = withPermission(Loadable(lazy(() => import('views/dashboard/Duties').then((module) => ({ default: module.View })))), {\r\n action: 'View',\r\n subject: 'Duties'\r\n});\r\nconst DutiesManage = withPermission(Loadable(lazy(() => import('views/dashboard/Duties').then((module) => ({ default: module.Manage })))), {\r\n action: 'Manage',\r\n subject: 'Duties'\r\n});\r\nconst RankingListTypeView = withPermission(\r\n Loadable(lazy(() => import('views/dashboard/RankingListType').then((module) => ({ default: module.View })))),\r\n {\r\n action: 'View',\r\n subject: 'RankingListType'\r\n }\r\n);\r\n\r\nconst PaymentLandingPage = withPermission(Loadable(lazy(() => import('views/payments/').then((module) => ({ default: module.Manage })))), {\r\n action: 'Manage',\r\n subject: 'Duties'\r\n});\r\n\r\nconst PageNotFound = Loadable(lazy(() => import('views/PageNotFound')));\r\nconst ServerError = Loadable(lazy(() => import('views/ServerError')));\r\nconst PageUnderConstruction = Loadable(lazy(() => import('views/PageUnderConstruction')));\r\n\r\n// user manage\r\nconst UserDetails = Loadable(lazy(() => import('views/dashboard/Users/Manage/Details')));\r\nconst UserRoles = Loadable(lazy(() => import('views/dashboard/Users/Manage/Roles')));\r\nconst UserPermissions = Loadable(lazy(() => import('views/dashboard/Users/Manage/Permissions')));\r\n\r\n// role manage\r\nconst RolesDetails = Loadable(lazy(() => import('views/dashboard/Roles/Manage/Details')));\r\nconst RolesPermissions = Loadable(lazy(() => import('views/dashboard/Roles/Manage/Permissions')));\r\n// ==============================|| MAIN ROUTING ||============================== //\r\n\r\nconst MainRoutes = () => [\r\n {\r\n path: '',\r\n element: ,\r\n children: [\r\n {\r\n path: 'home',\r\n element: \r\n },\r\n {\r\n path: 'user/settings',\r\n element: \r\n },\r\n {\r\n path: '',\r\n element: \r\n },\r\n {\r\n path: 'site-is-temporarily-unavailable',\r\n element: \r\n },\r\n {\r\n path: '/invite',\r\n element: (\r\n
\r\n Παρακαλώ αποσυνδεθείτε για να αποδεχθείτε την πρόσκληση!\r\n
\r\n )\r\n },\r\n {\r\n path: '*',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: 'users',\r\n element: ,\r\n children: [\r\n {\r\n path: 'view',\r\n element: \r\n },\r\n {\r\n path: 'manage/:id',\r\n element: ,\r\n children: [\r\n {\r\n path: 'details',\r\n element: \r\n },\r\n {\r\n path: 'roles',\r\n element: \r\n },\r\n {\r\n path: 'permissions',\r\n element: \r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'roles',\r\n element: ,\r\n children: [\r\n {\r\n path: 'view',\r\n element: \r\n },\r\n {\r\n path: 'manage/:id',\r\n element: ,\r\n children: [\r\n {\r\n path: 'details',\r\n element: \r\n },\r\n {\r\n path: 'permissions',\r\n element: \r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'products',\r\n element: ,\r\n children: [\r\n {\r\n path: 'view',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: 'admin',\r\n element: ,\r\n children: [\r\n {\r\n path: 'impersonation',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: 'homologation',\r\n element: ,\r\n children: [\r\n {\r\n path: 'view',\r\n element: \r\n },\r\n {\r\n path: 'manage/:id',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: 'duties',\r\n element: ,\r\n children: [\r\n {\r\n path: 'view',\r\n element: \r\n },\r\n {\r\n path: 'manage/:id',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: 'functions',\r\n element: ,\r\n children: [\r\n {\r\n path: 'view',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: 'payments',\r\n element: ,\r\n children: [\r\n {\r\n path: 'view',\r\n element: \r\n }\r\n ]\r\n }\r\n];\r\n\r\nexport default MainRoutes;\r\n","// material-ui\r\nimport { styled } from '@mui/material/styles';\r\n\r\n// ==============================|| WRAPPER ||============================== //\r\n\r\nexport const MinimalWrapper = styled('div')(({ theme }) => ({\r\n backgroundColor: theme.palette.primary.light,\r\n minHeight: '100vh'\r\n}));\r\n","import { MinimalWrapper } from 'ui-component/wrappers';\r\nimport { Stack, Box } from '@mui/material';\r\nimport { Outlet } from 'react-router-dom';\r\nimport LanguageSection from 'layout/MainLayout/Header/LanguageSection';\r\n// ==============================|| MINIMAL LAYOUT ||============================== //\r\n\r\nconst MinimalLayout = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default MinimalLayout;\r\n","import { lazy } from 'react';\r\nimport { Navigate } from 'react-router-dom';\r\n\r\n// project imports\r\nimport { Loadable } from '@qubiteq/qublib';\r\nimport MinimalLayout from 'layout/MinimalLayout';\r\nimport { element } from 'prop-types';\r\n\r\n// login option 3 routing\r\nconst AuthLogin3 = Loadable(lazy(() => import('views/authentication/authentication3/Login3')));\r\nconst AuthRegister3 = Loadable(lazy(() => import('views/authentication/authentication3/Register3')));\r\nconst ResetPassword = Loadable(lazy(() => import('views/authentication/forgotPassword')));\r\nconst UserInvitation = Loadable(lazy(() => import('views/authentication/userInvitation')));\r\nconst Transaction = Loadable(lazy(() => import('views/authentication/transaction')));\r\nconst Success = Loadable(lazy(() => import('views/authentication/transaction/response')));\r\nconst Cancel = Loadable(lazy(() => import('views/authentication/transaction/response')));\r\n\r\n// ==============================|| AUTHENTICATION ROUTING ||============================== //\r\n\r\nconst AuthenticationRoutes = () => [\r\n {\r\n path: '/',\r\n element: ,\r\n children: [\r\n {\r\n path: '/login',\r\n element: \r\n },\r\n {\r\n path: '/register',\r\n element: \r\n },\r\n {\r\n path: '/reset/:token',\r\n element: \r\n },\r\n {\r\n path: '/invite',\r\n element: \r\n },\r\n {\r\n path: '/',\r\n element: \r\n },\r\n {\r\n path: '/transaction',\r\n element: \r\n },\r\n {\r\n path: '/success',\r\n element: \r\n },\r\n {\r\n path: '/cancel',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: '*',\r\n element: \r\n }\r\n];\r\n\r\nexport default AuthenticationRoutes;\r\n","import { memo } from 'react';\r\nimport { useRoutes } from 'react-router-dom';\r\n\r\n// routes\r\nimport MainRoutes from './MainRoutes';\r\nimport AuthenticationRoutes from './AuthenticationRoutes';\r\nimport config from 'config';\r\n\r\n// store\r\nimport { useSelector } from 'react-redux';\r\n\r\n// ==============================|| ROUTING RENDER ||============================== //\r\n\r\nconst Routes = memo(() => {\r\n const { isLoggedIn } = useSelector((state) => state.auth);\r\n const routes = isLoggedIn ? MainRoutes() : AuthenticationRoutes();\r\n return useRoutes(routes, config.basename);\r\n});\r\n\r\nexport default Routes;\r\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.colors?.primaryLight,\r\n main: theme.colors?.primaryMain,\r\n dark: theme.colors?.primaryDark,\r\n 200: theme.colors?.primary200,\r\n 800: theme.colors?.primary800\r\n },\r\n secondary: {\r\n light: theme.colors?.secondaryLight,\r\n main: theme.colors?.secondaryMain,\r\n dark: theme.colors?.secondaryDark,\r\n 200: theme.colors?.secondary200,\r\n 800: 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: 600,\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: 600\r\n },\r\n h4: {\r\n fontSize: '1rem',\r\n color: theme.heading,\r\n fontWeight: 800\r\n },\r\n h3: {\r\n fontSize: '1.25rem',\r\n color: theme.heading,\r\n fontWeight: 800\r\n },\r\n h2: {\r\n fontSize: '1.5rem',\r\n color: theme.heading,\r\n fontWeight: 800\r\n },\r\n h1: {\r\n fontSize: '2.125rem',\r\n color: theme.heading,\r\n fontWeight: 800\r\n },\r\n subtitle1: {\r\n fontSize: '0.875rem',\r\n fontWeight: 400,\r\n color: theme.textDarkPrimary\r\n },\r\n subtitle2: {\r\n fontSize: '0.8rem',\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: 600\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 error: {\r\n color: theme.colors.errorMain\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 { createTheme } from '@mui/material/styles';\r\n\r\n// assets\r\nimport colors from 'assets/scss/_themes-vars.module.scss';\r\n\r\n// project imports\r\nimport componentStyleOverrides from './compStyleOverride';\r\nimport themePalette from './palette';\r\nimport themeTypography from './typography';\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 const color = colors;\r\n\r\n const themeOption = {\r\n colors: color,\r\n heading: color.grey900,\r\n paper: color.paper,\r\n backgroundDefault: color.paper,\r\n background: color.primaryLight,\r\n darkTextPrimary: color.grey700,\r\n darkTextSecondary: color.grey500,\r\n textDark: color.grey900,\r\n menuSelected: color.secondaryDark,\r\n menuSelectedBack: color.secondaryLight,\r\n divider: color.grey200,\r\n customization\r\n };\r\n\r\n const themeOptions = {\r\n direction: '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 };\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.colors?.paper;\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 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 fontWeight: 'bold'\r\n }\r\n }\r\n }\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: {\r\n background: bgColor,\r\n borderRadius: `${theme?.customization?.borderRadius}px`,\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: 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: bgColor,\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.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?.colors?.primaryLight\r\n }\r\n }\r\n },\r\n MuiDivider: {\r\n styleOverrides: {\r\n root: {\r\n borderColor: theme.divider,\r\n opacity: 1\r\n }\r\n }\r\n },\r\n MuiAvatar: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.colors?.primaryDark,\r\n background: 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 MuiTooltip: {\r\n styleOverrides: {\r\n tooltip: {\r\n color: theme.paper,\r\n background: theme.colors?.grey700\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 { useSelector } from 'react-redux';\r\n\r\nimport { PaymentLandingPage } from 'views/payments/';\r\n\r\nimport { ThemeProvider } from '@mui/material/styles';\r\nimport { CssBaseline, StyledEngineProvider, Slide } from '@mui/material';\r\n\r\n// routing\r\nimport Routes from 'routes';\r\n\r\n// defaultTheme\r\nimport themes from 'themes';\r\n\r\n// project imports\r\nimport NavigationScroll from 'layout/NavigationScroll';\r\n\r\nimport { QueryClient, QueryClientProvider } from 'react-query';\r\n\r\nimport { SnackbarProvider } from 'notistack';\r\n\r\n// permissions\r\nimport { PermissionProvider } from 'context/permissionContext';\r\n\r\nimport { UserProvider } from 'context/userContext';\r\n\r\nimport { setLicenseKey } from '@grapecity/wijmo';\r\n\r\n// paypal\r\nimport { PayPalScriptProvider } from '@paypal/react-paypal-js';\r\n\r\nconst queryClient = new QueryClient();\r\n\r\n// ==============================|| APP ||============================== //\r\n\r\nconst App = () => {\r\n const customization = useSelector((state) => state.customization);\r\n\r\n console.log('window', window);\r\n const data = window.localStorage.getItem('CONFIG');\r\n window.CONFIG = JSON.parse(data);\r\n\r\n console.log(window.CONFIG);\r\n setLicenseKey(window.CONFIG.WIJMO_LICENSE_KEY);\r\n\r\n const initialOptions = {\r\n 'client-id': process.env.REACT_APP_PAYPAL_CLIENT_ID,\r\n currency: 'USD',\r\n intent: 'capture',\r\n components: 'buttons,marks,funding-eligibility'\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\n\r\ni18n.use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n debug: true,\r\n fallbackLng: 'en',\r\n interpolation: {\r\n escapeValue: false\r\n },\r\n resources: {\r\n en: {\r\n translation: {\r\n Home: 'Home',\r\n Users: 'Users',\r\n Roles: 'Roles',\r\n Analytics: 'Analytics',\r\n AccountSettings: 'Account Settings',\r\n GoodMorning: 'Good Morning',\r\n GoodEvening: 'Good Evening',\r\n Dashboard: 'Dashboard',\r\n SelectLanguage: 'Select language',\r\n EnterCredsContinue: 'Enter your credentials to continue',\r\n LoginEmailUsername: 'Login with email or username',\r\n Login: 'Login',\r\n Logout: 'Logout',\r\n ForgotPassword: 'Forgot my password',\r\n DontHaveAcount: \"Don't have an account?\",\r\n LoginSuccess: 'Login successful',\r\n SomethingWrong: 'Something went wrong!',\r\n Email: 'Email',\r\n Password: 'Password',\r\n ConfirmPassword: 'Confirm password',\r\n RequiredField: 'Required field',\r\n CreateAccount: 'Create account',\r\n YourCreds: 'Enter your credentials',\r\n AcceptTerms: 'Accept terms and conditions',\r\n AcceptTermsError: 'You have to accept the terms and conditions',\r\n AlreadyAccount: 'Already have an account?',\r\n SignUp: 'Sign up',\r\n Firstname: 'Firstname',\r\n Lastname: 'Lastname',\r\n PhoneNumber: 'Phone number',\r\n PasswordsNotMatching: 'Passwords do not match',\r\n InvalidDate: 'Invalid date',\r\n InvalidPhone: 'Invalid phone',\r\n InvalidEmail: 'Invalid email',\r\n SiteUnavailable: 'Site is temporarily unavailable :(',\r\n PageNotFound: 'Page not found :(',\r\n PageUnderConstruction: '🚚 Page is under construction 🚚',\r\n SelectTransactionsStep: 'Athlete Selection',\r\n SelectPaymentMethodStep: 'Payment Method',\r\n PaymentDetailsStep: 'Payment Details',\r\n PaymentReviewStep: 'Transaction Result'\r\n }\r\n },\r\n gre: {\r\n translation: {\r\n Home: 'Αρχική',\r\n Users: 'Χρήστες',\r\n Roles: 'Ρολοι',\r\n Analytics: 'Aναλυτικά στοιχεία',\r\n AccountSettings: 'Ρυθμίσεις λογαριασμού',\r\n GoodMorning: 'Καλημέρα',\r\n GoodEvening: 'Καλησπέρα',\r\n Dashboard: 'Ταμπλό',\r\n SelectLanguage: 'Επιλογή γλώσσας',\r\n EnterCredsContinue: 'Εισάγεται τα στοιχεία σας για να συνεχίσετε',\r\n LoginEmailUsername: 'Σύνδεση μέσω Email ή Όνομα Χρήστη',\r\n Login: 'Σύνδεση',\r\n Logout: 'Αποσύνδεση',\r\n ForgotPassword: 'Ξέχασα τον κωδικό μου',\r\n DontHaveAcount: 'Δεν έχετε λογαριασμό;',\r\n LoginSuccess: 'Επιτυχία σύνδεσης',\r\n SomethingWrong: 'Κάτι πήγε λάθος',\r\n Email: 'Δ/νση Ηλ. Ταχυδρομίου',\r\n Password: 'Κωδικός πρόσβασης',\r\n ConfirmPassword: 'Επιβεβαιώση κωδικού πρόσβασης',\r\n RequiredField: 'Υπορχρεωτικό πεδίο',\r\n CreateAccount: 'Δημιουργία λογαριασμού',\r\n YourCreds: 'Καταχωρήστε τα στοιχεία σας',\r\n AcceptTerms: 'Αποδεχθείτε τους όρους χρήσης',\r\n AcceptTermsError: 'Πρέπει να αποδεχθείτε τους όρους χρήσης',\r\n AlreadyAccount: 'Έχετε ήδη λογαριασμό;',\r\n SignUp: 'Εγγραφή',\r\n Firstname: 'Όνομα',\r\n Lastname: 'Επώνυμο',\r\n PhoneNumber: 'Αριθμός τηλεφώνου',\r\n PasswordsNotMatching: 'Οι κωδικοί δεν ταιριάζουν',\r\n InvalidDate: 'Μη έγκυρη ημερομηνία',\r\n InvalidPhone: 'Μη έγκυρος αριθμός τηλεφώνου',\r\n InvalidEmail: 'Μη έγκυρο email',\r\n SiteUnavailable: 'Η ιστοσελίδα είναι προσωρινά μη διαθέσιμη :(',\r\n PageNotFound: 'Η σελίδα δεν βρέθηκε :(',\r\n PageUnderConstruction: '🚚 Η σελίδα είναι υπό κατασκευή 🚚',\r\n SelectTransactionsStep: 'Επιλογή Αθλητών',\r\n SelectPaymentMethodStep: 'Επιλογή Μεθόδου Πληρωμής',\r\n PaymentDetailsStep: 'Λεπτομέρειες Πληρωμής',\r\n PaymentReviewStep: 'Αναφορά Πληρωμής'\r\n }\r\n }\r\n }\r\n });\r\n\r\nexport default i18n;\r\n","import ReactDOM from 'react-dom';\r\n\r\n// third party\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\n\r\n// project imports\r\nimport * as serviceWorker from 'serviceWorker';\r\nimport App from 'App';\r\nimport { store, persistor } from 'store';\r\nimport './assets/main.css';\r\n\r\n// style + assets\r\nimport 'assets/scss/style.scss';\r\nimport '@grapecity/wijmo.styles/wijmo.css';\r\n\r\n// i18n\r\nimport './i18n';\r\n\r\nimport '@qubiteq/datagrid/dist/datagrid.cjs.development.css';\r\n\r\n/* eslint-disable */\r\n// ==============================|| REACT DOM RENDER ||============================== //\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\nimport React, { useState } from 'react';\r\nimport { Dropdown } from '@qubiteq/qublib';\r\nimport { PayPalButtons, usePayPalScriptReducer, PayPalMarks } from '@paypal/react-paypal-js';\r\n\r\nconst Checkout = () => {\r\n const [{ options, isPending }, dispatch] = usePayPalScriptReducer();\r\n const [currency, setCurrency] = useState(options.currency);\r\n const fundingSources = ['paypal', 'card', 'paylater'];\r\n const [selectedFundingSource, setSelectedFundingSource] = useState(fundingSources[0]);\r\n\r\n const onCurrencyChange = ({ target: { value } }) => {\r\n setCurrency(value);\r\n dispatch({\r\n type: 'resetOptions',\r\n value: {\r\n ...options,\r\n currency: value\r\n }\r\n });\r\n };\r\n\r\n const onCreateOrder = (data, actions) => {\r\n return actions.order.create({\r\n purchase_units: [\r\n {\r\n amount: {\r\n value: '20.70'\r\n }\r\n }\r\n ]\r\n });\r\n };\r\n\r\n const onApproveOrder = (data, actions) => {\r\n return actions.order.capture().then((details) => {\r\n console.log(details);\r\n const name = details.payer.name.given_name;\r\n alert(`Transaction completed by ${name}`);\r\n });\r\n };\r\n\r\n const onChange = ({ target: { value } }) => {\r\n setSelectedFundingSource(value);\r\n };\r\n return (\r\n
\r\n {isPending ? (\r\n

LOADING...

\r\n ) : (\r\n <>\r\n \r\n onCreateOrder(data, actions)}\r\n onApprove={(data, actions) => onApproveOrder(data, actions)}\r\n />\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Checkout;\r\n","// project imports\r\nimport MainCard from 'ui-component/cards/MainCard';\r\nimport Checkout from './Checkout/Chekcout';\r\n\r\n// ==============================|| PAYMENTS ||============================== //\r\n\r\nexport const PaymentLandingPage = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default PaymentLandingPage;\r\n","import axios from 'axios';\r\nimport { store } from 'store';\r\nimport { LOGOUT, REFRESH_TOKEN } from 'store/actions';\r\nimport moment from 'moment';\r\n/* eslint-disable import/no-cycle */\r\n/* eslint-disable no-underscore-dangle */\r\nimport { refreshToken } from 'apis/controllers/auth';\r\n\r\nconst axiosInstance = axios.create({\r\n withCredentials: true,\r\n baseURL: process.env.REACT_APP_BASE_URL\r\n});\r\n\r\naxiosInstance.interceptors.request.use((config) => {\r\n if (config.data) {\r\n Object.keys(config.data).forEach(async (key) => {\r\n // Find a valid date object and format it\r\n if (config.data[key] instanceof Date && !Number.isNaN(config.data[key])) {\r\n config.data[key] = moment(config.data[key]).format('YYYY-MM-DDTHH:mm');\r\n }\r\n });\r\n }\r\n const state = store.getState();\r\n config.headers = {\r\n ...config.headers,\r\n Authorization: `Bearer ${state.auth.token}`\r\n };\r\n return config;\r\n});\r\n\r\naxiosInstance.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n async (error) => {\r\n console.log('error', error);\r\n const originalRequest = error.config;\r\n if (error?.message === 'Network Error') {\r\n const errorObject = {\r\n response: {\r\n message: error.message,\r\n status: 503\r\n }\r\n };\r\n return Promise.reject(errorObject);\r\n }\r\n if (error?.response?.status === 453 && !originalRequest._retry) {\r\n const { dispatch } = store;\r\n dispatch({ type: LOGOUT });\r\n }\r\n if (error?.response?.status === 401 && !originalRequest._retry) {\r\n const state = store.getState();\r\n const { dispatch } = store;\r\n originalRequest._retry = true;\r\n try {\r\n const refreshResponse = await refreshToken({\r\n refreshToken: state.auth.refreshToken\r\n });\r\n dispatch({ type: REFRESH_TOKEN, payload: refreshResponse });\r\n return axiosInstance(originalRequest);\r\n } catch (ex) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default axiosInstance;\r\n","const config = {\r\n basename: '',\r\n defaultPath: '/',\r\n fontFamily: `'Roboto', sans-serif`,\r\n language: 'en',\r\n borderRadius: 12\r\n};\r\n\r\nexport default config;\r\n","// theme constant\r\nexport const gridSpacing = 3;\r\nexport const drawerWidth = 260;\r\nexport const appDrawerWidth = 320;\r\n"],"sourceRoot":""}