{"version":3,"sources":["hooks/useAuth.js","utils/axios.js","appSettings.js","components/SplashScreen.js","contexts/JWTAuthContext.js","services.js","components/Logo.js","layouts/MainLayout/TopBar.js","mixins/chartjs.js","serviceWorker.js","constants.js","store/rootReducer.js","store/index.js","contexts/SettingsContext.js","components/GlobalStyles.js","hooks/useScrollReset.js","components/ScrollReset.js","hooks/useSettings.js","theme/index.js","theme/typography.js","theme/shadows.js","layouts/DashboardLayout/NavBar/NavItem.js","layouts/DashboardLayout/NavBar/index.js","layouts/DashboardLayout/TopBar/Account.js","layouts/DashboardLayout/TopBar/index.js","layouts/DashboardLayout/FooterBar/index.js","layouts/DashboardLayout/index.js","layouts/MainLayout/index.js","components/LoadingScreen.js","components/AuthGuard.js","components/GuestGuard.js","routes.js","App.js","index.js","components/SessionInfo.js"],"names":["useAuth","useContext","AuthContext","axiosInstance","axios","create","baseURL","appSettings","apiUrl","interceptors","response","use","data","success","Promise","reject","error","status","window","location","href","process","useStyles","makeStyles","theme","root","alignItems","backgroundColor","palette","background","default","display","flexDirection","height","justifyContent","left","padding","spacing","position","top","width","zIndex","SlashScreen","classes","className","Box","LinearProgress","initialAuthState","isAuthenticated","isInitialised","user","isValidToken","accessToken","decoded","jwtDecode","currentTime","Date","now","exp","setSession","localStorage","setItem","tokenClaims","jwt_decode","fullName","firstName","lastName","defaults","headers","common","Authorization","removeItem","reducer","state","action","type","payload","createContext","login","resolve","logout","AuthProvider","children","useReducer","dispatch","email","password","a","services","getToken","undefined","useEffect","getItem","err","console","initialise","Provider","value","SplashScreen","username","serviceResponse","fetch","method","body","JSON","stringify","then","ok","json","catch","getMyProfile","get","SessionInfo","updateMyProfile","post","changePassword","searchChaldeanCharts","searchBasicCharts","searchEssenceCharts","searchBusinessCharts","searchOrders","getUsers","getUser","userGuid","addUser","put","updateUserDetails","deleteUser","delete","updateUserPassword","getSettings","updateReportsSettings","updatePayPalSettings","updateSMTPSettings","getChaldeanChart","reportGuid","addChaldeanChart","updateChaldeanChart","deleteChaldeanChart","getTemplateLinkChaldeanChart","sendChaldeanChart","getBasicChart","addBasicChart","updateBasicChart","deleteBasicChart","getTemplateLinkBasicChart","sendBasicChart","getEssenceChart","addEssenceChart","updateEssenceChart","deleteEssenceChart","getTemplateLinkEssenceChart","sendEssenceChart","getBusinessChart","addBusinessChart","updateBusinessChart","deleteBusinessChart","getTemplateLinkBusinessChart","sendBusinessChart","Logo","props","alt","src","textAlign","toolbar","logo","marginRight","link","fontWeight","typography","fontWeightMedium","marginLeft","divider","TopBar","rest","AppBar","clsx","color","Grid","container","direction","justify","style","borderBottom","Toolbar","to","Hidden","xsDown","smUp","Chart","helpers","extend","elements","Rectangle","prototype","draw","right","bottom","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","borderWidth","cornerRadius","config","options","horizontal","base","x","y","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","beginPath","fillStyle","strokeStyle","borderColor","lineWidth","corners","startCorner","indexOf","cornerAt","index","corner","moveTo","i","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","Boolean","hostname","match","THEMES","LIGHT","rootReducer","combineReducers","form","formReducer","store","configureStore","devTools","useReduxSelector","defaultSettings","responsiveFontSizes","ONE_LIGHT","storeSettings","settings","SettingsContext","saveSettings","SettingsProvider","useState","currentSettings","setCurrentSettings","restoredSettings","storedData","parse","restoreSettings","document","dir","update","mergedSettings","_","merge","Consumer","createStyles","boxSizing","margin","html","GlobalStyles","useScrollReset","useLocation","scrollTo","pathname","ScrollReset","useSettings","baseOptions","h1","fontSize","letterSpacing","h2","h3","h4","h5","h6","overline","overrides","MuiLinearProgress","borderRadius","overflow","MuiListItemIcon","minWidth","MuiChip","themesOptions","name","MuiInputBase","input","opacity","colors","grey","active","white","dark","paper","primary","main","secondary","text","shadows","item","paddingTop","paddingBottom","itemLeaf","button","textTransform","buttonLeaf","fontWeightRegular","icon","title","NavItem","depth","Icon","Info","info","openProp","open","setOpen","paddingLeft","ListItem","disableGutters","key","Button","onClick","prevOpen","size","Collapse","in","activeClassName","component","RouterLink","exact","defaultProps","sections","items","LayoutIcon","FileIcon","subheader","GlobeIcon","SettingsIcon","renderNavItems","List","disablePadding","reduce","acc","matchPath","path","push","reduceChildRoutes","mobileDrawer","desktopDrawer","avatar","cursor","NavBar","onMobileClose","openMobile","content","suppressScrollX","lgUp","p","map","section","ListSubheader","disableSticky","Drawer","anchor","onClose","variant","mdDown","popover","Account","history","useHistory","ref","useRef","enqueueSnackbar","useSnackbar","isOpen","handleClose","handleLogout","anchorOrigin","vertical","ButtonBase","Avatar","Typography","getFullName","Menu","keepMounted","PaperProps","getContentAnchorEl","anchorEl","current","MenuItem","drawer","boxShadow","minHeight","onMobileNavOpen","IconButton","SvgIcon","ml","flexGrow","appBar","FooterBar","pt","wrapper","flex","breakpoints","up","contentContainer","DashboardLayout","isMobileNavOpen","setMobileNavOpen","MainLayout","LoadingScreen","NProgress","start","done","AuthGuard","GuestGuard","routes","lazy","guard","layout","jss","plugins","jssPreset","rtl","createBrowserHistory","App","themeOptions","find","warn","Error","createMuiTheme","createTheme","ThemeProvider","StylesProvider","utils","MomentUtils","dense","maxSnack","renderRoutes","fallback","route","Guard","Fragment","Layout","Component","render","enableES5","ReactDOM","getElementById","storageKey","token","e","isValid","result","removeToken"],"mappings":"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","file":"static/js/main.b43fb691.chunk.js","sourcesContent":["import { useContext } from 'react';\nimport AuthContext from 'src/contexts/JWTAuthContext';\n\nconst useAuth = () => useContext(AuthContext);\n\nexport default useAuth;\n","import axios from 'axios';\nimport { appSettings } from 'src/appSettings';\n\nlet axiosInstance = axios.create({\n baseURL: appSettings.apiUrl\n});\n\naxiosInstance.interceptors.response.use(\n response => {\n if (response.data.success === true) {\n return response.data;\n } else {\n return Promise.reject('API result failed.')\n }\n }, \n error => {\n if (error.response.status === 401 || error.response.status === 403) {\n window.location.href = '/unauthorized';\n return Promise.reject(error);\n } else {\n return Promise.reject((error.response && error.response.data) || 'Something went wrong.')\n }\n }\n);\n\nexport default axiosInstance;\n","export const appSettings = {\r\n\tapiUrl: process.env.REACT_APP_API_URL + '/v1'\r\n};","import React from 'react';\nimport {\n Box,\n LinearProgress,\n makeStyles\n} from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n alignItems: 'center',\n backgroundColor: theme.palette.background.default,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n left: 0,\n padding: theme.spacing(3),\n position: 'fixed',\n top: 0,\n width: '100%',\n zIndex: 2000\n }\n}));\n\nconst SlashScreen = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n
\n );\n}\n\nexport default SlashScreen;\n","import React, {\n createContext,\n useEffect,\n useReducer\n} from 'react';\nimport jwtDecode from 'jwt-decode';\nimport SplashScreen from 'src/components/SplashScreen';\nimport axios from 'src/utils/axios';\nimport services from 'src/services';\nimport jwt_decode from \"jwt-decode\";\n\nconst initialAuthState = {\n isAuthenticated: false,\n isInitialised: false,\n user: null\n};\n\nconst isValidToken = (accessToken) => {\n if (!accessToken) {\n return false;\n }\n\n const decoded = jwtDecode(accessToken);\n const currentTime = Date.now() / 1000;\n\n return decoded.exp > currentTime;\n};\n\nconst setSession = (accessToken) => {\n if (accessToken) {\n localStorage.setItem('_seauth', accessToken);\n const tokenClaims = jwt_decode(accessToken);\n let fullName = `${tokenClaims.firstName} ${tokenClaims.lastName}`;\n localStorage.setItem('_fname', fullName);\n\n axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n } else {\n localStorage.removeItem('_seauth');\n delete axios.defaults.headers.common.Authorization;\n }\n};\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'INITIALISE': {\n const { isAuthenticated, user } = action.payload;\n\n return {\n ...state,\n isAuthenticated,\n isInitialised: true,\n user\n };\n }\n case 'LOGIN': {\n return {\n ...state,\n isAuthenticated: true\n };\n }\n case 'LOGOUT': {\n return {\n ...state,\n isAuthenticated: false\n };\n }\n default: {\n return { ...state };\n }\n }\n};\n\nconst AuthContext = createContext({\n ...initialAuthState,\n login: () => Promise.resolve(),\n logout: () => { }\n});\n\nexport const AuthProvider = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, initialAuthState);\n\n const login = async (email, password) => {\n if (email === \"\" || password === \"\") {\n return;\n }\n\n const response = await services.getToken(email, password);\n if (!response.success) {\n return \"Invalid username and password.\";\n }\n\n if (response.data !== undefined) {\n if (response.data !== \"\") {\n setSession(response.data);\n dispatch({\n type: 'LOGIN'\n });\n return \"\";\n }\n }\n\n return \"Invalid username and password.\";\n };\n\n const logout = () => {\n setSession(null);\n dispatch({ type: 'LOGOUT' });\n };\n\n useEffect(() => {\n const initialise = async () => {\n try {\n const accessToken = window.localStorage.getItem('_seauth');\n if (accessToken && isValidToken(accessToken)) {\n setSession(accessToken);\n dispatch({\n type: 'INITIALISE',\n payload: {\n isAuthenticated: true\n }\n });\n } else {\n dispatch({\n type: 'INITIALISE',\n payload: {\n isAuthenticated: false\n }\n });\n }\n } catch (err) {\n console.error(err);\n dispatch({\n type: 'INITIALISE',\n payload: {\n isAuthenticated: false\n }\n });\n }\n };\n\n initialise();\n }, []);\n\n if (!state.isInitialised) {\n return ;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default AuthContext;","import axios from 'src/utils/axios';\nimport { appSettings } from 'src/appSettings';\nimport SessionInfo from 'src/components/SessionInfo';\n\nconst isDevelopmentEnv =\n !process.env.NODE_ENV || process.env.NODE_ENV === 'development';\n\nconst services = {\n getToken: async (username, password) => {\n let serviceResponse = null;\n await fetch(`${appSettings.apiUrl}/security/authenticate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ username, password })\n })\n .then(async function(response) {\n if (response.ok) {\n serviceResponse = await response.json();\n }\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getMyProfile: async () => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/myprofile`, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateMyProfile: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updatemyprofile`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n changePassword: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/changepassword`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n searchChaldeanCharts: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/searchchaldeancharts`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${SessionInfo.getToken()}`);\n }\n });\n return serviceResponse;\n },\n searchBasicCharts: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/searchbasiccharts`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${SessionInfo.getToken()}`);\n }\n });\n return serviceResponse;\n },\n searchEssenceCharts: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/searchessencecharts`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${SessionInfo.getToken()}`);\n }\n });\n return serviceResponse;\n },\n searchBusinessCharts: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/searchbusinesscharts`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${SessionInfo.getToken()}`);\n }\n });\n return serviceResponse;\n },\n searchOrders: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/searchorders`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${SessionInfo.getToken()}`);\n }\n });\n return serviceResponse;\n },\n getUsers: async () => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/getusers`, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getUser: async userGuid => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/getuser/` + userGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n addUser: async payload => {\n let serviceResponse = null;\n await axios\n .put(`${appSettings.apiUrl}/admin/adduser`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateUserDetails: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updateuser`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n deleteUser: async userGuid => {\n let serviceResponse = null;\n await axios\n .delete(`${appSettings.apiUrl}/admin/deleteuser/` + userGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateUserPassword: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updateuserpassword`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getSettings: async () => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/settings`, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateReportsSettings: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updatereportssettings`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updatePayPalSettings: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updatepaypalsettings`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateSMTPSettings: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updatesmtpsettings`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getChaldeanChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/getchaldeanchart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n addChaldeanChart: async payload => {\n let serviceResponse = null;\n await axios\n .put(`${appSettings.apiUrl}/admin/addchaldeanchart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateChaldeanChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updatechaldeanchart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n deleteChaldeanChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .delete(`${appSettings.apiUrl}/admin/deletechaldeanchart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getTemplateLinkChaldeanChart: async () => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/gettemplatelinkchaldeanchart`, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n sendChaldeanChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/sendchaldeanchart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getBasicChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/getbasicchart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n addBasicChart: async payload => {\n let serviceResponse = null;\n await axios\n .put(`${appSettings.apiUrl}/admin/addbasicchart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateBasicChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updatebasicchart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n deleteBasicChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .delete(`${appSettings.apiUrl}/admin/deletebasicchart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getTemplateLinkBasicChart: async () => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/gettemplatelinkbasicchart`, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n sendBasicChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/sendbasicchart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getEssenceChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/getessencechart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n addEssenceChart: async payload => {\n let serviceResponse = null;\n await axios\n .put(`${appSettings.apiUrl}/admin/addessencechart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateEssenceChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updateessencechart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n deleteEssenceChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .delete(`${appSettings.apiUrl}/admin/deleteessencechart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getTemplateLinkEssenceChart: async () => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/gettemplatelinkessencechart`, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n sendEssenceChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/sendessencechart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getBusinessChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/getbusinesschart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n addBusinessChart: async payload => {\n let serviceResponse = null;\n await axios\n .put(`${appSettings.apiUrl}/admin/addbusinesschart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n updateBusinessChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/updatebusinesschart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n deleteBusinessChart: async reportGuid => {\n let serviceResponse = null;\n await axios\n .delete(`${appSettings.apiUrl}/admin/deletebusinesschart/` + reportGuid, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n getTemplateLinkBusinessChart: async () => {\n let serviceResponse = null;\n await axios\n .get(`${appSettings.apiUrl}/admin/gettemplatelinkbusinesschart`, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n },\n sendBusinessChart: async payload => {\n let serviceResponse = null;\n await axios\n .post(`${appSettings.apiUrl}/admin/sendbusinesschart`, payload, {\n headers: { Authorization: `Bearer ${SessionInfo.getToken()}` }\n })\n .then(function(response) {\n serviceResponse = response.data;\n })\n .catch(function(error) {\n if (isDevelopmentEnv) {\n console.log(`API Error: ${error.message}`);\n }\n });\n return serviceResponse;\n }\n};\nexport default services;\n","import React from 'react';\n\nconst Logo = props => {\n return \"Numbers;\n};\n\nexport default Logo;\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { AppBar, Grid, Toolbar, Hidden, makeStyles } from '@material-ui/core';\nimport Logo from 'src/components/Logo';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.default,\n textAlign: 'center'\n },\n toolbar: {\n height: 88\n },\n logo: {\n marginRight: theme.spacing(1)\n },\n link: {\n fontWeight: theme.typography.fontWeightMedium,\n '& + &': {\n marginLeft: theme.spacing(2)\n }\n },\n divider: {\n width: 1,\n height: 32,\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n }\n}));\n\nconst TopBar = ({ className, ...rest }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTopBar.propTypes = {\n className: PropTypes.string\n};\n\nexport default TopBar;\n","import { Chart } from 'react-chartjs-2';\n\n// ChartJS extension rounded bar chart\n// https://codepen.io/jedtrow/full/ygRYgo\nfunction draw() {\n const { ctx } = this._chart;\n const vm = this._view;\n let { borderWidth } = vm;\n\n let left;\n let right;\n let top;\n let bottom;\n let signX;\n let signY;\n let borderSkipped;\n let radius;\n\n // If radius is less than 0 or is large enough to cause drawing errors a max\n // radius is imposed. If cornerRadius is not defined set it to 0.\n let { cornerRadius } = this._chart.config.options;\n if (cornerRadius < 0) {\n cornerRadius = 0;\n }\n\n if (typeof cornerRadius === 'undefined') {\n cornerRadius = 0;\n }\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n const halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n const borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n const borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n const borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n const corners = [[left, bottom], [left, top], [right, top], [right, bottom]];\n\n // Find first (starting) corner with fallback to 'bottom'\n const borders = ['bottom', 'left', 'top', 'right'];\n let startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n let corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (let i = 1; i < 4; i += 1) {\n corner = cornerAt(i);\n let nextCornerId = i + 1;\n if (nextCornerId === 4) {\n nextCornerId = 0;\n }\n\n const width = corners[2][0] - corners[1][0];\n const height = corners[0][1] - corners[1][1];\n const x = corners[1][0];\n const y = corners[1][1];\n\n radius = cornerRadius;\n // Fix radius being too large\n if (radius > Math.abs(height) / 2) {\n radius = Math.floor(Math.abs(height) / 2);\n }\n if (radius > Math.abs(width) / 2) {\n radius = Math.floor(Math.abs(width) / 2);\n }\n\n if (height < 0) {\n // Negative values in a standard bar chart\n const xTl = x;\n const xTr = x + width;\n const yTl = y + height;\n const yTr = y + height;\n\n const xBl = x;\n const xBr = x + width;\n const yBl = y;\n const yBr = y;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else if (width < 0) {\n // Negative values in a horizontal bar chart\n const xTl = x + width;\n const xTr = x;\n const yTl = y;\n const yTr = y;\n\n const xBl = x + width;\n const xBr = x;\n const yBl = y + height;\n const yBr = y + height;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else {\n // Positive Value\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(\n x + width,\n y + height,\n x + width - radius,\n y + height\n );\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n }\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n}\n\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\n draw\n});\n","/* eslint-disable */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in projection, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'projection' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}","export const ENABLE_REDUX_DEV_TOOLS = true;\nexport const THEMES = {\n LIGHT: 'LIGHT'\n};\n","import { combineReducers } from '@reduxjs/toolkit';\nimport { reducer as formReducer } from 'redux-form';\n\nconst rootReducer = combineReducers({\n form: formReducer\n});\n\nexport default rootReducer;\n","import { \n useDispatch as useReduxDispatch,\n useSelector as useReduxSelector\n} from 'react-redux';\nimport { configureStore } from '@reduxjs/toolkit';\nimport { ENABLE_REDUX_DEV_TOOLS } from 'src/constants';\nimport rootReducer from './rootReducer';\n\nconst store = configureStore({\n reducer: rootReducer,\n devTools: ENABLE_REDUX_DEV_TOOLS\n});\n\nexport const useSelector = useReduxSelector;\n\nexport const useDispatch = () => useReduxDispatch();\n\nexport default store;\n","import React, {\n createContext,\n useEffect,\n useState\n} from 'react';\nimport _ from 'lodash';\nimport { THEMES } from 'src/constants';\n\nconst defaultSettings = {\n direction: 'ltr',\n responsiveFontSizes: true,\n theme: THEMES.ONE_LIGHT\n};\n\nexport const restoreSettings = () => {\n let settings = null;\n\n try {\n const storedData = window.localStorage.getItem('settings');\n\n if (storedData) {\n settings = JSON.parse(storedData);\n }\n } catch (err) {\n console.error(err);\n // If stored data is not a strigified JSON this will fail,\n // that's why we catch the error\n }\n\n return settings;\n};\n\nexport const storeSettings = (settings) => {\n window.localStorage.setItem('settings', JSON.stringify(settings));\n};\n\nconst SettingsContext = createContext({\n settings: defaultSettings,\n saveSettings: () => { }\n});\n\nexport const SettingsProvider = ({ settings, children }) => {\n const [currentSettings, setCurrentSettings] = useState(settings || defaultSettings);\n\n const handleSaveSettings = (update = {}) => {\n const mergedSettings = _.merge({}, currentSettings, update);\n\n setCurrentSettings(mergedSettings);\n storeSettings(mergedSettings);\n };\n\n useEffect(() => {\n const restoredSettings = restoreSettings();\n\n if (restoredSettings) {\n setCurrentSettings(restoredSettings);\n }\n }, []);\n\n useEffect(() => {\n document.dir = currentSettings.direction;\n }, [currentSettings]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const SettingsConsumer = SettingsContext.Consumer;\n\nexport default SettingsContext;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => createStyles({\n '@global': {\n '*': {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n },\n html: {\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n height: '100%',\n width: '100%'\n },\n body: {\n height: '100%',\n width: '100%'\n },\n '#root': {\n height: '100%',\n width: '100%'\n }\n }\n}));\n\nconst GlobalStyles = () => {\n useStyles();\n\n return null;\n};\n\nexport default GlobalStyles;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nconst useScrollReset = () => {\n const location = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [location.pathname]);\n\n return null;\n};\n\nexport default useScrollReset;\n","import useScrollReset from 'src/hooks/useScrollReset';\n\nconst ScrollReset = () => {\n useScrollReset();\n\n return null;\n};\n\nexport default ScrollReset;\n","import { useContext } from 'react'; \nimport SettingsContext from 'src/contexts/SettingsContext';\n\nconst useSettings = () => useContext(SettingsContext);\n\nexport default useSettings;\n","import _ from 'lodash';\nimport { colors, createMuiTheme, responsiveFontSizes } from '@material-ui/core';\nimport { THEMES } from 'src/constants';\nimport { softShadows } from './shadows';\nimport typography from './typography';\n\nconst baseOptions = {\n direction: 'ltr',\n typography,\n overrides: {\n MuiLinearProgress: {\n root: {\n borderRadius: 3,\n overflow: 'hidden'\n }\n },\n MuiListItemIcon: {\n root: {\n minWidth: 32\n }\n },\n MuiChip: {\n root: {\n backgroundColor: 'rgba(0,0,0,0.075)'\n }\n }\n }\n};\n\nconst themesOptions = [\n {\n name: THEMES.LIGHT,\n overrides: {\n MuiInputBase: {\n input: {\n '&::placeholder': {\n opacity: 1,\n color: colors.grey[600]\n }\n }\n }\n },\n palette: {\n type: 'light',\n action: {\n active: colors.grey[600]\n },\n background: {\n default: colors.common.white,\n dark: '#fcfcfc',\n paper: colors.common.white\n },\n primary: {\n main: '#405eab'\n },\n secondary: {\n main: '#405eab'\n },\n text: {\n primary: colors.grey[800],\n secondary: colors.grey[600]\n }\n },\n shadows: softShadows\n }\n];\n\nexport const createTheme = (config = {}) => {\n let themeOptions = themesOptions.find(theme => theme.name === config.theme);\n\n if (!themeOptions) {\n console.warn(new Error(`The theme ${config.theme} is not valid`));\n [themeOptions] = themesOptions;\n }\n\n let theme = createMuiTheme(\n _.merge({}, baseOptions, themeOptions, { direction: config.direction })\n );\n\n if (config.responsiveFontSizes) {\n theme = responsiveFontSizes(theme);\n }\n\n return theme;\n};\n","export default {\n h1: {\n fontWeight: 500,\n fontSize: 35,\n letterSpacing: '-0.24px'\n },\n h2: {\n fontWeight: 500,\n fontSize: 29,\n letterSpacing: '-0.24px'\n },\n h3: {\n fontWeight: 500,\n fontSize: 24,\n letterSpacing: '-0.06px'\n },\n h4: {\n fontWeight: 500,\n fontSize: 20,\n letterSpacing: '-0.06px'\n },\n h5: {\n fontWeight: 500,\n fontSize: 16,\n letterSpacing: '-0.05px'\n },\n h6: {\n fontWeight: 500,\n fontSize: 14,\n letterSpacing: '-0.05px'\n },\n overline: {\n fontWeight: 500\n }\n};\n","export const softShadows = [\n 'none',\n '0 0 0 1px rgba(63,63,68,0.05), 0 1px 2px 0 rgba(63,63,68,0.15)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 2px 2px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 8px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 5px 8px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 12px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 12px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 16px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 16px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 8px 18px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 9px 18px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 10px 20px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 11px 20px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 12px 22px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 13px 22px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 14px 24px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 16px 28px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 18px 30px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 20px 32px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 22px 34px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 24px 36px -8px rgba(0,0,0,0.25)'\n];\n\nexport const strongShadows = [\n 'none',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 2px 2px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 8px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 5px 8px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 12px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 12px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 16px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 16px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 8px 18px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 9px 18px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 10px 20px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 11px 20px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 12px 22px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 13px 22px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 14px 24px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 16px 28px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 18px 30px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 20px 32px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 22px 34px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 24px 36px -8px rgba(0,0,0,0.50)'\n];\n","import React, { useState } from 'react';\nimport { NavLink as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport {\n Button,\n Collapse,\n ListItem,\n makeStyles\n} from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\n\nconst useStyles = makeStyles((theme) => ({\n item: {\n display: 'block',\n paddingTop: 0,\n paddingBottom: 0\n },\n itemLeaf: {\n display: 'flex',\n paddingTop: 0,\n paddingBottom: 0\n },\n button: {\n color: theme.palette.text.secondary,\n padding: '10px 8px',\n justifyContent: 'flex-start',\n textTransform: 'none',\n letterSpacing: 0,\n width: '100%'\n },\n buttonLeaf: {\n color: theme.palette.text.secondary,\n padding: '10px 8px',\n justifyContent: 'flex-start',\n textTransform: 'none',\n letterSpacing: 0,\n width: '100%',\n fontWeight: theme.typography.fontWeightRegular,\n '&.depth-0': {\n '& $title': {\n fontWeight: theme.typography.fontWeightMedium\n }\n }\n },\n icon: {\n display: 'flex',\n alignItems: 'center',\n marginRight: theme.spacing(1)\n },\n title: {\n marginRight: 'auto'\n },\n active: {\n color: theme.palette.secondary.main,\n '& $title': {\n fontWeight: theme.typography.fontWeightMedium\n },\n '& $icon': {\n color: theme.palette.secondary.main\n }\n }\n}));\n\nconst NavItem = ({\n children,\n className,\n depth,\n href,\n icon: Icon,\n info: Info,\n open: openProp,\n title,\n ...rest\n}) => {\n const classes = useStyles();\n const [open, setOpen] = useState(openProp);\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen);\n };\n\n let paddingLeft = 8;\n\n if (depth > 0) {\n paddingLeft = 32 + 8 * depth;\n }\n\n const style = { paddingLeft };\n\n if (children) {\n return (\n \n \n {Icon && (\n \n )}\n \n {title}\n \n {open ? : }\n \n \n {children}\n \n \n );\n }\n\n return (\n \n \n {Icon && (\n \n )}\n \n {title}\n \n {Info && }\n \n \n );\n};\n\nNavItem.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n depth: PropTypes.number.isRequired,\n href: PropTypes.string,\n icon: PropTypes.elementType,\n info: PropTypes.elementType,\n open: PropTypes.bool,\n title: PropTypes.string.isRequired\n};\n\nNavItem.defaultProps = {\n open: false\n};\n\nexport default NavItem;\n","/* eslint-disable no-use-before-define */\nimport React, { useEffect } from 'react';\nimport { useLocation, matchPath } from 'react-router-dom';\nimport { Link as RouterLink } from 'react-router-dom';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport PropTypes from 'prop-types';\nimport {\n Box,\n Drawer,\n Hidden,\n List,\n ListSubheader,\n makeStyles\n} from '@material-ui/core';\nimport {\n Layout as LayoutIcon,\n Globe as GlobeIcon,\n File as FileIcon,\n Settings as SettingsIcon\n} from 'react-feather';\nimport NavItem from './NavItem';\n\nconst sections = [\n {\n items: [\n {\n title: 'Dashboard',\n icon: LayoutIcon,\n href: '/admin/dashboard'\n },\n {\n title: 'Comprehensive Life Blueprint Reports',\n icon: FileIcon,\n href: '/admin/chaldeancharts'\n },\n {\n title: 'Basic Life Blueprint Charts',\n icon: FileIcon,\n href: '/admin/basiccharts'\n },\n {\n title: 'Essence Charts',\n icon: FileIcon,\n href: '/admin/essencecharts'\n },\n {\n title: 'Business Naming Charts',\n icon: FileIcon,\n href: '/admin/businesscharts'\n },\n {\n title: 'Orders',\n icon: FileIcon,\n href: '/admin/orders'\n }\n ]\n },\n {\n subheader: 'Administration',\n items: [\n {\n title: 'Users',\n href: '/admin/users',\n icon: GlobeIcon\n },\n {\n title: 'Settings',\n href: '/admin/settings/reports',\n icon: SettingsIcon\n }\n ]\n }\n];\n\nfunction renderNavItems({ items, pathname, depth = 0 }) {\n return (\n \n {items.reduce(\n (acc, item) => reduceChildRoutes({ acc, item, pathname, depth }),\n []\n )}\n \n );\n}\n\nfunction reduceChildRoutes({ acc, pathname, item, depth }) {\n const key = item.title + depth;\n\n if (item.items) {\n const open = matchPath(pathname, {\n path: item.href,\n exact: false\n });\n\n acc.push(\n \n {renderNavItems({\n depth: depth + 1,\n pathname,\n items: item.items\n })}\n \n );\n } else {\n acc.push(\n \n );\n }\n\n return acc;\n}\n\nconst useStyles = makeStyles(() => ({\n mobileDrawer: {\n width: 316\n },\n desktopDrawer: {\n width: 316,\n top: 64,\n height: 'calc(100% - 64px)'\n },\n avatar: {\n cursor: 'pointer',\n width: 64,\n height: 64\n }\n}));\n\nconst NavBar = ({ onMobileClose, openMobile }) => {\n const classes = useStyles();\n const location = useLocation();\n\n useEffect(() => {\n if (openMobile && onMobileClose) {\n onMobileClose();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.pathname]);\n\n const content = (\n \n \n \n \n \n \"Numbers\n \n \n \n \n {sections.map(section => (\n \n {section.subheader}\n \n }\n >\n {renderNavItems({\n items: section.items,\n pathname: location.pathname\n })}\n \n ))}\n \n \n \n );\n\n return (\n <>\n \n \n {content}\n \n \n \n \n {content}\n \n \n \n );\n};\n\nNavBar.propTypes = {\n onMobileClose: PropTypes.func,\n openMobile: PropTypes.bool\n};\n\nexport default NavBar;\n","import React, { useRef, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useSnackbar } from 'notistack';\nimport {\n Avatar,\n Box,\n ButtonBase,\n Menu,\n MenuItem,\n Typography,\n makeStyles\n} from '@material-ui/core';\nimport useAuth from 'src/hooks/useAuth';\nimport SessionInfo from 'src/components/SessionInfo';\n\nconst useStyles = makeStyles(theme => ({\n avatar: {\n height: 32,\n width: 32,\n marginRight: theme.spacing(1)\n },\n popover: {\n width: 200\n }\n}));\n\nconst Account = () => {\n const classes = useStyles();\n const history = useHistory();\n const ref = useRef(null);\n const { logout } = useAuth();\n const { enqueueSnackbar } = useSnackbar();\n const [isOpen, setOpen] = useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const handleLogout = async () => {\n try {\n handleClose();\n await logout();\n history.push('/');\n } catch (err) {\n console.error(err);\n enqueueSnackbar('Unable to logout.', {\n variant: 'error',\n anchorOrigin: { horizontal: 'center', vertical: 'top' }\n });\n }\n };\n\n const handleMyAccount = () => {\n handleClose();\n history.push('/admin/account');\n };\n\n return (\n <>\n \n \n \n {SessionInfo.getFullName()}\n \n \n \n My Account\n Logout\n \n \n );\n};\n\nexport default Account;\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport {\n AppBar,\n Box,\n Hidden,\n IconButton,\n Toolbar,\n makeStyles,\n SvgIcon\n} from '@material-ui/core';\nimport { Menu as MenuIcon } from 'react-feather';\nimport { THEMES } from 'src/constants';\nimport Account from './Account';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n zIndex: theme.zIndex.drawer + 100,\n ...(theme.name === THEMES.LIGHT\n ? {\n boxShadow: 'none',\n backgroundColor: theme.palette.primary.main\n }\n : {}),\n ...(theme.name === THEMES.ONE_LIGHT\n ? {\n backgroundColor: theme.palette.background.default\n }\n : {})\n },\n toolbar: {\n minHeight: 64\n }\n}));\n\nconst TopBar = ({ className, onMobileNavOpen, ...rest }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTopBar.propTypes = {\n className: PropTypes.string,\n onMobileNavOpen: PropTypes.func\n};\n\nTopBar.defaultProps = {\n onMobileNavOpen: () => {}\n};\n\nexport default TopBar;\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { AppBar, Box, Hidden, Typography, makeStyles } from '@material-ui/core';\r\nimport moment from 'moment';\r\nimport { grey } from '@material-ui/core/colors';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n appBar: {\r\n zIndex: 0,\r\n position: 'fixed',\r\n top: 'auto',\r\n bottom: 0,\r\n height: 36,\r\n // backgroundColor: theme.palette.secondary.main\r\n color: grey[600],\r\n backgroundColor: grey[100]\r\n }\r\n}));\r\n\r\nconst FooterBar = ({ className, onMobileNavOpen, ...rest }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Copyright © 1984, 2004, 2013, 2021 Numbers R U. All Rights\r\n Reserved.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Copyright © 2021 Numerology for the New Era\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nFooterBar.propTypes = {\r\n className: PropTypes.string,\r\n onMobileNavOpen: PropTypes.func\r\n};\r\n\r\nFooterBar.defaultProps = {\r\n onMobileNavOpen: () => {}\r\n};\r\n\r\nexport default FooterBar;\r\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport NavBar from './NavBar';\nimport TopBar from './TopBar';\nimport FooterBar from './FooterBar';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.dark,\n display: 'flex',\n height: '100%',\n overflow: 'hidden',\n width: '100%'\n },\n wrapper: {\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden',\n paddingTop: 64,\n [theme.breakpoints.up('lg')]: {\n paddingLeft: 316\n }\n },\n contentContainer: {\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden'\n },\n content: {\n flex: '1 1 auto',\n height: '100%',\n overflow: 'auto',\n paddingBottom: '35px'\n }\n}));\n\nconst DashboardLayout = ({ children }) => {\n const classes = useStyles();\n const [isMobileNavOpen, setMobileNavOpen] = useState(false);\n\n return (\n
\n setMobileNavOpen(true)} />\n setMobileNavOpen(false)}\n openMobile={isMobileNavOpen}\n />\n
\n
\n
{children}
\n
\n
\n setMobileNavOpen(true)} />\n
\n );\n};\n\nDashboardLayout.propTypes = {\n children: PropTypes.node\n};\n\nexport default DashboardLayout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport TopBar from './TopBar';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.text.secondary,\n display: 'flex',\n height: '100%',\n overflow: 'hidden',\n width: '100%'\n },\n wrapper: {\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden',\n paddingTop: 80\n },\n contentContainer: {\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden'\n },\n content: {\n flex: '1 1 auto',\n height: '100%',\n overflow: 'auto'\n }\n}));\n\nconst MainLayout = ({ children }) => {\n const classes = useStyles();\n\n return (\n
\n \n
\n
\n
{children}
\n
\n
\n
\n );\n};\n\nMainLayout.propTypes = {\n children: PropTypes.node\n};\n\nexport default MainLayout;\n","import React, { useEffect } from 'react';\nimport NProgress from 'nprogress';\nimport {\n Box,\n LinearProgress,\n makeStyles\n} from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n alignItems: 'center',\n backgroundColor: theme.palette.background.default,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(3)\n }\n}));\n\nconst LoadingScreen = () => {\n const classes = useStyles();\n\n useEffect(() => {\n NProgress.start();\n\n return () => {\n NProgress.done();\n };\n }, []);\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport default LoadingScreen;\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport useAuth from '../hooks/useAuth';\n\nconst AuthGuard = ({ children }) => {\n const { isAuthenticated } = useAuth();\n\n if (!isAuthenticated) {\n return ;\n }\n\n return <>{children};\n};\n\nAuthGuard.propTypes = {\n children: PropTypes.node\n};\n\nexport default AuthGuard;\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport useAuth from '../hooks/useAuth';\n\nconst GuestGuard = ({ children }) => {\n const { isAuthenticated } = useAuth();\n\n if (isAuthenticated) {\n return ;\n }\n\n return (\n <>\n {children}\n \n );\n};\n\nGuestGuard.propTypes = {\n children: PropTypes.node\n};\n\nexport default GuestGuard;\n","import React, { Suspense, Fragment, lazy } from 'react';\nimport { Switch, Redirect, Route } from 'react-router-dom';\nimport DashboardLayout from 'src/layouts/DashboardLayout';\nimport MainLayout from 'src/layouts/MainLayout';\nimport LoadingScreen from 'src/components/LoadingScreen';\nimport AuthGuard from 'src/components/AuthGuard';\nimport GuestGuard from 'src/components/GuestGuard';\n\nexport const renderRoutes = (routes = []) => (\n }>\n \n {routes.map((route, i) => {\n const Guard = route.guard || Fragment;\n const Layout = route.layout || Fragment;\n const Component = route.component;\n\n return (\n (\n \n \n {route.routes ? (\n renderRoutes(route.routes)\n ) : (\n \n )}\n \n \n )}\n />\n );\n })}\n \n \n);\n\nconst routes = [\n {\n exact: true,\n path: '/404',\n component: lazy(() => import('src/views/errors/NotFoundView'))\n },\n {\n exact: true,\n guard: GuestGuard,\n path: '/',\n component: lazy(() => import('src/views/auth/LoginView'))\n },\n {\n path: '/admin',\n guard: AuthGuard,\n layout: DashboardLayout,\n routes: [\n {\n exact: true,\n path: '/admin/account',\n component: lazy(() => import('src/views/account'))\n },\n {\n exact: true,\n path: '/admin/account/edit',\n component: lazy(() => import('src/views/account/EditView'))\n },\n {\n exact: true,\n path: '/admin/dashboard',\n component: lazy(() => import('src/views/dashboard'))\n },\n {\n exact: true,\n path: '/admin/chaldeancharts',\n component: lazy(() => import('src/views/chaldeanCharts'))\n },\n {\n exact: true,\n path: '/admin/viewchaldeanchart/:reportguid',\n component: lazy(() => import('src/views/chaldeanCharts/ViewReportView'))\n },\n {\n exact: true,\n path: '/admin/basiccharts',\n component: lazy(() => import('src/views/basicCharts'))\n },\n {\n exact: true,\n path: '/admin/viewbasicchart/:reportguid',\n component: lazy(() => import('src/views/basicCharts/ViewReportView'))\n },\n {\n exact: true,\n path: '/admin/essencecharts',\n component: lazy(() => import('src/views/essenceCharts'))\n },\n {\n exact: true,\n path: '/admin/viewessencechart/:reportguid',\n component: lazy(() => import('src/views/essenceCharts/ViewReportView'))\n },\n {\n exact: true,\n path: '/admin/businesscharts',\n component: lazy(() => import('src/views/businessCharts'))\n },\n {\n exact: true,\n path: '/admin/viewbusinesschart/:reportguid',\n component: lazy(() => import('src/views/businessCharts/ViewReportView'))\n },\n {\n exact: true,\n path: '/admin/orders',\n component: lazy(() => import('src/views/orders'))\n },\n {\n exact: true,\n path: '/admin/users',\n component: lazy(() => import('src/views/users'))\n },\n {\n exact: true,\n path: '/admin/adduser',\n component: lazy(() => import('src/views/users/AddUserView'))\n },\n {\n exact: true,\n path: '/admin/edituser/:userguid',\n component: lazy(() => import('src/views/users/EditUserView'))\n },\n {\n exact: true,\n path: '/admin/editpassword/:userguid',\n component: lazy(() => import('src/views/users/ChangePasswordView'))\n },\n {\n exact: true,\n path: '/admin/settings/:activetab',\n component: lazy(() => import('src/views/settings'))\n },\n {\n exact: true,\n path: '/admin/editsettings/reports',\n component: lazy(() => import('src/views/settings/EditReportsView'))\n },\n {\n exact: true,\n path: '/admin/editsettings/smtp',\n component: lazy(() => import('src/views/settings/EditSMTPView'))\n },\n {\n exact: true,\n path: '/admin/editsettings/paypal',\n component: lazy(() => import('src/views/settings/EditPayPalView'))\n },\n {\n exact: true,\n path: '/admin/addchaldeanchart',\n component: lazy(() => import('src/views/chaldeanCharts/AddReportView'))\n },\n {\n exact: true,\n path: '/admin/editchaldeanchart/:reportguid',\n component: lazy(() => import('src/views/chaldeanCharts/EditReportView'))\n },\n {\n exact: true,\n path: '/admin/addbasicchart',\n component: lazy(() => import('src/views/basicCharts/AddReportView'))\n },\n {\n exact: true,\n path: '/admin/editbasicchart/:reportguid',\n component: lazy(() => import('src/views/basicCharts/EditReportView'))\n },\n {\n exact: true,\n path: '/admin/addessencechart',\n component: lazy(() => import('src/views/essenceCharts/AddReportView'))\n },\n {\n exact: true,\n path: '/admin/editessencechart/:reportguid',\n component: lazy(() => import('src/views/essenceCharts/EditReportView'))\n },\n {\n exact: true,\n path: '/admin/addbusinesschart',\n component: lazy(() => import('src/views/businessCharts/AddReportView'))\n },\n {\n exact: true,\n path: '/admin/editbusinesschart/:reportguid',\n component: lazy(() => import('src/views/businessCharts/EditReportView'))\n },\n {\n component: () => \n }\n ]\n },\n {\n path: '*',\n layout: MainLayout,\n routes: [\n {\n component: () => \n }\n ]\n }\n];\n\nexport default routes;\n","import React from 'react';\nimport { Router } from 'react-router-dom';\nimport { createBrowserHistory } from 'history';\nimport { create } from 'jss';\nimport rtl from 'jss-rtl';\nimport MomentUtils from '@date-io/moment';\nimport { SnackbarProvider } from 'notistack';\nimport {\n jssPreset,\n StylesProvider,\n ThemeProvider\n} from '@material-ui/core';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport GlobalStyles from 'src/components/GlobalStyles';\nimport ScrollReset from 'src/components/ScrollReset';\nimport { AuthProvider } from 'src/contexts/JWTAuthContext';\nimport useSettings from 'src/hooks/useSettings';\nimport { createTheme } from 'src/theme';\nimport routes, { renderRoutes } from 'src/routes';\n\nconst jss = create({ plugins: [...jssPreset().plugins, rtl()] });\nconst history = createBrowserHistory();\n\nconst App = () => {\n const { settings } = useSettings();\n\n const theme = createTheme({\n direction: settings.direction,\n responsiveFontSizes: settings.responsiveFontSizes,\n theme: settings.theme\n });\n\n return (\n \n \n \n \n \n \n \n \n {renderRoutes(routes)}\n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport 'react-quill/dist/quill.snow.css';\nimport 'prismjs/prism';\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-javascript';\nimport 'prismjs/components/prism-jsx';\nimport 'nprogress/nprogress.css';\nimport 'src/assets/css/prism.css';\nimport 'src/mixins/chartjs';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { enableES5 } from 'immer';\nimport * as serviceWorker from 'src/serviceWorker';\nimport store from 'src/store';\nimport { SettingsProvider } from 'src/contexts/SettingsContext';\nimport App from 'src/App';\n\nenableES5();\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\nserviceWorker.register();\n","import jwt_decode from \"jwt-decode\";\r\n\r\nconst _storageKeySession = \"_seauth\";\r\n\r\nconst SessionInfo = {\r\n storageKey: _storageKeySession,\r\n getToken: () => {\r\n let token = null;\r\n try {\r\n token = localStorage.getItem(_storageKeySession);\r\n token = token === null || token === \"undefined\" ? null : token;\r\n } catch (e) {\r\n console.error(e);\r\n token = null;\r\n }\r\n return token;\r\n },\r\n getFullName: () => {\r\n let fullName = localStorage.getItem(\"_fname\");\r\n return fullName;\r\n },\r\n isValid: () => {\r\n let result = true;\r\n let token = SessionInfo.getToken();\r\n if (token) {\r\n const tokenClaims = jwt_decode(token);\r\n if (Date.now() >= tokenClaims.exp * 1000) {\r\n result = false;\r\n }\r\n } \r\n return result;\r\n },\r\n removeToken: () => {\r\n try {\r\n localStorage.removeItem(_storageKeySession);\r\n } catch (e) { \r\n console.error(e);\r\n }\r\n }\r\n};\r\nexport default SessionInfo;"],"sourceRoot":""}