{"version":3,"sources":["app/components/MatxLayout/index.js","app/components/MatxLayout/MatxLayout.jsx","app/components/MatxLoading.jsx","app/contexts/JWTAuthContext.js","app/components/MatxTheme/components.js","app/components/MatxTheme/themeOptions.js","app/components/MatxTheme/initThemes.js","app/components/MatxLayout/settings.js","app/components/MatxLayout/Layout1/Layout1Settings.js","app/contexts/SettingsContext.js","app/utils/Api.js","app/components/ConfirmationDialog.jsx","app/hooks/useAuth.js","app/utils/utils.js","app/redux/actions/NavigationAction.js","app/redux/Store.js","app/views/sessions/NotFound.jsx","app/redux/reducers/NavigationReducer.js","app/navigations.js","app/redux/actions/NotificationActions.js","app/redux/reducers/NotificationReducer.js","app/redux/reducers/RootReducer.js","app/auth/AuthGuard.jsx","app/components/Loadable.jsx","app/views/sessions/SessionRoutes.js","app/views/jobs/JobRoutes.js","app/auth/authRoles.js","app/views/users/UserRoutes.js","app/views/api-keys/ApiKeysRoutes.js","app/views/credentials/CredentialRoutes.js","app/routes.jsx","app/App.jsx","serviceWorker.js","index.jsx","app/components/Typography.js","app/hooks/useSettings.js","app/components/Breadcrumb.jsx","app/components/ChatAvatar.jsx","app/components/Chatbox.jsx","app/components/ChatHead.jsx","app/components/MatxMenu.jsx","app/components/MatxSuspense.jsx","app/components/MatxProgressBar.jsx","app/components/MatxSearchBox.jsx","app/components/MatxSidenav/MatxSidenav.jsx","app/components/MatxSidenav/MatxSidenavContainer.jsx","app/components/MatxSidenav/MatxSidenavContent.jsx","app/components/MatxTheme/MatxTheme.jsx","app/components/MatxVerticalNav/MatxVerticalNavExpansionPanel.jsx","app/components/MatxVerticalNav/MatxVerticalNav.jsx","app/components/SimpleCard.jsx","app/components/MatxTheme/themeColors.js","app/utils/Auth.js","app/utils/constant.js"],"names":["MatxLayouts","layout1","React","lazy","MatxLayout","props","settings","useSettings","Layout","activeLayout","StyledLoading","styled","width","height","display","alignItems","justifyContent","position","left","right","top","Loading","src","alt","className","initialState","isAuthenticated","isInitialised","user","reducer","state","action","type","payload","AuthContext","createContext","method","login","Promise","resolve","logout","loginSuccess","AuthProvider","children","useReducer","dispatch","useEffect","Provider","value","Auth","signIn","signOut","components","MuiTable","styleOverrides","root","tableLayout","MuiTableCell","head","fontSize","padding","whiteSpace","wordBreak","MUIDataTableSelectCell","paddingLeft","MUIDataTableHeadCell","MUIDataTableBodyCell","MuiButton","textTransform","fontWeight","contained","boxShadow","themeShadows","MuiCssBaseline","boxSizing","html","MozOsxFontSmoothing","WebkitFontSmoothing","body","a","textDecoration","color","zIndex","MuiFab","MuiAccordion","MuiTooltip","tooltip","MuiMenuItem","MuiExpansionPanel","MuiCard","borderRadius","themeOptions","typography","body1","status","danger","red","MatxLayoutSettings","activeTheme","perfectScrollbar","themes","forEach","themeColors","key","createTheme","merge","createMatxThemes","layout1Settings","leftSidebar","show","mode","theme","bgImgURL","topbar","fixed","secondarySidebar","open","footer","SettingsContext","updateSettings","SettingsProvider","useState","currentSettings","setCurrentSettings","update","marged","Api","axios","defaults","withCredentials","this","baseUrl","redirectUrl","path","headers","undefined","execute","id","post","put","JSON","stringify","data","url","getAccessToken","then","accessToken","buildRequestHeaders","response","window","location","href","getError","requestHeaders","Authorization","error","message","json","statusText","DialogBox","marginLeft","marginRight","Title","margin","marginBottom","ConfirmationDialog","onConfirmDialogClose","text","title","onYesClick","maxWidth","onClose","autoFocus","onClick","useAuth","useContext","convertHexToRGB","hex","c","match","slice","split","join","test","substring","length","SET_USER_NAVIGATION","getfilteredNavigations","navList","roles","reduce","array","nav","auth","some","r","indexOf","push","getNavigationByUser","getState","navigations","filteredNavigations","middlewares","thunk","devtools","x","Store","createStore","RootReducer","compose","applyMiddleware","FlexBox","Box","JustifyBox","flexDirection","IMG","NotFoundRoot","NotFound","navigate","useNavigate","variant","sx","name","icon","NavigationReducer","GET_NOTIFICATION","CREATE_NOTIFICATION","DELETE_NOTIFICATION","DELETE_ALL_NOTIFICATION","NotificationReducer","combineReducers","notifications","AuthGuard","pathname","useLocation","authenticated","replace","to","from","Loadable","Component","fallback","JwtLogin","sessionRoutes","element","Jobs","JobForm","JobExecutions","jobRoutes","authRoles","admin","jobs","users","credentials","Users","UserForm","userRoutes","ApiKeys","ApiSecurity","Credentials","CredentialForm","routes","apikeysRoutes","credentialRoutes","App","content","useRoutes","store","Boolean","hostname","ReactDOM","render","StyledEngineProvider","injectFirst","CssBaseline","document","getElementById","navigator","serviceWorker","ready","registration","unregister","StyledBox","textTransformStyle","ellipsis","overflow","textOverflow","H5","clsx","component","mb","mt","lineHeight","H6","Paragraph","Small","Span","BreadcrumbRoot","flexWrap","BreadcrumbName","paddingBottom","verticalAlign","SubName","Breadcrumb","routeSegments","hint","useTheme","palette","Breadcrumbs","separator","Icon","map","route","index","Hidden","xsDown","StyledAvatar","Avatar","StatusCircle","bottom","border","background","primary","main","ChatAvatar","MessageTime","ScrollBar","flexGrow","marginTop","topBarHeight","breakpoints","down","spacing","transition","shadows","MenuButton","backgroundColor","hover","MatxMenu","anchorEl","setAnchorEl","Children","toArray","shouldCloseOnItemClick","horizontalPosition","handleClose","event","currentTarget","menuButton","ThemeProvider","Menu","elevation","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","child","MatxSuspense","LinearProgress","outline","default","MatxLoading","MatxTheme","NavExpandRoot","transform","BaseButton","ButtonBase","paddingRight","BulletIcon","ItemText","BadgeValue","MatxVerticalNavExpansionPanel","item","collapsed","setCollapsed","elementRef","useRef","componentHeight","iconText","badge","calcaulateHeight","useCallback","node","current","scrollHeight","getAttribute","compactNavItem","sidenavHoverShow","collapseIcon","expandIcon","ref","style","maxHeight","ListLabel","secondary","ExtAndIntCommon","ExternalLink","InternalLink","StyledText","MatxVerticalNav","items","handleApiUrlClick","get","renderLevels","label","rel","target","mx","e","preventDefault","isActive","ml","memo","CardRoot","Card","CardTitle","subtitle","SimpleCard","textLight","disabled","textDark","errorColor","whitePurple","contrastText","paper","whiteBlue","slateDark1","slateDark2","purple1","light","dark","purple2","purpleDark1","purpleDark2","blue","blueDark","accountId","authDomain","authFlow","profileFlow","accessScope","authorityUrl","redirectUri","host","msalConfig","clientId","authority","validateAuthority","postLogoutRedirectUri","navigateToLoginRequestUrl","knownAuthorities","cache","cacheLocation","storeAuthStateInCookie","msalInstance","Msal","handleRedirectPromise","idTokenClaims","toUpperCase","handleAuthResponse","catch","console","log","setAccount","account","selectAccount","homeAccountId","firstName","lastName","given_name","family_name","currentAccounts","getAllAccounts","accounts","filter","includes","iss","aud","every","localAccountId","tokenRequest","scopes","forceRefresh","getAccountByHomeId","acquireTokenSilent","Date","toString","acquireTokenRedirect","loginRequest","prompt","loginRedirect","logoutRequest","mainWindowRedirectUri","logoutRedirect","editProfileRequest","loginHint","username","callback","callbacks","sideNavWidth","sidenavCompactWidth"],"mappings":"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","file":"static/js/main.f076cdb0.chunk.js","sourcesContent":["import React from 'react';\n\nexport const MatxLayouts = { layout1: React.lazy(() => import('./Layout1/Layout1')) };\n","import { MatxSuspense } from 'app/components';\nimport useSettings from 'app/hooks/useSettings';\nimport { MatxLayouts } from './index';\n\nconst MatxLayout = (props) => {\n const { settings } = useSettings();\n const Layout = MatxLayouts[settings.activeLayout];\n\n return (\n \n \n \n );\n};\n\nexport default MatxLayout;\n","import { CircularProgress } from '@mui/material';\nimport { Box, styled } from '@mui/system';\n\nconst StyledLoading = styled('div')(() => ({\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '& img': {\n width: 'auto',\n height: '25px',\n },\n '& .circleProgress': {\n position: 'absolute',\n left: -7,\n right: 0,\n top: 'calc(50% - 25px)',\n },\n}));\n\nconst Loading = () => {\n return (\n \n \n \"\"\n \n \n \n );\n};\n\nexport default Loading;\n","import React, { createContext, useEffect, useReducer } from 'react'\nimport { MatxLoading } from 'app/components'\nimport Auth from \"../utils/Auth\";\n\nconst initialState = {\n isAuthenticated: false,\n isInitialised: false,\n user: null,\n}\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'INIT': {\n const { isAuthenticated, user } = action.payload\n\n return {\n ...state,\n isAuthenticated,\n isInitialised: true,\n user,\n }\n }\n case 'LOGIN': {\n const { user } = action.payload\n\n return {\n ...state,\n isAuthenticated: true,\n user,\n }\n }\n case 'LOGOUT': {\n return {\n ...state,\n isAuthenticated: false,\n user: null,\n }\n }\n default: {\n return { ...state }\n }\n }\n}\n\nconst AuthContext = createContext({\n ...initialState,\n method: 'JWT',\n login: () => Promise.resolve(),\n logout: () => { },\n loginSuccess: () => { }\n})\n\nexport const AuthProvider = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const login = () => {\n Auth.signIn();\n }\n\n const loginSuccess = (user) => {\n dispatch({\n type: 'LOGIN',\n payload: { user, }\n });\n }\n\n const logout = () => {\n Auth.signOut(); \n dispatch({ type: 'LOGOUT' }); \n }\n\n useEffect(() => { \n dispatch({\n type: 'INIT',\n payload: {\n isAuthenticated: false,\n user: null,\n },\n });\n }, []);\n\n if (!state.isInitialised) {\n return \n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default AuthContext\n","import { themeShadows } from './themeColors';\n\nexport const components = {\n MuiTable: {\n styleOverrides: {\n root: {\n tableLayout: 'fixed',\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n head: {\n fontSize: '13px',\n padding: '12px 0px',\n },\n root: {\n fontSize: '14px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-all',\n padding: '12px 8px 12px 0px',\n },\n },\n },\n MUIDataTableSelectCell: {\n styleOverrides: {\n root: {\n paddingLeft: 12,\n },\n },\n },\n MUIDataTableHeadCell: {\n styleOverrides: {\n root: {\n paddingLeft: 16,\n },\n },\n },\n MUIDataTableBodyCell: {\n styleOverrides: {\n root: {\n paddingLeft: 8,\n },\n },\n },\n MuiButton: {\n styleOverrides: {\n root: {\n fontSize: '14px',\n textTransform: 'none',\n fontWeight: '400',\n },\n contained: {\n boxShadow: themeShadows[8],\n },\n },\n },\n MuiCssBaseline: {\n styleOverrides: {\n '*': {\n boxSizing: 'border-box',\n },\n html: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n height: '100%',\n width: '100%',\n },\n body: {\n height: '100%',\n },\n a: {\n textDecoration: 'none',\n color: 'inherit',\n },\n '#root': {\n height: '100%',\n },\n '#nprogress .bar': {\n zIndex: '2000 !important',\n },\n },\n },\n MuiFab: {\n styleOverrides: {\n root: {\n boxShadow: themeShadows[12],\n },\n },\n },\n MuiAccordion: {\n styleOverrides: {\n root: {\n '&:before': {\n display: 'none',\n },\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n fontSize: '11px',\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n fontSize: '0.875rem',\n },\n },\n },\n MuiExpansionPanel: {\n styleOverrides: {\n root: {\n '&:before': {\n display: 'none',\n },\n },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: '8px',\n boxShadow:\n '0px 3px 3px -2px rgb(0 0 0 / 6%), 0px 3px 4px 0px rgb(0 0 0 / 4%), 0px 1px 8px 0px rgb(0 0 0 / 4%) !important',\n },\n },\n },\n};\n","import { red } from '@mui/material/colors';\nimport { components } from './components';\n\nconst themeOptions = {\n typography: {\n fontSize: 14,\n body1: { fontSize: '14px' },\n },\n\n status: { danger: red[500] },\n components: { ...components },\n};\n\nexport default themeOptions;\n","import { createTheme } from '@mui/material';\nimport { forEach, merge } from 'lodash';\nimport { themeColors } from './themeColors';\nimport themeOptions from './themeOptions';\n\nfunction createMatxThemes() {\n let themes = {};\n\n forEach(themeColors, (value, key) => {\n themes[key] = createTheme(merge({}, themeOptions, value));\n });\n\n return themes;\n}\nexport const themes = createMatxThemes();\n","import { themes } from '../MatxTheme/initThemes';\nimport layout1Settings from './Layout1/Layout1Settings';\n\n// UPDATE BELOW CODE\n// DOC http://demos.ui-lib.com/matx-react-doc/layout.html\nexport const MatxLayoutSettings = {\n activeLayout: 'layout1', // layout1, layout2\n activeTheme: 'blue', // View all valid theme colors inside MatxTheme/themeColors.js\n perfectScrollbar: false,\n\n themes: themes,\n layout1Settings, // open Layout1/Layout1Settings.js\n\n secondarySidebar: {\n show: true,\n open: false,\n theme: 'slateDark1', // View all valid theme colors inside MatxTheme/themeColors.js\n },\n // Footer options\n footer: {\n show: true,\n fixed: false,\n theme: 'slateDark1', // View all valid theme colors inside MatxTheme/themeColors.js\n },\n};\n","const Layout1Settings = {\n leftSidebar: {\n show: true,\n mode: 'full', // full, close, compact, mobile,\n theme: 'slateDark1', // View all valid theme colors inside MatxTheme/themeColors.js\n bgImgURL: '/assets/images/sidebar/sidebar-bg-dark.jpg',\n },\n topbar: {\n show: true,\n fixed: true,\n theme: 'whiteBlue', // View all valid theme colors inside MatxTheme/themeColors.js\n },\n};\n\nexport default Layout1Settings;\n","import React, { createContext, useState } from 'react'\n\nimport { merge } from 'lodash'\n\nimport { MatxLayoutSettings } from 'app/components/MatxLayout/settings'\n\nconst SettingsContext = createContext({\n settings: MatxLayoutSettings,\n updateSettings: () => {},\n})\n\nexport const SettingsProvider = ({ settings, children }) => {\n const [currentSettings, setCurrentSettings] = useState(\n settings || MatxLayoutSettings\n )\n\n const handleUpdateSettings = (update = {}) => {\n const marged = merge({}, currentSettings, update)\n setCurrentSettings(marged)\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default SettingsContext\n","import axios from 'axios';\r\nimport Auth from \"./Auth\";\r\n\r\nclass Api {\r\n constructor() {\r\n axios.defaults.withCredentials = true; \r\n this.baseUrl = \"https://api.cloudyscheduler.com/\";\r\n this.redirectUrl = \"https://www.cloudyscheduler.com/\";\r\n }\r\n\r\n async get(path, headers = undefined) { \r\n return this.execute(path, \"GET\", undefined, headers);\r\n }\r\n \r\n async delete(path, headers = undefined) { \r\n return this.execute(path, \"DELETE\", undefined, headers);\r\n }\r\n\r\n async save(path, id, body, headers = undefined) {\r\n if (id === \"new\") {\r\n return this.post(path, body, headers);\r\n } else {\r\n return this.put(path + \"/\" + id, body, headers);\r\n }\r\n }\r\n\r\n async put(path, body, headers = undefined) { \r\n return this.execute(path, \"PUT\", JSON.stringify(body), headers);\r\n }\r\n\r\n async post(path, body, headers = undefined) { \r\n return this.execute(path, \"POST\", JSON.stringify(body), headers);\r\n }\r\n\r\n async execute(path, method, data = undefined, headers = undefined) { \r\n let url = this.baseUrl + path;\r\n\r\n return Auth.getAccessToken().then(async (accessToken) => {\r\n try {\r\n const response = await axios({ method, url, data, headers: this.buildRequestHeaders(headers, accessToken) });\r\n return response.data;\r\n } catch (error) {\r\n if (error.response.status === 401) {\r\n window.location.href = this.redirectUrl;\r\n }\r\n throw this.getError(error);\r\n }\r\n });\r\n }\r\n\r\n buildRequestHeaders(headers = undefined, accessToken) {\r\n let requestHeaders = { 'Accept': 'application/json', 'Content-Type': 'application/json' };\r\n requestHeaders.Authorization = ('Bearer ' + accessToken);\r\n \r\n if (headers !== undefined) requestHeaders = {...requestHeaders, ...headers }; \r\n return requestHeaders;\r\n }\r\n\r\n getError(error) {\r\n if (typeof error === 'string') {\r\n return { message: error };\r\n }\r\n \r\n let json;\r\n if (error.response) {\r\n json = typeof error.response.data === 'string' ? { } : error.response.data;\r\n \r\n if (!json.message && json.error) {\r\n json.message = typeof json.error === 'string' ? json.error : json.error.message; \r\n }\r\n \r\n if (!json.message || json.message === \"\") {\r\n if (error.response.status === 403) {\r\n json.message = \"Action not allowed.\";\r\n } else {\r\n json.message = \"Sorry, an unknown error has occured.\";\r\n }\r\n }\r\n \r\n json.status = error.response.status;\r\n json.statusText = error.response.statusText; \r\n } else if (error.message) {\r\n return error;\r\n } else {\r\n json = {};\r\n json.message = error.message;\r\n }\r\n return json;\r\n } \r\n}\r\n\r\nexport default new Api();","import { Button, Dialog, styled, DialogActions } from '@mui/material';\n\nconst DialogBox = styled('div')(() => ({\n width: 360,\n padding: '32px',\n marginLeft: 'auto',\n marginRight: 'auto',\n}));\n\nconst Title = styled('h4')(() => ({\n margin: 0,\n marginBottom: '8px',\n textTransform: 'capitalize',\n}));\n\nconst ConfirmationDialog = ({\n open,\n onConfirmDialogClose,\n text,\n title = 'Confirmation',\n onYesClick,\n}) => {\n return (\n \n \n {title}\n

{text}

\n\n \n \n\n \n \n
\n
\n );\n};\n\nexport default ConfirmationDialog;\n","import { useContext } from 'react'\nimport AuthContext from 'app/contexts/JWTAuthContext'\n\nconst useAuth = () => useContext(AuthContext)\n\nexport default useAuth\n","import { differenceInSeconds } from 'date-fns';\r\n\r\nexport const convertHexToRGB = (hex) => {\r\n // check if it's a rgba\r\n if (hex.match('rgba')) {\r\n let triplet = hex.slice(5).split(',').slice(0, -1).join(',');\r\n return triplet;\r\n }\r\n\r\n let c;\r\n if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {\r\n c = hex.substring(1).split('');\r\n if (c.length === 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n\r\n return [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',');\r\n }\r\n};\r\n\r\nexport function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this,\r\n args = arguments;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n }, wait);\r\n if (immediate && !timeout) func.apply(context, args);\r\n };\r\n}\r\n\r\nexport function isMobile() {\r\n if (window) {\r\n return window.matchMedia(`(max-width: 767px)`).matches;\r\n }\r\n return false;\r\n}\r\n\r\nexport function isMdScreen() {\r\n if (window) {\r\n return window.matchMedia(`(max-width: 1199px)`).matches;\r\n }\r\n return false;\r\n}\r\n\r\nfunction currentYPosition(elm) {\r\n if (!window && !elm) {\r\n return;\r\n }\r\n if (elm) return elm.scrollTop;\r\n // Firefox, Chrome, Opera, Safari\r\n if (window.pageYOffset) return window.pageYOffset;\r\n // Internet Explorer 6 - standards mode\r\n if (document.documentElement && document.documentElement.scrollTop)\r\n return document.documentElement.scrollTop;\r\n // Internet Explorer 6, 7 and 8\r\n if (document.body.scrollTop) return document.body.scrollTop;\r\n return 0;\r\n}\r\n\r\nfunction elmYPosition(elm) {\r\n var y = elm.offsetTop;\r\n var node = elm;\r\n while (node.offsetParent && node.offsetParent !== document.body) {\r\n node = node.offsetParent;\r\n y += node.offsetTop;\r\n }\r\n return y;\r\n}\r\n\r\nexport function scrollTo(scrollableElement, elmID) {\r\n var elm = document.getElementById(elmID);\r\n\r\n if (!elmID || !elm) {\r\n return;\r\n }\r\n\r\n var startY = currentYPosition(scrollableElement);\r\n var stopY = elmYPosition(elm);\r\n\r\n var distance = stopY > startY ? stopY - startY : startY - stopY;\r\n if (distance < 100) {\r\n scrollTo(0, stopY);\r\n return;\r\n }\r\n var speed = Math.round(distance / 50);\r\n if (speed >= 20) speed = 20;\r\n var step = Math.round(distance / 25);\r\n var leapY = stopY > startY ? startY + step : startY - step;\r\n var timer = 0;\r\n if (stopY > startY) {\r\n for (var i = startY; i < stopY; i += step) {\r\n setTimeout(\r\n (function (leapY) {\r\n return () => {\r\n scrollableElement.scrollTo(0, leapY);\r\n };\r\n })(leapY),\r\n timer * speed\r\n );\r\n leapY += step;\r\n if (leapY > stopY) leapY = stopY;\r\n timer++;\r\n }\r\n return;\r\n }\r\n for (let i = startY; i > stopY; i -= step) {\r\n setTimeout(\r\n (function (leapY) {\r\n return () => {\r\n scrollableElement.scrollTo(0, leapY);\r\n };\r\n })(leapY),\r\n timer * speed\r\n );\r\n leapY -= step;\r\n if (leapY < stopY) leapY = stopY;\r\n timer++;\r\n }\r\n return false;\r\n}\r\n\r\nexport function getTimeDifference(date) {\r\n let difference = differenceInSeconds(new Date(), date);\r\n\r\n if (difference < 60) return `${Math.floor(difference)} sec`;\r\n else if (difference < 3600) return `${Math.floor(difference / 60)} min`;\r\n else if (difference < 86400) return `${Math.floor(difference / 3660)} h`;\r\n else if (difference < 86400 * 30) return `${Math.floor(difference / 86400)} d`;\r\n else if (difference < 86400 * 30 * 12) return `${Math.floor(difference / 86400 / 30)} mon`;\r\n else return `${(difference / 86400 / 30 / 12).toFixed(1)} y`;\r\n}\r\n\r\nexport function generateRandomId() {\r\n let tempId = Math.random().toString();\r\n let uid = tempId.substr(2, tempId.length - 1);\r\n return uid;\r\n}\r\n\r\nexport function getQueryParam(prop) {\r\n var params = {};\r\n var search = decodeURIComponent(\r\n window.location.href.slice(window.location.href.indexOf('?') + 1)\r\n );\r\n var definitions = search.split('&');\r\n definitions.forEach(function (val, key) {\r\n var parts = val.split('=', 2);\r\n params[parts[0]] = parts[1];\r\n });\r\n return prop && prop in params ? params[prop] : params;\r\n}\r\n\r\nexport function classList(classes) {\r\n return Object.entries(classes)\r\n .filter((entry) => entry[1])\r\n .map((entry) => entry[0])\r\n .join(' ');\r\n}\r\n\r\nexport const flat = (array) => {\r\n var result = [];\r\n array.forEach(function (a) {\r\n result.push(a);\r\n if (Array.isArray(a.children)) {\r\n result = result.concat(flat(a.children));\r\n }\r\n });\r\n return result;\r\n};\r\n","export const SET_USER_NAVIGATION = 'SET_USER_NAVIGATION';\n\nconst getfilteredNavigations = (navList = [], roles) => {\n return navList.reduce((array, nav) => {\n if (nav.auth) {\n if (nav.auth.some(r => roles.indexOf(r) >= 0)) {\n array.push(nav);\n }\n } else {\n if (nav.children) {\n nav.children = getfilteredNavigations(nav.children, roles);\n array.push(nav);\n } else {\n array.push(nav);\n }\n }\n return array;\n }, []);\n};\n\nexport function getNavigationByUser(user) {\n return (dispatch, getState) => {\n let { navigations = [] } = getState();\n\n let filteredNavigations = getfilteredNavigations(navigations, (user.roles || \"\").split(\",\"));\n\n dispatch({\n type: SET_USER_NAVIGATION,\n payload: [...filteredNavigations],\n });\n };\n}\n","import { applyMiddleware, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport RootReducer from './reducers/RootReducer';\r\n\r\nconst initialState = {};\r\nconst middlewares = [thunk];\r\nlet devtools = (x) => x;\r\n\r\nif (\r\n process &&\r\n process.env.NODE_ENV !== 'production' &&\r\n process.browser &&\r\n window.__REDUX_DEVTOOLS_EXTENSION__\r\n) {\r\n devtools = window.__REDUX_DEVTOOLS_EXTENSION__();\r\n}\r\n\r\nexport const Store = createStore(\r\n RootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middlewares), devtools)\r\n);\r\n","import { Box, Button, styled } from '@mui/material';\nimport { useNavigate } from 'react-router-dom';\n\nconst FlexBox = styled(Box)(() => ({\n display: 'flex',\n alignItems: 'center',\n}));\n\nconst JustifyBox = styled(FlexBox)(() => ({\n maxWidth: 320,\n flexDirection: 'column',\n justifyContent: 'center',\n}));\n\nconst IMG = styled('img')(() => ({\n width: '100%',\n marginBottom: '32px',\n}));\n\nconst NotFoundRoot = styled(FlexBox)(() => ({\n width: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100vh !important',\n}));\n\nconst NotFound = () => {\n const navigate = useNavigate();\n\n return (\n \n \n \"\"\n\n navigate(-1)}\n >\n Go Back\n \n \n \n );\n};\n\nexport default NotFound;\n","import { navigations } from 'app/navigations';\nimport { SET_USER_NAVIGATION } from '../actions/NavigationAction';\n\nconst initialState = [...navigations];\n\nconst NavigationReducer = function (state = initialState, action) {\n switch (action.type) {\n case SET_USER_NAVIGATION: {\n return [...action.payload];\n }\n default: {\n return [...state];\n }\n }\n};\n\nexport default NavigationReducer;\n","export const navigations = [\n { name: 'Scheduled Jobs', path: '/jobs', icon: 'alarm', auth: ['global', 'job_write'] },\n { name: 'Users', path: '/users', icon: 'groups', auth: ['global', 'user_write'] },\n { name: 'Credentials', path: '/credentials', icon: 'lock', auth: ['global', 'credential_write'] },\n { name: 'Billing Portal', path: 'account/billing-portal', icon: 'receipt', auth: ['global'], type: 'apiUrl' },\n { name: 'API Keys', path: '/api-keys', icon: 'key', auth: ['global'] },\n { name: 'Documentation', path: 'https://www.cloudyscheduler.com/', icon: 'launch', type: 'extLink' }\n];\n","import axios from 'axios';\n\nexport const GET_NOTIFICATION = 'GET_NOTIFICATION';\nexport const CREATE_NOTIFICATION = 'CREATE_NOTIFICATION';\nexport const DELETE_NOTIFICATION = 'DELETE_NOTIFICATION';\nexport const DELETE_ALL_NOTIFICATION = 'DELETE_ALL_NOTIFICATION';\n\nexport const getNotification = () => (dispatch) => {\n axios.get('/api/notification').then((res) => {\n dispatch({\n type: GET_NOTIFICATION,\n payload: res.data,\n });\n });\n};\n\nexport const deleteNotification = (id) => (dispatch) => {\n axios.post('/api/notification/delete', { id }).then((res) => {\n dispatch({\n type: DELETE_NOTIFICATION,\n payload: res.data,\n });\n });\n};\n\nexport const deleteAllNotification = () => (dispatch) => {\n axios.post('/api/notification/delete-all').then((res) => {\n dispatch({\n type: DELETE_ALL_NOTIFICATION,\n payload: res.data,\n });\n });\n};\n\nexport const createNotification = (notification) => (dispatch) => {\n axios.post('/api/notification/add', { notification }).then((res) => {\n dispatch({\n type: CREATE_NOTIFICATION,\n payload: res.data,\n });\n });\n};\n","import {\n CREATE_NOTIFICATION,\n DELETE_ALL_NOTIFICATION,\n DELETE_NOTIFICATION,\n GET_NOTIFICATION,\n} from '../actions/NotificationActions';\n\nconst initialState = [];\n\nconst NotificationReducer = function (state = initialState, action) {\n switch (action.type) {\n case GET_NOTIFICATION: {\n return [...action.payload];\n }\n case CREATE_NOTIFICATION: {\n return [...action.payload];\n }\n case DELETE_NOTIFICATION: {\n return [...action.payload];\n }\n case DELETE_ALL_NOTIFICATION: {\n return [...action.payload];\n }\n default: {\n return [...state];\n }\n }\n};\n\nexport default NotificationReducer;\n","import { combineReducers } from 'redux';\nimport NavigationReducer from './NavigationReducer';\nimport NotificationReducer from './NotificationReducer';\n\nconst RootReducer = combineReducers({\n notifications: NotificationReducer,\n navigations: NavigationReducer,\n});\n\nexport default RootReducer;\n","import useAuth from 'app/hooks/useAuth';\r\nimport { Navigate, useLocation } from 'react-router-dom';\r\n\r\nconst AuthGuard = ({ children }) => {\r\n let {\r\n isAuthenticated,\r\n // user\r\n } = useAuth();\r\n const { pathname } = useLocation();\r\n\r\n let authenticated = isAuthenticated;\r\n\r\n return (\r\n <>\r\n {authenticated ? (\r\n children\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AuthGuard;\r\n","import { Suspense } from 'react';\nimport Loading from './MatxLoading';\n\nconst Loadable = (Component) => (props) => {\n return (\n }>\n \n \n );\n};\n\nexport default Loadable;\n","import Loadable from 'app/components/Loadable';\nimport { lazy } from 'react';\n\nconst NotFound = Loadable(lazy(() => import('./NotFound')));\nconst JwtLogin = Loadable(lazy(() => import('./JwtLogin')));\n\nconst sessionRoutes = [\n { path: '/session/signin', element: },\n { path: '/session/404', element: }\n];\n\nexport default sessionRoutes;\n","import Loadable from 'app/components/Loadable';\nimport { lazy } from 'react';\n\nconst Jobs = Loadable(lazy(() => import('./Jobs')));\nconst JobForm = Loadable(lazy(() => import('./JobForm')));\nconst JobExecutions = Loadable(lazy(() => import('./JobExecutions')));\n\nconst jobRoutes = [\n { path: '/jobs', element: },\n { path: '/jobs/:id', element: },\n { path: '/jobs/:id/executions', element: }\n];\n\nexport default jobRoutes;\n","export const authRoles = {\r\n admin: ['global'],\r\n jobs: ['global', 'job_write'],\r\n users: ['global', 'user_write'],\r\n credentials: ['global', 'credential_write']\r\n}\r\n","import Loadable from 'app/components/Loadable';\nimport { lazy } from 'react';\nimport { authRoles } from '../../auth/authRoles';\n\nconst Users = Loadable(lazy(() => import('./Users')));\nconst UserForm = Loadable(lazy(() => import('./UserForm')));\n\nconst userRoutes = [\n { path: '/users', element: , auth: authRoles.users },\n { path: '/users/:id', element: , auth: authRoles.users },\n];\n\nexport default userRoutes;\n","import Loadable from 'app/components/Loadable';\nimport { lazy } from 'react';\nimport { authRoles } from '../../auth/authRoles';\n\nconst ApiKeys = Loadable(lazy(() => import('./ApiKeys')));\nconst ApiSecurity = Loadable(lazy(() => import('./ApiSecurity')));\n\nconst userRoutes = [\n { path: '/api-keys', element: , auth: authRoles.admin },\n { path: '/api-security', element: , auth: authRoles.admin },\n];\n\nexport default userRoutes;\n","import Loadable from 'app/components/Loadable';\nimport { lazy } from 'react';\nimport { authRoles } from '../../auth/authRoles';\n\nconst Credentials = Loadable(lazy(() => import('./Credentials')));\nconst CredentialForm = Loadable(lazy(() => import('./CredentialForm')));\n\nconst userRoutes = [\n { path: '/credentials', element: , auth: authRoles.credentials },\n { path: '/credentials/:id', element: , auth: authRoles.credentials },\n];\n\nexport default userRoutes;\n","import AuthGuard from 'app/auth/AuthGuard';\nimport NotFound from 'app/views/sessions/NotFound';\nimport sessionRoutes from 'app/views/sessions/SessionRoutes';\nimport jobRoutes from 'app/views/jobs/JobRoutes';\nimport userRoutes from 'app/views/users/UserRoutes';\nimport apikeysRoutes from 'app/views/api-keys/ApiKeysRoutes';\nimport credentialRoutes from 'app/views/credentials/CredentialRoutes';\nimport { Navigate } from 'react-router-dom';\nimport MatxLayout from './components/MatxLayout/MatxLayout';\n\nconst routes = [\n {\n element: (\n \n \n \n ),\n children: [...jobRoutes, ...userRoutes, ...apikeysRoutes, ...credentialRoutes],\n },\n ...sessionRoutes,\n { path: '/', element: },\n { path: '*', element: },\n];\n\nexport default routes;\n","import { Provider } from 'react-redux';\r\nimport { useRoutes } from 'react-router-dom';\r\nimport { MatxTheme } from './components';\r\nimport { AuthProvider } from './contexts/JWTAuthContext';\r\nimport { SettingsProvider } from './contexts/SettingsContext';\r\nimport { Store } from './redux/Store';\r\nimport routes from './routes';\r\n\r\nconst App = () => {\r\n const content = useRoutes(routes);\r\n\r\n return (\r\n \r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\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 production, 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 https://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(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && '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 https://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 https://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('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import { CssBaseline } from '@mui/material';\nimport { StyledEngineProvider } from '@mui/styled-engine';\nimport 'perfect-scrollbar/css/perfect-scrollbar.css';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport App from './app/App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// for IE-11 support un-comment cssVars() and it's import in this file\n// and in MatxTheme file\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { Box, styled } from '@mui/material';\nimport clsx from 'clsx';\n\nconst StyledBox = styled(Box)(({ theme, textTransformStyle, ellipsis }) => ({\n textTransform: textTransformStyle || 'none',\n whiteSpace: ellipsis ? 'nowrap' : 'normal',\n overflow: ellipsis ? 'hidden' : '',\n textOverflow: ellipsis ? 'ellipsis' : '',\n}));\n\nexport const H1 = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const H2 = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const H3 = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const H4 = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const H5 = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const H6 = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const Paragraph = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const Small = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const Span = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nexport const Tiny = ({ children, className, ellipsis, textTransform, ...props }) => {\n return (\n \n {children}\n \n );\n};\n","import { useContext } from 'react'\nimport SettingsContext from 'app/contexts/SettingsContext'\n\nconst useSettings = () => useContext(SettingsContext)\n\nexport default useSettings\n","import { Breadcrumbs, Hidden, Icon, styled, useTheme } from '@mui/material';\nimport { NavLink } from 'react-router-dom';\n\nconst BreadcrumbRoot = styled('div')(() => ({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n}));\n\nconst BreadcrumbName = styled('h4')(() => ({\n margin: 0,\n fontSize: '16px',\n paddingBottom: '1px',\n verticalAlign: 'middle',\n textTransform: 'capitalize',\n}));\n\nconst SubName = styled('span')(({ theme }) => ({\n textTransform: 'capitalize',\n color: \"#5272f9\"\n}));\n\nconst Breadcrumb = ({ routeSegments, name }) => {\n const theme = useTheme();\n const hint = theme.palette.text.hint;\n\n return (\n \n {routeSegments ? (\n navigate_next}\n sx={{ display: 'flex', alignItems: 'center', position: 'relative' }}>\n\n {routeSegments\n ? routeSegments.map((route, index) => {\n return \n {route.name}\n \n })\n : null}\n \n ) : null}\n\n navigate_next\n\n {name !== undefined ? (\n \n {name}\n \n ) : null}\n \n );\n};\n\nexport default Breadcrumb;\n","import { Avatar, Box, styled } from '@mui/material';\n\nconst StyledAvatar = styled(Avatar)(() => ({\n height: '40px',\n width: '40px',\n}));\n\nconst StatusCircle = styled('div')(({ theme, status }) => ({\n height: '14px',\n width: '14px',\n bottom: '0px',\n right: '-3px',\n borderRadius: '7px',\n position: 'absolute',\n border: '2px solid white',\n background: status === 'online' ? theme.palette.primary.main : theme.palette.error.main,\n color: status !== 'online' && 'white !important',\n}));\n\nconst ChatAvatar = ({ src, status }) => {\n return (\n \n \n \n \n );\n};\n\nexport default ChatAvatar;\n","import { Avatar, Box, Divider, Icon, IconButton, styled, TextField, useTheme } from '@mui/material';\nimport { ChatAvatar } from 'app/components';\nimport { convertHexToRGB } from 'app/utils/utils';\nimport { useCallback, useEffect, useState } from 'react';\nimport ScrollBar from 'react-perfect-scrollbar';\nimport { H5, H6, Span } from './Typography';\n\nconst ChatContainer = styled('div')(() => ({\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n background: '#fff',\n}));\n\nconst StyledScrollBar = styled(ScrollBar)(() => ({\n flexGrow: 1,\n}));\n\nconst ProfileBox = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '12px 12px 12px 20px',\n color: theme.palette.primary.main,\n background: '#fafafa',\n}));\n\nconst ChatStatus = styled('div')(({ theme }) => ({\n marginLeft: '12px',\n color: theme.palette.primary.main,\n '& h5': {\n marginTop: 0,\n fontSize: '14px',\n marginBottom: '3px',\n },\n '& span': { fontWeight: '500' },\n}));\n\nconst ChatMessage = styled('div')(({ theme }) => ({\n padding: '8px',\n maxWidth: 240,\n fontSize: '14px',\n borderRadius: '4px',\n marginBottom: '8px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n color: theme.palette.primary.main,\n background: '#fafafa',\n}));\n\nconst MessageTime = styled('span')(({ theme }) => ({\n fontSize: '13px',\n fontWeight: '500',\n color: theme.palette.primary.main,\n}));\n\nconst ChatImgContainer = styled('div')(({ theme }) => ({\n padding: '20px',\n display: 'flex',\n justifyContent: 'flex-end',\n}));\n\nconst ChatImgBox = styled('div')(({ theme }) => ({\n padding: '8px',\n fontSize: '14px',\n maxWidth: 240,\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n color: theme.palette.primary.main,\n background: '#fafafa',\n}));\n\nconst ChatImg = styled('img')(() => ({ width: '40px' }));\nconst ChatImgSize = styled(MessageTime)(() => ({}));\n\n// for previewing bot message\nconst globalMessageList = [];\n\nconst Chatbox = ({ togglePopup }) => {\n const [isAlive, setIsAlive] = useState(true);\n const [message, setMessage] = useState('');\n const [messageList, setMessageList] = useState([]);\n const currentUserId = '7863a6802ez0e277a0f98534';\n const chatBottomRef = document.querySelector('#chat-scroll');\n\n const sendMessageOnEnter = (event) => {\n if (event.key === 'Enter' && !event.shiftKey) {\n let tempMessage = message.trim();\n if (tempMessage !== '') {\n let tempList = [...messageList];\n let messageObject = {\n text: tempMessage,\n contactId: currentUserId,\n };\n tempList.push(messageObject);\n globalMessageList.push(messageObject);\n if (isAlive) setMessageList(tempList);\n dummyReply();\n }\n setMessage('');\n }\n };\n\n const dummyReply = async () => {\n setTimeout(() => {\n let tempList = [...messageList];\n let messageObject = {\n text: 'Good to hear from you. enjoy!!!',\n contactId: 'opponents contact id',\n avatar: '/assets/images/faces/13.jpg',\n name: 'Frank Powell',\n };\n\n tempList.push(messageObject);\n globalMessageList.push(messageObject);\n if (isAlive) setMessageList(globalMessageList);\n }, 2000);\n };\n\n const scrollToBottom = useCallback(() => {\n if (chatBottomRef) {\n chatBottomRef.scrollTo({\n top: chatBottomRef.scrollHeight,\n behavior: 'smooth',\n });\n }\n }, [chatBottomRef]);\n\n useEffect(() => {\n if (isAlive) {\n setMessageList([\n {\n contactId: '323sa680b3249760ea21rt47',\n text: 'Do you ever find yourself falling into the “discount trap?”',\n time: '2018-02-10T08:45:28.291Z',\n id: '323sa680b3249760ea21rt47',\n name: 'Frank Powell',\n avatar: '/assets/images/faces/13.jpg',\n status: 'online',\n mood: '',\n },\n {\n contactId: '7863a6802ez0e277a0f98534',\n text: 'Giving away your knowledge or product just to gain clients?',\n time: '2018-02-10T08:45:28.291Z',\n id: '7863a6802ez0e277a0f98534',\n name: 'John Doe',\n avatar: '/assets/images/face-1.jpg',\n status: 'online',\n mood: '',\n },\n {\n contactId: '323sa680b3249760ea21rt47',\n text: 'Yes',\n time: '2018-02-10T08:45:28.291Z',\n id: '323sa680b3249760ea21rt47',\n name: 'Frank Powell',\n avatar: '/assets/images/faces/13.jpg',\n status: 'online',\n mood: '',\n },\n {\n contactId: '7863a6802ez0e277a0f98534',\n text: 'Don’t feel bad. It happens to a lot of us',\n time: '2018-02-10T08:45:28.291Z',\n id: '7863a6802ez0e277a0f98534',\n name: 'John Doe',\n avatar: '/assets/images/face-1.jpg',\n status: 'online',\n mood: '',\n },\n {\n contactId: '323sa680b3249760ea21rt47',\n text: 'Do you ever find yourself falling into the “discount trap?”',\n time: '2018-02-10T08:45:28.291Z',\n id: '323sa680b3249760ea21rt47',\n name: 'Frank Powell',\n avatar: '/assets/images/faces/13.jpg',\n status: 'online',\n mood: '',\n },\n {\n contactId: '7863a6802ez0e277a0f98534',\n text: 'Giving away your knowledge or product just to gain clients?',\n time: '2018-02-10T08:45:28.291Z',\n id: '7863a6802ez0e277a0f98534',\n name: 'John Doe',\n avatar: '/assets/images/face-1.jpg',\n status: 'online',\n mood: '',\n },\n {\n contactId: '323sa680b3249760ea21rt47',\n text: 'Yes',\n time: '2018-02-10T08:45:28.291Z',\n id: '323sa680b3249760ea21rt47',\n name: 'Frank Powell',\n avatar: '/assets/images/faces/13.jpg',\n status: 'online',\n mood: '',\n },\n {\n contactId: '7863a6802ez0e277a0f98534',\n text: 'Don’t feel bad. It happens to a lot of us',\n time: '2018-02-10T08:45:28.291Z',\n id: '7863a6802ez0e277a0f98534',\n name: 'John Doe',\n avatar: '/assets/images/face-1.jpg',\n status: 'online',\n mood: '',\n },\n ]);\n }\n // getChatRoomByContactId(currentUserId, \"323sa680b3249760ea21rt47\").then(\n // ({ data }) => {\n // if (isAlive) {\n // setMessageList(data?.messageList);\n // }\n // }\n // );\n }, [isAlive]);\n\n useEffect(() => {\n scrollToBottom();\n return () => setIsAlive(false);\n }, [messageList, scrollToBottom]);\n\n const { palette } = useTheme();\n const primary = palette.primary.main;\n const textPrimary = palette.text.primary;\n\n return (\n \n \n \n \n \n
Ryan Todd
\n Active\n
\n
\n \n clear\n \n
\n \n {messageList.map((item, ind) => (\n \n {currentUserId !== item.contactId && }\n \n {currentUserId !== item.contactId && (\n \n {item.name}\n \n )}\n {item.text}\n 1 minute ago\n \n \n ))}\n\n {/* example of image sent by current user*/}\n \n \n \n \n \n
Asus K555LA.png
\n 21.5KB\n
\n
\n 1 minute ago\n
\n
\n
\n
\n \n \n \n tag_faces\n \n \n attachment\n \n \n ),\n classes: { root: 'pl-5 pr-3 py-3 text-body' },\n }}\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n onKeyUp={sendMessageOnEnter}\n />\n
\n
\n );\n};\n\nexport default Chatbox;\n","import { styled } from '@mui/material';\nimport { topBarHeight } from 'app/utils/constant';\nimport clsx from 'clsx';\nimport { cloneElement, useState } from 'react';\n\nconst PopupRoot = styled('div')(({ theme }) => ({\n '& .popupOpen': {\n top: topBarHeight + 16,\n [theme.breakpoints.down('sm')]: { bottom: 0 },\n },\n '& .closeIcon': {\n position: 'absolute',\n top: 6,\n right: 6,\n },\n}));\n\nconst Popup = styled('div')(({ theme }) => ({\n position: 'fixed',\n right: theme.spacing(2),\n bottom: theme.spacing(2),\n top: '100vh',\n transition: 'top 250ms ease-in-out',\n boxShadow: theme.shadows[6],\n borderRadius: 6,\n zIndex: 99999,\n width: 360,\n overflow: 'hidden',\n '@media only screen and (max-width: 450px)': {\n width: 'calc(100% - 32px)',\n left: theme.spacing(2),\n },\n}));\n\nconst ChatHead = ({ icon, children }) => {\n const [open, setOpen] = useState(false);\n\n const togglePopup = async () => {\n setOpen((open) => !open);\n };\n\n return (\n \n {cloneElement(icon, { onClick: togglePopup })}\n \n {open ? cloneElement(children, { togglePopup }) : null}\n \n \n );\n};\n\nexport default ChatHead;\n","import { Menu, ThemeProvider } from '@mui/material';\nimport { Box, styled } from '@mui/system';\nimport useSettings from 'app/hooks/useSettings';\nimport React, { Fragment } from 'react';\n\nconst MenuButton = styled(Box)(({ theme }) => ({\n display: 'inline-block',\n color: theme.palette.text.primary,\n '& div:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n}));\n\nconst MatxMenu = (props) => {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const children = React.Children.toArray(props.children);\n let { shouldCloseOnItemClick = true, horizontalPosition = 'left' } = props;\n const { settings } = useSettings();\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n return (\n \n {props.menuButton}\n \n \n {children.map((child, index) => (\n
{}} key={index}>\n {child}\n
\n ))}\n \n
\n
\n );\n};\n\nexport default MatxMenu;\n","import { MatxLoading } from 'app/components';\nimport { Suspense } from 'react';\n\nconst MatxSuspense = ({ children }) => {\n return }>{children};\n};\n\nexport default MatxSuspense;\n","import { Grid, LinearProgress, Typography } from '@mui/material';\nimport { styled, useTheme } from '@mui/system';\nimport { Small } from './Typography';\n\nconst CustomLinearProgress = styled(LinearProgress)(() => ({\n borderRadius: 2,\n background: 'rgba(0, 0, 0, 0.1)',\n}));\n\nconst MatxProgressBar = ({\n value = 75,\n color = 'primary',\n text = '',\n spacing = 2,\n coloredText = false,\n}) => {\n const theme = useTheme();\n const secondary = theme.palette.text.secondary;\n\n return (\n \n \n \n \n {text !== '' && (\n \n \n {text}\n \n \n )}\n \n );\n};\n\nexport default MatxProgressBar;\n","import { Icon, IconButton } from '@mui/material';\nimport { styled, useTheme } from '@mui/system';\nimport { topBarHeight } from 'app/utils/constant';\nimport React, { useState } from 'react';\n\nconst SearchContainer = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 9,\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n height: topBarHeight,\n background: theme.palette.primary.main,\n color: theme.palette.text.primary,\n '&::placeholder': {\n color: theme.palette.text.primary,\n },\n}));\n\nconst SearchInput = styled('input')(({ theme }) => ({\n width: '100%',\n border: 'none',\n outline: 'none',\n fontSize: '1rem',\n paddingLeft: '20px',\n height: 'calc(100% - 5px)',\n background: theme.palette.primary.main,\n color: theme.palette.text.primary,\n '&::placeholder': { color: theme.palette.text.primary },\n}));\n\nconst MatxSearchBox = () => {\n const [open, setOpen] = useState(false);\n const toggle = () => {\n setOpen(!open);\n };\n\n const { palette } = useTheme();\n const textColor = palette.text.primary;\n\n return (\n \n {!open && (\n \n search\n \n )}\n\n {open && (\n \n \n \n close\n \n \n )}\n \n );\n};\n\nexport default MatxSearchBox;\n","import { Box, styled, useMediaQuery, useTheme } from '@mui/material';\n\nconst SideNav = styled('div')(({ theme, width }) => ({\n zIndex: 91,\n width: width,\n overflow: 'hidden',\n position: 'relative',\n transition: 'width 250ms ease',\n background: theme.palette.background.default,\n [theme.breakpoints.down('sm')]: {\n top: 0,\n left: 0,\n bottom: 0,\n position: 'absolute',\n },\n}));\n\nconst SideNavOverlay = styled('div')(() => ({\n zIndex: 90,\n width: '100%',\n height: '100%',\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.74)',\n}));\n\nconst MatxSidenav = ({ sx, open, children, toggleSidenav, width = '220px' }) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'));\n\n return (\n \n \n {children}\n \n\n {open && isMobile && }\n \n );\n};\n\nexport default MatxSidenav;\n","import { styled } from '@mui/material';\n\nconst Container = styled('div')(() => ({\n height: '100%',\n display: 'flex',\n position: 'relative',\n}));\n\nconst MatxSidenavContainer = ({ children }) => {\n return {children};\n};\n\nexport default MatxSidenavContainer;\n","import { styled } from '@mui/material';\n\nconst Content = styled('div')(() => ({\n flexGrow: 1,\n height: '100%',\n position: 'relative',\n}));\n\nconst MatxSidenavContent = ({ children }) => {\n return {children};\n};\n\nexport default MatxSidenavContent;\n","import { CssBaseline, ThemeProvider } from '@mui/material';\nimport useSettings from 'app/hooks/useSettings';\n\nconst MatxTheme = ({ children }) => {\n const { settings } = useSettings();\n let activeTheme = { ...settings.themes[settings.activeTheme] };\n\n return (\n \n \n {children}\n \n );\n};\n\nexport default MatxTheme;\n","import { ButtonBase, Icon } from '@mui/material';\nimport { Box, styled } from '@mui/system';\nimport clsx from 'clsx';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nconst NavExpandRoot = styled('div')(({ theme }) => ({\n '& .expandIcon': {\n transition: 'transform 0.3s cubic-bezier(0, 0, 0.2, 1) 0ms',\n transform: 'rotate(90deg)',\n },\n '& .collapseIcon': {\n transition: 'transform 0.3s cubic-bezier(0, 0, 0.2, 1) 0ms',\n transform: 'rotate(0deg)',\n },\n '& .expansion-panel': {\n overflow: 'hidden',\n transition: 'max-height 0.3s cubic-bezier(0, 0, 0.2, 1)',\n },\n '& .highlight': {\n background: theme.palette.primary.main,\n },\n '&.compactNavItem': {\n width: 44,\n overflow: 'hidden',\n justifyContent: 'center !important',\n '& .itemText': { display: 'none' },\n '& .itemIcon': { display: 'none' },\n },\n}));\n\nconst BaseButton = styled(ButtonBase)(({ theme }) => ({\n height: 44,\n width: '100%',\n whiteSpace: 'pre',\n overflow: 'hidden',\n paddingRight: '16px',\n borderRadius: '4px',\n marginBottom: '8px',\n display: 'flex',\n justifyContent: 'space-between !important',\n color: theme.palette.text.primary,\n '&:hover': { background: 'rgba(255, 255, 255, 0.08)' },\n '& .icon': {\n width: 36,\n fontSize: '18px',\n paddingLeft: '16px',\n paddingRight: '16px',\n verticalAlign: 'middle',\n },\n}));\n\nconst BulletIcon = styled('div')(({ theme }) => ({\n width: 4,\n height: 4,\n color: 'inherit',\n overflow: 'hidden',\n marginLeft: '20px',\n marginRight: '8px',\n borderRadius: '300px !important',\n // background: theme.palette.primary.contrastText,\n background: theme.palette.text.primary,\n}));\n\nconst ItemText = styled('span')(() => ({\n fontSize: '0.875rem',\n paddingLeft: '0.8rem',\n verticalAlign: 'middle',\n}));\n\nconst BadgeValue = styled('div')(() => ({\n padding: '1px 4px',\n overflow: 'hidden',\n borderRadius: '300px',\n}));\n\nconst MatxVerticalNavExpansionPanel = ({ item, children, mode }) => {\n const [collapsed, setCollapsed] = useState(true);\n const elementRef = useRef(null);\n const componentHeight = useRef(0);\n const { pathname } = useLocation();\n const { name, icon, iconText, badge } = item;\n\n const handleClick = () => {\n componentHeight.current = 0;\n calcaulateHeight(elementRef.current);\n setCollapsed(!collapsed);\n };\n\n const calcaulateHeight = useCallback((node) => {\n if (node.name !== 'child') {\n for (let child of node.children) {\n calcaulateHeight(child);\n }\n }\n\n if (node.name === 'child') componentHeight.current += node.scrollHeight;\n else componentHeight.current += 44; //here 44 is node height\n return;\n }, []);\n\n useEffect(() => {\n if (!elementRef) return;\n\n calcaulateHeight(elementRef.current);\n\n // OPEN DROPDOWN IF CHILD IS ACTIVE\n for (let child of elementRef.current.children) {\n if (child.getAttribute('href') === pathname) {\n setCollapsed(false);\n }\n }\n }, [pathname, calcaulateHeight]);\n\n return (\n \n \n \n {icon && {icon}}\n {iconText && }\n {name}\n \n\n {badge && {badge.value}}\n\n \n \n chevron_right\n \n \n \n\n \n {children}\n \n \n );\n};\n\nexport default MatxVerticalNavExpansionPanel;\n","import { Box, ButtonBase, Icon, styled } from '@mui/material';\nimport useSettings from 'app/hooks/useSettings';\nimport React, { Fragment } from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { Paragraph, Span } from '../Typography';\nimport MatxVerticalNavExpansionPanel from './MatxVerticalNavExpansionPanel';\nimport Api from \"../../utils/Api\";\n\nconst ListLabel = styled(Paragraph)(({ theme, mode }) => ({\n fontSize: '12px',\n marginTop: '20px',\n marginLeft: '15px',\n marginBottom: '10px',\n textTransform: 'uppercase',\n display: mode === 'compact' && 'none',\n color: theme.palette.text.secondary,\n}));\n\nconst ExtAndIntCommon = {\n display: 'flex',\n overflow: 'hidden',\n borderRadius: '4px',\n height: 44,\n whiteSpace: 'pre',\n marginBottom: '8px',\n textDecoration: 'none',\n justifyContent: 'space-between',\n transition: 'all 150ms ease-in',\n '&:hover': { background: 'rgba(255, 255, 255, 0.08)' },\n '&.compactNavItem': {\n overflow: 'hidden',\n justifyContent: 'center !important',\n },\n '& .icon': {\n fontSize: '18px',\n paddingLeft: '16px',\n paddingRight: '16px',\n verticalAlign: 'middle',\n },\n};\nconst ExternalLink = styled('a')(({ theme }) => ({\n ...ExtAndIntCommon,\n color: theme.palette.text.primary,\n}));\n\nconst InternalLink = styled(Box)(({ theme }) => ({\n '& a': {\n ...ExtAndIntCommon,\n color: theme.palette.text.primary,\n },\n '& .navItemActive': {\n backgroundColor: 'rgba(255, 255, 255, 0.16)',\n },\n}));\n\nconst StyledText = styled(Span)(({ mode }) => ({\n fontSize: '0.875rem',\n paddingLeft: '0.8rem',\n display: mode === 'compact' && 'none',\n}));\n\nconst BulletIcon = styled('div')(({ theme }) => ({\n padding: '2px',\n marginLeft: '24px',\n marginRight: '8px',\n overflow: 'hidden',\n borderRadius: '300px',\n background: theme.palette.text.primary,\n}));\n\nconst BadgeValue = styled('div')(() => ({\n padding: '1px 8px',\n overflow: 'hidden',\n borderRadius: '300px',\n}));\n\nconst MatxVerticalNav = ({ items }) => {\n const { settings } = useSettings();\n const { mode } = settings.layout1Settings.leftSidebar;\n\n const handleApiUrlClick = async (item) => { \n const response = await Api.get(item.path);\n window.location.href = response.url;\n }\n\n const renderLevels = (data) => {\n return data.map((item, index) => {\n if (item.type === 'label')\n return (\n \n {item.label}\n \n );\n\n if (item.children) {\n return (\n \n {renderLevels(item.children)}\n \n );\n } else if (item.type === 'extLink') {\n return (\n \n \n {(() => {\n if (item.icon) {\n return {item.icon};\n } else {\n return {item.iconText};\n }\n })()}\n \n {item.name}\n \n \n {item.badge && {item.badge.value}}\n \n \n );\n } else if (item.type === 'apiUrl') {\n return (\n { e.preventDefault(); handleApiUrlClick(item); }}\n >\n \n {(() => {\n if (item.icon) {\n return {item.icon};\n } else {\n return {item.iconText};\n }\n })()}\n \n {item.name}\n \n \n {item.badge && {item.badge.value}}\n \n \n ); \n } else {\n return (\n \n \n isActive\n ? `navItemActive ${mode === 'compact' && 'compactNavItem'}`\n : `${mode === 'compact' && 'compactNavItem'}`\n }\n >\n \n {item?.icon ? (\n \n {item.icon}\n \n ) : (\n \n \n \n {item.iconText}\n \n \n )}\n \n {item.name}\n \n\n \n\n {item.badge && (\n {item.badge.value}\n )}\n \n \n \n );\n }\n });\n };\n\n return
{renderLevels(items)}
;\n};\n\nexport default React.memo(MatxVerticalNav);\n","import { Card } from '@mui/material';\nimport { Box, styled } from '@mui/system';\n\nconst CardRoot = styled(Card)(() => ({\n height: '100%',\n padding: '20px 24px',\n}));\n\nconst CardTitle = styled('div')(({ subtitle }) => ({\n fontSize: '1rem',\n fontWeight: '500',\n textTransform: 'capitalize',\n marginBottom: !subtitle && '16px',\n}));\n\nconst SimpleCard = ({ children, title, subtitle, icon }) => {\n return (\n \n {title}\n {subtitle && {subtitle}}\n {children}\n \n );\n};\n\nexport default SimpleCard;\n","const textLight = {\n primary: 'rgba(52, 49, 76, 1)',\n secondary: 'rgba(52, 49, 76, 0.54)',\n disabled: 'rgba(52, 49, 76, 0.38)',\n hint: 'rgba(52, 49, 76, 0.38)',\n};\n\nconst textDark = {\n primary: '#fff',\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.64)',\n hint: 'rgba(255, 255, 255, 0.64)',\n};\n\nconst secondaryColor = {\n light: '#f9a352',\n main: '#ff9e43',\n dark: '#ff932e',\n contrastText: textLight.primary,\n};\nconst errorColor = {\n main: '#FF3D57',\n};\n\nexport const themeColors = {\n whitePurple: {\n palette: {\n type: 'light',\n primary: {\n main: '#ffffff',\n contrastText: textLight.primary,\n },\n secondary: {\n main: '#7467ef',\n contrastText: '#ffffff',\n },\n background: {\n paper: '#fff',\n default: '#fafafa',\n },\n error: errorColor,\n text: textLight,\n },\n },\n whiteBlue: {\n palette: {\n type: 'light',\n primary: {\n main: '#ffffff',\n contrastText: textLight.primary,\n },\n secondary: {\n main: '#536dfe',\n contrastText: '#ffffff',\n },\n background: {\n paper: '#fff',\n default: '#fafafa',\n },\n text: textLight,\n },\n },\n slateDark1: {\n palette: {\n type: 'dark',\n primary: {\n main: '#222A45',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#ff9e43',\n contrastText: textLight.primary,\n },\n error: errorColor,\n background: {\n paper: '#222A45',\n default: '#1a2038',\n },\n text: textDark,\n },\n },\n slateDark2: {\n palette: {\n type: 'dark',\n primary: {\n main: '#1a2038',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#ff9e43',\n contrastText: textLight.primary,\n },\n error: errorColor,\n background: {\n paper: '#222A45',\n default: '#1a2038',\n },\n text: textDark,\n },\n },\n purple1: {\n palette: {\n type: 'light',\n primary: {\n main: '#7467ef',\n contrastText: '#ffffff',\n },\n secondary: secondaryColor,\n error: errorColor,\n background: {\n paper: '#fff',\n default: '#fafafa',\n },\n text: textLight,\n },\n },\n purple2: {\n palette: {\n type: 'light',\n primary: {\n main: '#6a75c9',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#ff9e43',\n contrastText: textLight.primary,\n },\n error: errorColor,\n background: {\n paper: '#fff',\n default: '#fafafa',\n },\n text: textLight,\n },\n },\n purpleDark1: {\n palette: {\n type: 'dark',\n primary: {\n main: '#7467ef',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#ff9e43',\n contrastText: textLight.primary,\n },\n error: errorColor,\n background: {\n paper: '#222A45',\n default: '#1a2038',\n },\n text: textDark,\n },\n },\n purpleDark2: {\n palette: {\n type: 'dark',\n primary: {\n main: '#6a75c9',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#ff9e43',\n contrastText: textLight.primary,\n },\n error: errorColor,\n background: {\n paper: '#222A45',\n default: '#1a2038',\n },\n text: textDark,\n },\n },\n blue: {\n palette: {\n type: 'light',\n primary: {\n main: '#536dfe',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#FFAF38',\n contrastText: textLight.primary,\n },\n error: errorColor,\n background: {\n paper: '#fff',\n default: '#fafafa',\n },\n text: textLight,\n },\n },\n blueDark: {\n palette: {\n type: 'dark',\n primary: {\n main: '#536dfe',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#FF4F30',\n contrastText: textLight.primary,\n },\n error: errorColor,\n background: {\n paper: '#222A45',\n default: '#1a2038',\n },\n text: textDark,\n },\n },\n red: {\n palette: {\n type: 'dark',\n primary: {\n main: '#e53935',\n contrastText: '#ffffff',\n },\n secondary: {\n main: '#FFAF38',\n contrastText: textLight.primary,\n },\n error: errorColor,\n text: textDark,\n },\n },\n};\n\nexport const themeShadows = [\n 'none',\n '0px 2px 1px -1px rgba(0, 0, 0, 0.06),0px 1px 1px 0px rgba(0, 0, 0, 0.042),0px 1px 3px 0px rgba(0, 0, 0, 0.036)',\n '0px 3px 1px -2px rgba(0, 0, 0, 0.06),0px 2px 2px 0px rgba(0, 0, 0, 0.042),0px 1px 5px 0px rgba(0, 0, 0, 0.036)',\n '0px 3px 3px -2px rgba(0, 0, 0, 0.06),0px 3px 4px 0px rgba(0, 0, 0, 0.042),0px 1px 8px 0px rgba(0, 0, 0, 0.036)',\n '0px 2px 4px -1px rgba(0, 0, 0, 0.06),0px 4px 5px 0px rgba(0, 0, 0, 0.042),0px 1px 10px 0px rgba(0, 0, 0, 0.036)',\n '0px 3px 5px -1px rgba(0, 0, 0, 0.06),0px 5px 8px 0px rgba(0, 0, 0, 0.042),0px 1px 14px 0px rgba(0, 0, 0, 0.036)',\n '0px 3px 5px -1px rgba(0, 0, 0, 0.06),0px 6px 10px 0px rgba(0, 0, 0, 0.042),0px 1px 18px 0px rgba(0, 0, 0, 0.036)',\n '0px 4px 5px -2px rgba(0, 0, 0, 0.06),0px 7px 10px 1px rgba(0, 0, 0, 0.042),0px 2px 16px 1px rgba(0, 0, 0, 0.036)',\n '0px 5px 5px -3px rgba(0, 0, 0, 0.06),0px 8px 10px 1px rgba(0, 0, 0, 0.042),0px 3px 14px 2px rgba(0, 0, 0, 0.036)',\n '0px 5px 6px -3px rgba(0, 0, 0, 0.06),0px 9px 12px 1px rgba(0, 0, 0, 0.042),0px 3px 16px 2px rgba(0, 0, 0, 0.036)',\n '0px 6px 6px -3px rgba(0, 0, 0, 0.06),0px 10px 14px 1px rgba(0, 0, 0, 0.042),0px 4px 18px 3px rgba(0, 0, 0, 0.036)',\n '0px 6px 7px -4px rgba(0, 0, 0, 0.06),0px 11px 15px 1px rgba(0, 0, 0, 0.042),0px 4px 20px 3px rgba(0, 0, 0, 0.036)',\n '0px 7px 8px -4px rgba(0, 0, 0, 0.06),0px 12px 17px 2px rgba(0, 0, 0, 0.042),0px 5px 22px 4px rgba(0, 0, 0, 0.036)',\n '0px 7px 8px -4px rgba(0, 0, 0, 0.06),0px 13px 19px 2px rgba(0, 0, 0, 0.042),0px 5px 24px 4px rgba(0, 0, 0, 0.036)',\n '0px 7px 9px -4px rgba(0, 0, 0, 0.06),0px 14px 21px 2px rgba(0, 0, 0, 0.042),0px 5px 26px 4px rgba(0, 0, 0, 0.036)',\n '0px 8px 9px -5px rgba(0, 0, 0, 0.06),0px 15px 22px 2px rgba(0, 0, 0, 0.042),0px 6px 28px 5px rgba(0, 0, 0, 0.036)',\n '0px 8px 10px -5px rgba(0, 0, 0, 0.06),0px 16px 24px 2px rgba(0, 0, 0, 0.042),0px 6px 30px 5px rgba(0, 0, 0, 0.036)',\n '0px 8px 11px -5px rgba(0, 0, 0, 0.06),0px 17px 26px 2px rgba(0, 0, 0, 0.042),0px 6px 32px 5px rgba(0, 0, 0, 0.036)',\n '0px 9px 11px -5px rgba(0, 0, 0, 0.06),0px 18px 28px 2px rgba(0, 0, 0, 0.042),0px 7px 34px 6px rgba(0, 0, 0, 0.036)',\n '0px 9px 12px -6px rgba(0, 0, 0, 0.06),0px 19px 29px 2px rgba(0, 0, 0, 0.042),0px 7px 36px 6px rgba(0, 0, 0, 0.036)',\n '0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)',\n '0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)',\n '0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)',\n '0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)',\n '0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)',\n];\n","import * as Msal from \"@azure/msal-browser\";\r\n\r\nclass Auth {\r\n constructor() {\r\n this.accessToken = null;\r\n this.accountId = null;\r\n this.authDomain = \"cloudyscheduler.b2clogin.com\";\r\n this.authFlow = \"B2C_1_SignUpSignIn\";\r\n this.profileFlow = \"B2C_1_ProfileEdting\";\r\n this.redirectUrl = \"https://www.cloudyscheduler.com\";\r\n this.accessScope = \"https://cloudyscheduler.com/api/Jobs.Read\";\r\n this.authorityUrl = \"https://cloudyscheduler.b2clogin.com/cloudyscheduler.onmicrosoft.com/\";\r\n let redirectUri = \"https://app.cloudyscheduler.com/\";\r\n \r\n if (window.location.host.indexOf(\"localhost\") === 0) {\r\n redirectUri = \"http://localhost:3000/\";\r\n }\r\n\r\n this.msalConfig = {\r\n auth: {\r\n clientId: \"975c361a-2f26-4fd4-b611-1780eeeb8f20\",\r\n authority: this.authorityUrl + this.authFlow,\r\n validateAuthority: true,\r\n redirectUri: redirectUri,\r\n postLogoutRedirectUri: this.redirectUrl,\r\n navigateToLoginRequestUrl: true,\r\n knownAuthorities: [this.authDomain]\r\n },\r\n cache: {\r\n cacheLocation: \"localStorage\", // \"sessionStorage\" is more secure but \"localStorage\" gives you SSO between tabs\r\n storeAuthStateInCookie: false\r\n }\r\n };\r\n\r\n this.msalInstance = new Msal.PublicClientApplication(this.msalConfig); \r\n\r\n this.msalInstance.handleRedirectPromise()\r\n .then(response => {\r\n if (response) {\r\n var authContext = (response.idTokenClaims['tfp'] || response.idTokenClaims['tcr'] || \"\").toUpperCase();\r\n\r\n if (authContext === this.authFlow.toUpperCase()) {\r\n this.handleAuthResponse(response);\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n async handleAuthResponse(response) {\r\n if (response !== null) {\r\n this.accessToken = response.accessToken;\r\n this.setAccount(response.account);\r\n } else {\r\n this.selectAccount();\r\n }\r\n }\r\n\r\n setAccount(account) {\r\n this.accountId = account.homeAccountId;\r\n\r\n let firstName = \"Unknown\";\r\n let lastName = \"User\";\r\n\r\n if (account.idTokenClaims !== undefined) {\r\n firstName = account.idTokenClaims.given_name;\r\n lastName = account.idTokenClaims.family_name;\r\n }\r\n\r\n this.dispatch('SignedIn', { firstName, lastName });\r\n }\r\n\r\n selectAccount() {\r\n const currentAccounts = this.msalInstance.getAllAccounts();\r\n\r\n if (currentAccounts.length < 1) { \r\n this.dispatch('SignedOut', {});\r\n return;\r\n } else if (currentAccounts.length > 1) {\r\n const accounts = currentAccounts.filter(account =>\r\n account.homeAccountId.toUpperCase().includes(this.authFlow.toUpperCase()) &&\r\n account.idTokenClaims.iss.includes(this.authDomain) &&\r\n account.idTokenClaims.aud === this.msalConfig.auth.clientId \r\n );\r\n\r\n if (accounts.length > 1) {\r\n if (accounts.every(account => account.localAccountId === accounts[0].localAccountId)) {\r\n // All accounts belong to the same user \r\n this.setAccount(accounts[0]);\r\n } else {\r\n // Multiple users detected. Logout all to be safe\r\n this.signOut();\r\n };\r\n } else if (accounts.length === 1) {\r\n this.setAccount(accounts[0]);\r\n }\r\n } else if (currentAccounts.length === 1) {\r\n this.setAccount(currentAccounts[0]);\r\n }\r\n }\r\n\r\n async getAccessToken() {\r\n if (this.accessToken) return Promise.resolve(this.accessToken);\r\n\r\n const tokenRequest = {\r\n scopes: [this.accessScope],\r\n forceRefresh: false,\r\n account: this.msalInstance.getAccountByHomeId(this.accountId)\r\n };\r\n \r\n return this.msalInstance.acquireTokenSilent(tokenRequest)\r\n .then((response) => {\r\n // In case the response from B2C server has an empty accessToken field\r\n // throw an error to initiate token acquisition\r\n if (!response.accessToken || response.accessToken === \"\") {\r\n throw new Msal.InteractionRequiredAuthError();\r\n } else {\r\n console.log(\"access_token acquired at: \" + new Date().toString());\r\n this.accessToken = response.accessToken;\r\n return this.accessToken;\r\n }\r\n }).catch(error => {\r\n console.log(\"Silent token acquisition fails. Acquiring token using popup. \\n\", error);\r\n if (error instanceof Msal.InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalInstance.acquireTokenRedirect(tokenRequest);\r\n } else {\r\n console.log(error); \r\n }\r\n });\r\n }\r\n\r\n signIn() { \r\n const loginRequest = { scopes: [\"openid\", this.accessScope], prompt: \"select_account\" }; \r\n this.msalInstance.loginRedirect(loginRequest);\r\n }\r\n\r\n signOut() {\r\n const logoutRequest = {\r\n postLogoutRedirectUri: this.redirectUrl,\r\n mainWindowRedirectUri: this.redirectUrl\r\n };\r\n this.msalInstance.logoutRedirect(logoutRequest);\r\n }\r\n\r\n editProfile() {\r\n const editProfileRequest = {\r\n authority: this.authorityUrl + this.profileFlow,\r\n loginHint: this.msalInstance.getAccountByHomeId(this.accountId).username\r\n };\r\n this.msalInstance.loginRedirect(editProfileRequest);\r\n }\r\n\r\n // allow controls to subscribe to events\r\n on(name, callback) {\r\n var callbacks = this[name];\r\n if (!callbacks) {\r\n this[name] = [callback];\r\n } else {\r\n callbacks.push(callback);\r\n }\r\n }\r\n\r\n // emit events to subscribers\r\n dispatch(name, event) {\r\n const callbacks = this[name];\r\n if (callbacks) callbacks.forEach(callback => callback(event));\r\n } \r\n}\r\n\r\nexport default new Auth();\r\n","export const topBarHeight = 64\nexport const sideNavWidth = 260\nexport const navbarHeight = 60\nexport const sidenavCompactWidth = 80\nexport const containedLayoutWidth = 1200"],"sourceRoot":""}