{"version":3,"sources":["app/components/MatxLayout/Layout1/Layout1Settings.js","app/components/MatxTheme/components.js","app/components/MatxTheme/themeOptions.js","app/components/MatxTheme/initThemes.js","app/components/MatxLayout/settings.js","app/contexts/SettingsContext.js","app/views/404/NotFound.jsx","app/redux/actions/ActionTypes.js","app/redux/actions/PopupAlertActions.js","app/redux/reducers/ScrumBoardReducer.js","app/redux/reducers/NotificationReducer.js","app/redux/reducers/EcommerceReducer.js","app/redux/reducers/NavigationReducer.js","app/redux/reducers/LandingPageReducer.js","app/redux/reducers/PopupAlertReducer.js","app/redux/reducers/TableListingReducer.js","app/redux/reducers/RootReducer.js","app/redux/Store.js","app/auth/AuthGuard.jsx","app/components/Loadable/Loadable.jsx","app/views/dashboard/DashboardRoutes.js","app/views/account/AccountRoutes.js","app/views/table-listing/TableListingRoutes.js","app/views/profile/ProfileRoutes.js","app/components/TimeoutWarningModal.js","app/components/util/eventListenerUtil.js","app/components/TimeoutLogic.js","app/components/PopupAlert/PopupAlert.jsx","app/App.jsx","app/routes/routes.jsx","serviceWorker.js","index.jsx","axios.js","app/components/Typography.js","app/hooks/useSettings.js","app/components/Breadcrumb/Breadcrumb.jsx","app/components/MatxDivider/MatxDivider.jsx","app/components/MatxMenu/MatxMenu.jsx","app/components/MatxToolbarMenu/MatxToolbarMenu.jsx","app/components/MatxSuspense/MatxSuspense.jsx","app/components/MatxSearchBox/MatxSearchBox.jsx","app/components/MatxVerticalNav/MatxVerticalNavExpansionPanel.jsx","app/components/MatxVerticalNav/MatxVerticalNav.jsx","app/components/MatxSidenav/MatxSidenavContainer.jsx","app/components/MatxSidenav/MatxSidenav.jsx","app/components/MatxSidenav/MatxSidenavContent.jsx","app/components/chat-box-2/Chatbox.jsx","app/components/ChatAvatar/ChatAvatar.jsx","app/components/MatxTheme/MatxTheme.jsx","app/components/ChatHead/ChatHead.jsx","app/components/RectangleAvatar/RectangleAvatar.jsx","app/components/MatxListItem1/MatxListItem1.jsx","app/components/AddToCartButton/AddToCartButton.jsx","app/components/MatxTheme/EchartTheme.jsx","app/components/charts/EchartCreator.jsx","app/components/ConfirmationDialog/ConfirmationDialog.jsx","app/components/MatxProgressBar/MatxProgressBar.jsx","app/components/cards/SimpleCard.jsx","app/hooks/useAuth.js","utils.js","app/components/MatxTheme/themeColors.js","app/redux/actions/TableListingActions.js","app/components/MatxLoading/MatxLoading.jsx","app/utils/constant.js","app/components/MatxLayout/index.js","app/components/MatxLayout/MatxLayout.jsx","app/contexts/JWTAuthContext.js"],"names":["Layout1Settings","leftSidebar","show","mode","theme","bgImgURL","topbar","fixed","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","height","width","body","a","textDecoration","color","zIndex","MuiFab","MuiAccordion","display","MuiTooltip","tooltip","MuiMenuItem","MuiExpansionPanel","MuiCard","borderRadius","themeOptions","typography","fontFamily","body1","status","danger","red","MatxLayoutSettings","activeLayout","activeTheme","perfectScrollbar","themes","forEach","themeColors","value","key","createTheme","merge","createMatxThemes","layout1Settings","secondarySidebar","open","footer","SettingsContext","createContext","settings","updateSettings","SettingsProvider","children","useState","currentSettings","setCurrentSettings","Provider","update","marged","FlexBox","styled","Box","alignItems","JustifyBox","maxWidth","flexDirection","justifyContent","IMG","marginBottom","NotFoundRoot","NotFound","navigate","useNavigate","src","alt","style","marginTop","variant","sx","onClick","GET_PRODUCT_LIST","GET_CART_LIST","GET_CATEGORY_LIST","GET_RATING_LIST","GET_BRAND_LIST","ADD_PRODUCT_TO_CART","DELETE_PRODUCT_FROM_CART","UPDATE_CART_AMOUNT","GET_USER_NAVIGATION_PENDING","GET_USER_NAVIGATION_SUCCESS","GET_USER_NAVIGATION_FAILED","GET_NOTIFICATION","CREATE_NOTIFICATION","DELETE_NOTIFICATION","DELETE_ALL_NOTIFICATION","GET_ALL_BOARD","GET_BOARD_BY_ID","ADD_BOARD","ADD_MEMBER_IN_BOARD","DELETE_MEMBER_FROM_BOARD","GET_ALL_MEMBERS","GET_ALL_LABELS","ADD_LIST","RENAME_LIST","REORDER_LIST","DELETE_LIST","ADD_CARD","UPDATE_CARD","REORDER_CARD_LIST","MOVE_CARD","UPDATE_LANDING_ACTIVE_TAB","OPEN_POPUP","CLOSE_POPUP","GET_TABLE_LISTING_PENDING","GET_TABLE_LISTING_SUCCESS","GET_TABLE_LISTING_FAILED","GET_ITEM_DETAILS_PENDING","GET_ITEM_DETAILS_SUCCESS","GET_ITEM_DETAILS_FAILED","UPDATE_TABLE_LISTING","UPDATE_ITEM_DETAILS","UPDATE_ITEM_DETAILS_SUCCESS","IMPORT_ITEM_DETAILS_SUCCESS","openPopup","message","title","action","detailsTitle","detailsId","statusCode","redirect","customParam","dispatch","type","Types","payload","closePopup","initialState","ScrumBoardReducer","state","memberList","labelList","boardList","board","NotificationReducer","productList","cartList","EcommerceReducer","categoryList","ratingList","brandList","navigations","isLoading","data","NavigationReducer","LandingPageReducer","landingActiveTab","popupAlert","PopupAlertReducer","itemDetails","pageName","insertDisabled","updateDisabled","inputField","tableListing","pageNotFound","total","rowsPerPage","filters","page","pages","sort","field","column","name","setting","regions","deleteDisabled","resetEnabled","verifyEnabled","submitLeadEnabled","customItemDetailsPage","filterDateEnabled","filterGeneralSearchDisabled","filterRegionSearchEnabled","filterRegionSearchAllEnabled","importEnabled","TableListingReducer","RootReducer","combineReducers","notifications","scrumboard","ecommerce","middlewares","thunk","Store","createStore","compose","applyMiddleware","x","AuthGuard","isAuthenticated","useAuth","to","Loadable","Component","props","fallback","Analytics","lazy","dashboardRoutes","path","element","LandingPage","accountRoutes","TableListing","ItemDetails","ApplicationListing","ImportSalesPerformances","SalesLeaderboard","ImportTakafulIncentives","TakafulLeaderboard","TakafulEsubmission","TakafulNoSubmission","TableListingRoutes","UpdateProfile","UpdatePassword","TimeoutWarningModal","isOpen","countdown","onRequestClose","useDispatch","logout","user","handleClose","Dialog","onClose","fullWidth","DialogTitle","id","DialogContent","DialogContentText","DialogActions","Button","eventTypes","TimeoutLogic","isWarningModalOpen","setWarningModalOpen","counter","setCounter","useEffect","createTimeout1","setTimeout","listener","clearTimeout","timeout","window","addEventListener","addEventListeners","timer","setInterval","removeEventListener","removeEventListeners","clearInterval","PopupAlert","location","useLocation","useSelector","pathname","getItemDetails","TextField","autoFocus","margin","label","onChange","event","target","console","log","upsertItemDetails","deleteItemDetails","App","all_pages","useRoutes","MatxLayout","ProfileRoutes","store","Boolean","hostname","match","ReactDOM","render","StyledEngineProvider","injectFirst","basename","CssBaseline","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","axios","defaults","baseURL","process","axiosInstance","create","interceptors","response","use","error","Promise","reject","StyledBox","textTransformStyle","ellipsis","overflow","textOverflow","H5","className","clsx","component","mb","mt","lineHeight","H6","Paragraph","Small","Span","useSettings","useContext","flexWrap","paddingBottom","verticalAlign","palette","text","secondary","marginLeft","hint","Icon","textAlign","position","content","top","left","backgroundColor","divider","background","MenuButton","primary","hover","MatxMenu","React","anchorEl","setAnchorEl","Children","toArray","shouldCloseOnItemClick","horizontalPosition","currentTarget","menuButton","ThemeProvider","Menu","elevation","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","map","child","index","breakpoints","down","dark","MatxSuspense","MatxLoading","topBarHeight","main","border","outline","NavExpandRoot","transition","transform","BaseButton","ButtonBase","paddingRight","BulletIcon","marginRight","ItemText","BadgeValue","MatxVerticalNavExpansionPanel","item","collapsed","setCollapsed","elementRef","useRef","componentHeight","icon","iconText","badge","calcaulateHeight","useCallback","node","current","scrollHeight","getAttribute","compactNavItem","sidenavHoverShow","collapseIcon","expandIcon","ref","maxHeight","ListLabel","ExtAndIntCommon","ExternalLink","InternalLink","StyledText","MatxVerticalNav","items","renderLevels","href","rel","mx","isActive","ml","memo","default","bottom","flexGrow","ChatContainer","StyledScrollBar","ScrollBar","ProfileBox","ChatStatus","ChatMessage","MessageTime","ChatImgContainer","ChatImgBox","ChatImg","ChatImgSize","globalMessageList","Chatbox","togglePopup","isAlive","setIsAlive","setMessage","messageList","setMessageList","currentUserId","chatBottomRef","querySelector","dummyReply","messageObject","contactId","avatar","push","scrollToBottom","scrollTo","behavior","time","mood","useTheme","textPrimary","IconButton","ind","p","Avatar","Divider","convertHexToRGB","placeholder","multiline","rowsMax","InputProps","endAdornment","size","classes","e","onKeyUp","shiftKey","tempMessage","trim","tempList","StyledAvatar","StatusCircle","right","ChatAvatar","MatxTheme","PopupRoot","opacity","lighten","cursor","Popup","spacing","shadows","ChatHead","setOpen","cloneElement","popupOpen","paper","EchartTheme","MuiTheme","series","echarts","LinearGradient","offset","EchartCreator","option","lazyUpdate","prototype","PropTypes","string","isRequired","object","paddingTop","fallbacks","CustomLinearProgress","LinearProgress","MatxProgressBar","coloredText","Grid","container","xs","CardRoot","Card","CardTitle","subtitle","StyledHR","borderTop","SimpleCard","AuthContext","hex","c","slice","split","join","test","substring","length","getTimeDifference","date","difference","differenceInSeconds","Date","Math","floor","toFixed","textLight","disabled","textDark","errorColor","whitePurple","contrastText","whiteBlue","slateDark1","slateDark2","purple1","light","purple2","purpleDark1","purpleDark2","blue","blueDark","bimb","bimbDark1","getTableListing","get","params","res","catch","updateTableListing","updateItemDetails","post","upsertFileDetails","formdata","importItemDetails","resendVerify","email","resetPassword","downloadPDF","downloadExcel","period","emailPDF","StyledLoading","Loading","sideNavWidth","sidenavCompactWidth","MatxLayouts","layout1","Layout","isInitialised","setSession","accessToken","localStorage","setItem","headers","common","Authorization","removeItem","reducer","method","login","resolve","verify","resetPasssword","check","AuthProvider","useReducer","password","token","newUser","role","loginAD","staff_id","url","param","forgotPassword","getItem"],"mappings":"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","file":"static/js/main.7666b7c0.chunk.js","sourcesContent":["const Layout1Settings = {\r\n leftSidebar: {\r\n show: true,\r\n mode: 'full', // full, close, compact, mobile,\r\n theme: 'bimbDark1', // View all valid theme colors inside MatxTheme/themeColors.js\r\n bgImgURL: '/assets/images/sidebar/sidebar-bg-dark.jpg',\r\n },\r\n topbar: {\r\n show: true,\r\n fixed: true,\r\n theme: 'whiteBlue', // View all valid theme colors inside MatxTheme/themeColors.js\r\n },\r\n}\r\n\r\nexport default Layout1Settings\r\n","import { themeShadows } from './themeColors'\r\n\r\nexport const components = {\r\n MuiTable: {\r\n styleOverrides: {\r\n root: {\r\n tableLayout: 'fixed',\r\n },\r\n },\r\n },\r\n MuiTableCell: {\r\n styleOverrides: {\r\n head: {\r\n fontSize: '13px',\r\n padding: '12px 0px',\r\n },\r\n root: {\r\n fontSize: '14px',\r\n whiteSpace: 'pre-wrap',\r\n wordBreak: 'break-all',\r\n padding: '12px 8px 12px 0px',\r\n },\r\n },\r\n },\r\n MUIDataTableSelectCell: {\r\n styleOverrides: {\r\n root: {\r\n paddingLeft: 12,\r\n },\r\n },\r\n },\r\n MUIDataTableHeadCell: {\r\n styleOverrides: {\r\n root: {\r\n paddingLeft: 16,\r\n },\r\n },\r\n },\r\n MUIDataTableBodyCell: {\r\n styleOverrides: {\r\n root: {\r\n paddingLeft: 8,\r\n },\r\n },\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: '14px',\r\n textTransform: 'none',\r\n fontWeight: '400',\r\n },\r\n contained: {\r\n boxShadow: themeShadows[8],\r\n },\r\n },\r\n },\r\n MuiCssBaseline: {\r\n styleOverrides: {\r\n '*': {\r\n boxSizing: 'border-box',\r\n },\r\n html: {\r\n MozOsxFontSmoothing: 'grayscale',\r\n WebkitFontSmoothing: 'antialiased',\r\n height: '100%',\r\n width: '100%',\r\n },\r\n body: {\r\n height: '100%',\r\n },\r\n a: {\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n '#root': {\r\n height: '100%',\r\n },\r\n '#nprogress .bar': {\r\n zIndex: '2000 !important',\r\n },\r\n },\r\n },\r\n MuiFab: {\r\n styleOverrides: {\r\n root: {\r\n boxShadow: themeShadows[12],\r\n },\r\n },\r\n },\r\n MuiAccordion: {\r\n styleOverrides: {\r\n root: {\r\n '&:before': {\r\n display: 'none',\r\n },\r\n },\r\n },\r\n },\r\n MuiTooltip: {\r\n styleOverrides: {\r\n tooltip: {\r\n fontSize: '11px',\r\n },\r\n },\r\n },\r\n MuiMenuItem: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: '0.875rem',\r\n },\r\n },\r\n },\r\n MuiExpansionPanel: {\r\n styleOverrides: {\r\n root: {\r\n '&:before': {\r\n display: 'none',\r\n },\r\n },\r\n },\r\n },\r\n MuiCard: {\r\n styleOverrides: {\r\n root: {\r\n borderRadius: '8px',\r\n boxShadow:\r\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',\r\n },\r\n },\r\n },\r\n}\r\n","import { red } from '@mui/material/colors'\r\nimport { components } from './components'\r\n\r\nconst themeOptions = {\r\n typography: {\r\n fontFamily: 'TitilliumWeb',\r\n fontSize: 14,\r\n body1: {\r\n fontSize: '14px',\r\n },\r\n },\r\n\r\n status: {\r\n danger: red[500],\r\n },\r\n components: {\r\n ...components,\r\n },\r\n}\r\n\r\nexport default themeOptions\r\n","import { forEach, merge } from 'lodash'\r\nimport themeOptions from './themeOptions'\r\nimport { themeColors } from './themeColors'\r\nimport { createTheme } from '@mui/material'\r\n\r\nfunction createMatxThemes() {\r\n let themes = {}\r\n\r\n forEach(themeColors, (value, key) => {\r\n themes[key] = createTheme(merge({}, themeOptions, value))\r\n })\r\n return themes\r\n}\r\nexport const themes = createMatxThemes()\r\n","import layout1Settings from './Layout1/Layout1Settings'\r\nimport { themes } from '../MatxTheme/initThemes'\r\n\r\n// UPDATE BELOW CODE\r\n// DOC http://demos.ui-lib.com/matx-react-doc/layout.html\r\nexport const MatxLayoutSettings = {\r\n activeLayout: 'layout1', // layout1, layout2\r\n activeTheme: 'bimb', // View all valid theme colors inside MatxTheme/themeColors.js\r\n perfectScrollbar: false,\r\n\r\n themes: themes,\r\n layout1Settings, // open Layout1/Layout1Settings.js\r\n\r\n secondarySidebar: {\r\n show: false,\r\n open: false,\r\n theme: 'bimbDark1', // View all valid theme colors inside MatxTheme/themeColors.js\r\n },\r\n // Footer options\r\n footer: {\r\n show: false,\r\n fixed: false,\r\n theme: 'bimbDark1', // View all valid theme colors inside MatxTheme/themeColors.js\r\n },\r\n}\r\n","import React, { createContext, useState } from 'react'\r\n\r\nimport { merge } from 'lodash'\r\n\r\nimport { MatxLayoutSettings } from 'app/components/MatxLayout/settings'\r\n\r\nconst SettingsContext = createContext({\r\n settings: MatxLayoutSettings,\r\n updateSettings: () => {},\r\n})\r\n\r\nexport const SettingsProvider = ({ settings, children }) => {\r\n const [currentSettings, setCurrentSettings] = useState(\r\n settings || MatxLayoutSettings\r\n )\r\n\r\n const handleUpdateSettings = (update = {}) => {\r\n const marged = merge({}, currentSettings, update)\r\n setCurrentSettings(marged)\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default SettingsContext\r\n","import React from 'react'\r\nimport { Button } from '@mui/material'\r\nimport { Box, styled } from '@mui/system'\r\nimport { useNavigate } from 'react-router-dom'\r\n\r\nconst FlexBox = styled(Box)(() => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n}))\r\n\r\nconst JustifyBox = styled(FlexBox)(() => ({\r\n maxWidth: 320,\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n}))\r\n\r\nconst IMG = styled('img')(() => ({\r\n width: '100%',\r\n marginBottom: '32px',\r\n}))\r\n\r\nconst NotFoundRoot = styled(FlexBox)(() => ({\r\n width: '100%',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '100vh !important',\r\n}))\r\n\r\nconst NotFound = () => {\r\n const navigate = useNavigate()\r\n\r\n return (\r\n \r\n \r\n \"\"\r\n

404 Page Not Found

\r\n navigate(-1)}\r\n >\r\n Back\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NotFound\r\n","\r\nexport const GET_PRODUCT_LIST = 'GET_PRODUCT_LIST';\r\nexport const GET_CART_LIST = 'GET_CART_LIST';\r\nexport const GET_CATEGORY_LIST = 'GET_CATEGORY_LIST';\r\nexport const GET_RATING_LIST = 'GET_RATING_LIST';\r\nexport const GET_BRAND_LIST = 'GET_BRAND_LIST';\r\n\r\nexport const ADD_PRODUCT_TO_CART = 'ADD_PRODUCT_TO_CART';\r\nexport const DELETE_PRODUCT_FROM_CART = 'DELETE_PRODUCT_FROM_CART';\r\n\r\nexport const UPDATE_CART_AMOUNT = 'UPDATE_CART_AMOUNT';\r\n\r\n\r\nexport const GET_USER_NAVIGATION_PENDING = 'GET_USER_NAVIGATION_PENDING'\r\nexport const GET_USER_NAVIGATION_SUCCESS = 'GET_USER_NAVIGATION_SUCCESS'\r\nexport const GET_USER_NAVIGATION_FAILED = 'GET_USER_NAVIGATION_FAILED'\r\n\r\n\r\nexport const GET_NOTIFICATION = 'GET_NOTIFICATION'\r\nexport const CREATE_NOTIFICATION = 'CREATE_NOTIFICATION'\r\nexport const DELETE_NOTIFICATION = 'DELETE_NOTIFICATION'\r\nexport const DELETE_ALL_NOTIFICATION = 'DELETE_ALL_NOTIFICATION'\r\n\r\n\r\nexport const GET_ALL_BOARD = 'GET_ALL_BOARD'\r\nexport const GET_BOARD_BY_ID = 'GET_BOARD_BY_ID'\r\nexport const ADD_BOARD = 'ADD_BOARD'\r\nexport const ADD_MEMBER_IN_BOARD = 'ADD_MEMBER_IN_BOARD'\r\nexport const DELETE_MEMBER_FROM_BOARD = 'DELETE_MEMBER_FROM_BOARD'\r\nexport const GET_ALL_MEMBERS = 'GET_ALL_MEMBERS'\r\nexport const GET_ALL_LABELS = 'GET_ALL_LABELS'\r\n\r\nexport const ADD_LIST = 'ADD_LIST'\r\nexport const RENAME_LIST = 'RENAME_LIST'\r\nexport const REORDER_LIST = 'REORDER_LIST'\r\nexport const DELETE_LIST = 'DELETE_LIST'\r\n\r\nexport const ADD_CARD = 'ADD_CARD'\r\nexport const UPDATE_CARD = 'UPDATE_CARD'\r\nexport const REORDER_CARD = 'REORDER_CARD'\r\nexport const REORDER_CARD_LIST = 'REORDER_CARD_LIST'\r\nexport const MOVE_CARD = 'MOVE_CARD'\r\nexport const DELETE_CARD = 'DELETE_CARD'\r\n\r\n\r\n\r\n\r\n\r\nexport const UPDATE_LANDING_ACTIVE_TAB = 'UPDATE_LANDING_ACTIVE_TAB'\r\n\r\nexport const OPEN_POPUP = 'OPEN_POPUP'\r\nexport const CLOSE_POPUP = 'CLOSE_POPUP'\r\n\r\nexport const GET_TABLE_LISTING_PENDING = 'GET_TABLE_LISTING_PENDING'\r\nexport const GET_TABLE_LISTING_SUCCESS = 'GET_TABLE_LISTING_SUCCESS'\r\nexport const GET_TABLE_LISTING_FAILED = 'GET_TABLE_LISTING_FAILED'\r\n\r\nexport const GET_ITEM_DETAILS_PENDING = 'GET_ITEM_DETAILS_PENDING'\r\nexport const GET_ITEM_DETAILS_SUCCESS = 'GET_ITEM_DETAILS_SUCCESS'\r\nexport const GET_ITEM_DETAILS_FAILED = 'GET_ITEM_DETAILS_FAILED'\r\n\r\nexport const UPDATE_TABLE_LISTING = 'UPDATE_TABLE_LISTING'\r\n\r\nexport const UPDATE_ITEM_DETAILS = 'UPDATE_ITEM_DETAILS'\r\nexport const UPDATE_ITEM_DETAILS_SUCCESS = 'UPDATE_ITEM_DETAILS_SUCCESS'\r\n\r\nexport const IMPORT_ITEM_DETAILS_SUCCESS = 'IMPORT_ITEM_DETAILS_SUCCESS'","import * as Types from './ActionTypes';\r\n\r\nexport const openPopup = (\r\n open,\r\n message,\r\n title,\r\n action = null,\r\n detailsTitle,\r\n detailsId,\r\n statusCode = 200,\r\n redirect = null,\r\n customParam = null,\r\n) => (dispatch) => {\r\n dispatch({\r\n type: Types.OPEN_POPUP,\r\n payload: {\r\n open,\r\n message,\r\n title,\r\n action,\r\n detailsTitle,\r\n detailsId,\r\n statusCode,\r\n redirect,\r\n customParam,\r\n },\r\n })\r\n}\r\nexport const closePopup = () => (dispatch) => {\r\n dispatch({\r\n type: Types.CLOSE_POPUP,\r\n })\r\n}\r\n","import * as Types from '../actions/ActionTypes';\r\n\r\nconst initialState = {}\r\n\r\nconst ScrumBoardReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case Types.GET_ALL_MEMBERS: {\r\n return {\r\n ...state,\r\n memberList: [...action.payload],\r\n }\r\n }\r\n case Types.GET_ALL_LABELS: {\r\n return {\r\n ...state,\r\n labelList: [...action.payload],\r\n }\r\n }\r\n case Types.GET_ALL_BOARD: {\r\n return {\r\n ...state,\r\n boardList: [...action.payload],\r\n }\r\n }\r\n case Types.ADD_BOARD: {\r\n return {\r\n ...state,\r\n boardList: [...action.payload],\r\n }\r\n }\r\n case Types.GET_BOARD_BY_ID: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.ADD_MEMBER_IN_BOARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.DELETE_MEMBER_FROM_BOARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.ADD_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.RENAME_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.DELETE_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.REORDER_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.ADD_CARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.UPDATE_CARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.REORDER_CARD_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n case Types.MOVE_CARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload },\r\n }\r\n }\r\n default: {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default ScrumBoardReducer\r\n","import * as Types from '../actions/ActionTypes';\r\n\r\nconst initialState = []\r\n\r\nconst NotificationReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case Types.GET_NOTIFICATION: {\r\n return [...action.payload]\r\n }\r\n case Types.CREATE_NOTIFICATION: {\r\n return [...action.payload]\r\n }\r\n case Types.DELETE_NOTIFICATION: {\r\n return [...action.payload]\r\n }\r\n case Types.DELETE_ALL_NOTIFICATION: {\r\n return [...action.payload]\r\n }\r\n default: {\r\n return [...state]\r\n }\r\n }\r\n}\r\n\r\nexport default NotificationReducer\r\n","import * as Types from '../actions/ActionTypes';\r\n\r\nconst initialState = {\r\n productList: [],\r\n cartList: [],\r\n}\r\n\r\nconst EcommerceReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case Types.GET_PRODUCT_LIST: {\r\n return {\r\n ...state,\r\n productList: [...action.payload],\r\n }\r\n }\r\n case Types.GET_CATEGORY_LIST: {\r\n return {\r\n ...state,\r\n categoryList: [...action.payload],\r\n }\r\n }\r\n case Types.GET_RATING_LIST: {\r\n return {\r\n ...state,\r\n ratingList: [...action.payload],\r\n }\r\n }\r\n case Types.GET_BRAND_LIST: {\r\n return {\r\n ...state,\r\n brandList: [...action.payload],\r\n }\r\n }\r\n case Types.GET_CART_LIST: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload],\r\n }\r\n }\r\n case Types.ADD_PRODUCT_TO_CART: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload],\r\n }\r\n }\r\n case Types.DELETE_PRODUCT_FROM_CART: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload],\r\n }\r\n }\r\n case Types.UPDATE_CART_AMOUNT: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload],\r\n }\r\n }\r\n default: {\r\n return {\r\n ...state,\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default EcommerceReducer\r\n","import * as Types from '../actions/ActionTypes';\r\n\r\nconst initialState = {\r\n navigations: {\r\n isLoading: true,\r\n data: []\r\n },\r\n\r\n}\r\n\r\nconst NavigationReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case Types.GET_USER_NAVIGATION_PENDING: {\r\n return {\r\n ...state,\r\n navigations: {\r\n isLoading: true,\r\n data: [...initialState.navigations.data]\r\n },\r\n }\r\n }\r\n case Types.GET_USER_NAVIGATION_SUCCESS: {\r\n return {\r\n ...state,\r\n navigations: {\r\n isLoading: false,\r\n data: action.payload\r\n },\r\n }\r\n }\r\n case Types.GET_USER_NAVIGATION_FAILED: {\r\n return {\r\n ...state,\r\n navigations: {\r\n isLoading: false,\r\n data: [...initialState.navigations.data]\r\n },\r\n }\r\n }\r\n default: {\r\n return {\r\n ...state,\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default NavigationReducer\r\n","import * as Types from '../actions/ActionTypes';\r\n\r\nconst LandingPageReducer = function (state, action) {\r\n switch (action.type) {\r\n case Types.UPDATE_LANDING_ACTIVE_TAB: {\r\n return {\r\n ...state,\r\n landingActiveTab: action.payload,\r\n }\r\n }\r\n default: {\r\n return {\r\n ...state,\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default LandingPageReducer\r\n","import * as Types from '../actions/ActionTypes';\r\n\r\nconst initialState = {\r\n popupAlert: { open: false, message: null, title: 'error', action: null, statusCode: 200 }\r\n}\r\n\r\nconst PopupAlertReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case Types.OPEN_POPUP: {\r\n return {\r\n ...state,\r\n popupAlert: action.payload,\r\n }\r\n }\r\n case Types.CLOSE_POPUP: {\r\n return {\r\n ...state,\r\n popupAlert: initialState.popupAlert,\r\n }\r\n }\r\n default: {\r\n return {\r\n ...state,\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default PopupAlertReducer\r\n","import * as Types from '../actions/ActionTypes';\r\n\r\nconst itemDetails = {\r\n data: {},\r\n pageName: null,\r\n insertDisabled: false,\r\n updateDisabled: false,\r\n inputField: [],\r\n isLoading: true\r\n};\r\n\r\nconst initialState = {\r\n tableListing: {\r\n pageNotFound: false,\r\n title: null,\r\n total: 10,\r\n rowsPerPage: 10,\r\n filters: {},\r\n page: 0,\r\n pages: 1,\r\n sort: 'asc',\r\n field: 'id',\r\n column: [{ title: null, name: null, }],\r\n data: [],\r\n setting: {\r\n regions: []\r\n },\r\n pageName: null,\r\n insertDisabled: false,\r\n updateDisabled: false,\r\n deleteDisabled: false,\r\n resetEnabled: false,\r\n verifyEnabled: false,\r\n submitLeadEnabled: false,\r\n customItemDetailsPage: false,\r\n filterDateEnabled: false,\r\n filterGeneralSearchDisabled: false,\r\n filterRegionSearchEnabled: false,\r\n filterRegionSearchAllEnabled: false,\r\n importEnabled: false,\r\n itemDetails,\r\n isLoading: true\r\n }\r\n}\r\n\r\nconst TableListingReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case Types.GET_TABLE_LISTING_PENDING: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...initialState.tableListing,\r\n isLoading: true\r\n },\r\n }\r\n }\r\n case Types.GET_TABLE_LISTING_SUCCESS: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n itemDetails,\r\n ...action.payload,\r\n isLoading: false\r\n },\r\n }\r\n }\r\n\r\n case Types.GET_TABLE_LISTING_FAILED: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...initialState.tableListing,\r\n pageNotFound: true,\r\n isLoading: false\r\n },\r\n }\r\n }\r\n case Types.GET_ITEM_DETAILS_PENDING: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...initialState.tableListing,\r\n isLoading: true\r\n },\r\n }\r\n }\r\n case Types.GET_ITEM_DETAILS_SUCCESS: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...state.tableListing,\r\n itemDetails: action.payload,\r\n isLoading: false\r\n },\r\n }\r\n }\r\n case Types.GET_ITEM_DETAILS_FAILED: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...initialState.tableListing,\r\n isLoading: false\r\n },\r\n }\r\n }\r\n case Types.UPDATE_TABLE_LISTING: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...action.payload,\r\n isLoading: false\r\n },\r\n }\r\n }\r\n case Types.UPDATE_ITEM_DETAILS: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...initialState.tableListing,\r\n itemDetails: action.payload,\r\n isLoading: false\r\n },\r\n }\r\n }\r\n case Types.UPDATE_ITEM_DETAILS_SUCCESS: {\r\n return {\r\n ...state,\r\n tableListing: {\r\n ...state.tableListing,\r\n itemDetails: {\r\n ...state.tableListing.itemDetails,\r\n data: action.payload,\r\n },\r\n isLoading: false\r\n },\r\n }\r\n }\r\n case Types.IMPORT_ITEM_DETAILS_SUCCESS: {\r\n return {\r\n ...state,\r\n }\r\n }\r\n default: {\r\n return {\r\n ...state,\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default TableListingReducer\r\n","import { combineReducers } from 'redux'\r\nimport ScrumBoardReducer from './ScrumBoardReducer'\r\nimport NotificationReducer from './NotificationReducer'\r\nimport EcommerceReducer from './EcommerceReducer'\r\nimport NavigationReducer from './NavigationReducer'\r\nimport LandingPageReducer from './LandingPageReducer'\r\nimport PopupAlertReducer from './PopupAlertReducer'\r\nimport TableListingReducer from './TableListingReducer'\r\n\r\nconst RootReducer = combineReducers({\r\n notifications: NotificationReducer,\r\n navigations: NavigationReducer,\r\n scrumboard: ScrumBoardReducer,\r\n ecommerce: EcommerceReducer,\r\n landingActiveTab: LandingPageReducer,\r\n popupAlert: PopupAlertReducer,\r\n tableListing: TableListingReducer,\r\n})\r\n\r\nexport default RootReducer\r\n","import thunk from 'redux-thunk'\r\nimport { createStore, applyMiddleware, compose } from 'redux'\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.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 React from 'react'\r\nimport useAuth from 'app/hooks/useAuth'\r\nimport { Navigate } from 'react-router-dom'\r\n\r\nconst AuthGuard = ({ children }) => {\r\n const { isAuthenticated } = useAuth()\r\n\r\n return <>{isAuthenticated ? children : }\r\n}\r\n\r\nexport default AuthGuard\r\n","import React, { Suspense } from 'react';\r\nimport Loading from '../MatxLoading/MatxLoading'\r\n\r\nconst Loadable = (Component) => (props) => (\r\n }>\r\n \r\n \r\n);\r\n\r\nexport default Loadable;","import React, { lazy } from 'react'\r\nimport Loadable from 'app/components/Loadable/Loadable';\r\n\r\nconst Analytics = Loadable(lazy(() => import(\"./Analytics\")));\r\n\r\nconst dashboardRoutes = [\r\n {\r\n path: '/dashboard/default',\r\n element: ,\r\n },\r\n]\r\n\r\nexport default dashboardRoutes\r\n","import React, { lazy } from 'react'\r\nimport Loadable from 'app/components/Loadable/Loadable';\r\n\r\nconst NotFound = Loadable(lazy(() => import(\"../404/NotFound\")));\r\nconst LandingPage = Loadable(lazy(() => import(\"./LandingPage\")));\r\n\r\nconst accountRoutes = [\r\n {\r\n path: '/account/signin',\r\n element: ,\r\n },\r\n {\r\n path: '/404',\r\n element: ,\r\n },\r\n]\r\n\r\nexport default accountRoutes\r\n","import React, { lazy } from 'react'\r\nimport Loadable from 'app/components/Loadable/Loadable';\r\n\r\nconst TableListing = Loadable(lazy(() => import(\"../../components/TableListing/TableListing\")));\r\nconst ItemDetails = Loadable(lazy(() => import(\"../../components/TableListing/ItemDetails\")));\r\n// const SBP = Loadable(lazy(() => import(\"../incentive/SBP\")));\r\nconst ApplicationListing = Loadable(lazy(() => import(\"../../views/table-listing/ApplicationListing\")));\r\nconst ImportSalesPerformances = Loadable(lazy(() => import(\"../../views/table-listing/ImportSalesPerformances\")));\r\nconst SalesLeaderboard = Loadable(lazy(() => import(\"../../views/table-listing/SalesLeaderboard\")));\r\nconst ImportTakafulIncentives = Loadable(lazy(() => import(\"../../views/table-listing/ImportTakafulIncentives\")));\r\nconst TakafulLeaderboard = Loadable(lazy(() => import(\"../../views/table-listing/TakafulLeaderboard\")));\r\nconst TakafulEsubmission = Loadable(lazy(() => import(\"../../views/table-listing/TakafulEsubmission\")));\r\nconst TakafulNoSubmission = Loadable(lazy(() => import(\"../../views/table-listing/TakafulNoSubmission\")));\r\n\r\nconst TableListingRoutes = [\r\n {\r\n path: '/listing/:detailsTitle',\r\n element: ,\r\n },\r\n // {\r\n // path: '/details/salary_base_points/:id',\r\n // element: ,\r\n // },\r\n {\r\n path: '/details/:detailsTitle/:id',\r\n element: ,\r\n },\r\n {\r\n path: '/customer/applications/:id',\r\n element: ,\r\n },\r\n {\r\n path: '/import/sales_performances',\r\n element: ,\r\n },\r\n {\r\n path: '/sales/performance/leaderboard',\r\n element: ,\r\n },\r\n {\r\n path: '/import/takaful_incentives',\r\n element: ,\r\n },\r\n {\r\n path: '/takaful/leaderboard/:type',\r\n element: ,\r\n },\r\n {\r\n path: '/takaful/esubmission',\r\n element: ,\r\n },\r\n {\r\n path: '/takaful/no_submission',\r\n element: ,\r\n },\r\n]\r\n\r\nexport default TableListingRoutes\r\n","import React, { lazy } from 'react'\r\nimport Loadable from 'app/components/Loadable/Loadable';\r\n\r\nconst UpdateProfile = Loadable(lazy(() => import(\"./UpdateProfile\")));\r\nconst UpdatePassword = Loadable(lazy(() => import(\"./UpdatePassword\")));\r\n\r\nconst accountRoutes = [\r\n {\r\n path: '/profile/edit/',\r\n element: ,\r\n },\r\n {\r\n path: '/password/edit/',\r\n element: ,\r\n },\r\n]\r\n\r\nexport default accountRoutes\r\n","import React from 'react';\r\nimport { Button, Dialog, DialogTitle, DialogActions, DialogContent, DialogContentText } from '@mui/material'\r\nimport { useNavigate } from 'react-router-dom'\r\nimport { closePopup } from 'app/redux/actions/PopupAlertActions'\r\nimport { useDispatch } from 'react-redux'\r\nimport useAuth from 'app/hooks/useAuth'\r\n\r\nconst customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n maxWidth:\"500px\",\r\n width: \"100%\",\r\n padding: \"50px\",\r\n fontSize: \"20px\"\r\n }, \r\n};\r\n\r\n// Make sure to bind modal to your appElement (https://reactcommunity.org/react-modal/accessibility/)\r\n\r\nexport const TimeoutWarningModal = ({isOpen, countdown, onRequestClose}) => { \r\n\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n const { logout, user } = useAuth()\r\n\r\n const onLogOffCall = () => {\r\n // Implement your logout functionality here, e.g. clear the users login cache or hit your signout server\r\n // window.location.href = \"https://www.google.com.my\"\r\n // navigate('/account/signin')\r\n logout()\r\n }\r\n\r\n function handleClose() {\r\n dispatch(closePopup())\r\n }\r\n\r\n return (\r\n
\r\n\r\n \r\n \r\n Session Timeout\r\n \r\n \r\n \r\n You're being timed out due to inactivity. Please choose to stay signed in or to logoff. Otherwise, you will be logged off automatically in {countdown} second.\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n","const eventTypes = [\r\n 'keypress',\r\n 'mousemove',\r\n 'mousedown',\r\n 'scroll',\r\n 'touchmove',\r\n 'pointermove'\r\n]\r\nexport const addEventListeners = (listener) => {\r\n eventTypes.forEach((type) => {\r\n window.addEventListener(type, listener, false)\r\n })\r\n}\r\nexport const removeEventListeners = (listener) => {\r\n if (listener) {\r\n eventTypes.forEach((type) => {\r\n window.removeEventListener(type, listener, false)\r\n })\r\n }\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {TimeoutWarningModal} from \"./TimeoutWarningModal\"\r\nimport { addEventListeners, removeEventListeners } from './util/eventListenerUtil'\r\nimport { useNavigate } from 'react-router-dom'\r\nimport useAuth from 'app/hooks/useAuth'\r\n \r\nexport const TimeoutLogic = () => { \r\n const [isWarningModalOpen, setWarningModalOpen] = useState(false);\r\n\r\n const navigate = useNavigate();\r\n const { logout, user } = useAuth()\r\n const [counter, setCounter] = useState(0);\r\n const timeout1period = 20 * 60 * 1000;\r\n const timeout2period = 2 * 1000;\r\n\r\n useEffect(() => {\r\n const createTimeout1 = () => setTimeout(()=>{ \r\n setWarningModalOpen(true);\r\n setCounter(10);\r\n },timeout1period)\r\n\r\n const createTimeout2 = () => setTimeout(() => {\r\n // Implement a sign out function here\r\n // window.location.href = 'https://www.google.com.my/imghp?hl=en&authuser=0&ogbl'\r\n // navigate('/account/signin');\r\n logout()\r\n },timeout2period)\r\n\r\n const listener = () => {\r\n if(!isWarningModalOpen){\r\n clearTimeout(timeout)\r\n timeout = createTimeout1();\r\n }\r\n } \r\n\r\n // Initialization\r\n let timeout = isWarningModalOpen ? createTimeout2() : createTimeout1()\r\n addEventListeners(listener);\r\n\r\n const timer = counter > 0 && setInterval(() => setCounter(counter - 1), 1000);\r\n\r\n // Cleanup\r\n return () => {\r\n removeEventListeners(listener);\r\n clearTimeout(timeout);\r\n clearInterval(timer);\r\n }\r\n },[isWarningModalOpen,counter])\r\n return (\r\n
\r\n {isWarningModalOpen && (\r\n setWarningModalOpen(false)}\r\n countdown={counter}\r\n />\r\n )\r\n }\r\n
\r\n ) \r\n}","import React from 'react'\r\nimport { TextField, Button, Dialog, DialogTitle, DialogActions, DialogContent, DialogContentText } from '@mui/material'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { closePopup } from 'app/redux/actions/PopupAlertActions'\r\nimport { useLocation, useNavigate } from 'react-router-dom'\r\nimport { deleteItemDetails, getItemDetails, upsertItemDetails } from 'app/redux/actions/TableListingActions'\r\n\r\nexport default function PopupAlert() {\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const { popupAlert } = useSelector((state) => state.popupAlert)\r\n let { title, detailsTitle, detailsId, open, message, action, statusCode, redirect, customParam } = popupAlert;\r\n\r\n function handleClose() {\r\n dispatch(closePopup())\r\n switch (true) {\r\n case statusCode === 401:\r\n navigate('/account/signin');\r\n break;\r\n case title === 'success' && location.pathname === `/customer/applications/${detailsId}`:\r\n dispatch(getItemDetails('customer_applications', detailsId));\r\n break;\r\n case title === 'success':\r\n navigate(redirect ? redirect : (detailsTitle ? `/listing/${detailsTitle}` : -1))\r\n break;\r\n }\r\n if (popupAlert.message == 'Product Percentage deleted') {\r\n navigate(0);\r\n }\r\n }\r\n\r\n function handleDelete() {\r\n dispatch(deleteItemDetails(detailsTitle, detailsId))\r\n }\r\n\r\n function handleUpsert() {\r\n dispatch(upsertItemDetails(detailsTitle, detailsId, customParam))\r\n }\r\n\r\n const handleChange = (event) => {\r\n customParam = {\r\n ...customParam,\r\n [event.target.name]: event.target.value\r\n }\r\n console.log('customParam', customParam)\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {message}\r\n \r\n {action === 'upsert' ?\r\n : null}\r\n \r\n \r\n {action === 'upsert' ?\r\n \r\n : action === 'delete' ?\r\n \r\n : null}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import './App.css';\r\nimport React from 'react'\r\nimport { Store } from './redux/Store'\r\nimport { Provider } from 'react-redux'\r\nimport { AllPages } from './routes/routes'\r\nimport { MatxTheme } from 'app/components'\r\nimport { useRoutes } from 'react-router-dom'\r\nimport { AuthProvider } from 'app/contexts/JWTAuthContext'\r\nimport { SettingsProvider } from 'app/contexts/SettingsContext'\r\nimport PopupAlert from './components/PopupAlert/PopupAlert'\r\n\r\nconst App = () => {\r\n const all_pages = useRoutes(AllPages())\r\n\r\n return (\r\n \r\n \r\n \r\n {all_pages}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default App\r\n","import AuthGuard from 'app/auth/AuthGuard'\r\nimport NotFound from 'app/views/404/NotFound'\r\nimport dashboardRoutes from 'app/views/dashboard/DashboardRoutes'\r\nimport accountRoutes from 'app/views/account/AccountRoutes'\r\nimport TableListingRoutes from 'app/views/table-listing/TableListingRoutes'\r\nimport ProfileRoutes from 'app/views/profile/ProfileRoutes'\r\nimport MatxLayout from '../components/MatxLayout/MatxLayout'\r\nimport { Navigate } from 'react-router-dom'\r\nimport {TimeoutLogic} from \"app/components/TimeoutLogic\";\r\n\r\nexport const AllPages = () => {\r\n const all_routes = [\r\n {\r\n element: (\r\n \r\n \r\n \r\n \r\n ),\r\n children: [...dashboardRoutes, ...TableListingRoutes, ...ProfileRoutes],\r\n },\r\n ...accountRoutes,\r\n {\r\n path: '/',\r\n element: ,\r\n },\r\n {\r\n path: '*',\r\n element: ,\r\n },\r\n ]\r\n\r\n return all_routes\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n)\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config)\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n )\r\n })\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing\r\n if (installingWorker == null) {\r\n return\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n )\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration)\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.')\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error)\r\n })\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type')\r\n if (\r\n response.status === 404 ||\r\n (contentType != null &&\r\n contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload()\r\n })\r\n })\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n )\r\n })\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister()\r\n })\r\n }\r\n}\r\n","import React from 'react'\r\nimport App from './app/App'\r\nimport ReactDOM from 'react-dom'\r\nimport { BrowserRouter } from 'react-router-dom'\r\nimport 'perfect-scrollbar/css/perfect-scrollbar.css'\r\nimport * as serviceWorker from './serviceWorker'\r\nimport { StyledEngineProvider } from '@mui/styled-engine'\r\nimport { CssBaseline } from '@mui/material'\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n)\r\n\r\n// for IE-11 support un-comment cssVars() and it's import in this file\r\n// and in MatxTheme file\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister()\r\n","import axios from 'axios'\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_URL\r\nconst axiosInstance = axios.create()\r\n\r\naxiosInstance.interceptors.response.use(\r\n (response) => response,\r\n (error) =>\r\n Promise.reject(\r\n (error.response && error.response.data) || 'Something went wrong!'\r\n )\r\n)\r\n\r\nexport default axiosInstance\r\n","import clsx from 'clsx'\r\nimport React from 'react'\r\nimport { Box, styled } from '@mui/material'\r\n\r\nconst StyledBox = styled(Box)(({ theme, textTransformStyle, ellipsis }) => ({\r\n textTransform: textTransformStyle || 'none',\r\n whiteSpace: ellipsis ? 'nowrap' : 'normal',\r\n overflow: ellipsis ? 'hidden' : '',\r\n textOverflow: ellipsis ? 'ellipsis' : '',\r\n // color: theme.palette.primary.contrastText,\r\n}))\r\n\r\nexport const H1 = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const H2 = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const H3 = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const H4 = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const H5 = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const H6 = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const Paragraph = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const Small = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const Span = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const Tiny = ({\r\n children,\r\n className,\r\n ellipsis,\r\n textTransform,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { useContext } from 'react'\r\nimport SettingsContext from 'app/contexts/SettingsContext'\r\n\r\nconst useSettings = () => useContext(SettingsContext)\r\n\r\nexport default useSettings\r\n","import React from 'react'\r\nimport { styled, useTheme } from '@mui/system'\r\nimport { Icon, Breadcrumbs, Hidden } from '@mui/material'\r\nimport { NavLink } from 'react-router-dom'\r\n\r\nconst BreadcrumbRoot = styled('div')(() => ({\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n}))\r\n\r\nconst BreadcrumbName = styled('h4')(() => ({\r\n margin: 0,\r\n fontSize: '16px',\r\n paddingBottom: '1px',\r\n verticalAlign: 'middle',\r\n textTransform: 'capitalize',\r\n}))\r\n\r\nconst SubName = styled('span')(({ theme }) => ({\r\n textTransform: 'capitalize',\r\n color: theme.palette.text.secondary,\r\n}))\r\n\r\nconst Separator = styled('h4')(({ theme }) => ({\r\n margin: 0,\r\n marginLeft: 8,\r\n paddingBottom: '3px',\r\n color: theme.palette.text.hint\r\n}))\r\n\r\nconst StyledIcon = styled(Icon)(() => ({\r\n marginLeft: 8,\r\n marginBottom: '4px',\r\n verticalAlign: 'middle',\r\n}))\r\n\r\nconst Breadcrumb = ({ routeSegments }) => {\r\n const theme = useTheme()\r\n const hint = theme.palette.text.hint\r\n\r\n return (\r\n \r\n {routeSegments ? (\r\n \r\n \r\n {routeSegments[routeSegments.length - 1]['name']}\r\n \r\n |\r\n \r\n ) : null}\r\n navigate_next}\r\n sx={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n position: 'relative'\r\n }}\r\n >\r\n \r\n \r\n home\r\n \r\n \r\n {routeSegments\r\n ? routeSegments.map((route, index) => {\r\n return index !== routeSegments.length - 1 ? (\r\n \r\n \r\n {route.name}\r\n \r\n \r\n ) : (\r\n \r\n {route.name}\r\n \r\n )\r\n })\r\n : null}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Breadcrumb\r\n","import React from 'react'\r\nimport { Box, styled } from '@mui/system'\r\n\r\nconst DividerRoot = styled(Box)(({ theme }) => ({\r\n // borderBottom: `1px solid ${palette.divider}`,\r\n textAlign: 'center',\r\n position: 'relative',\r\n height: 16,\r\n '&::after': {\r\n position: 'absolute',\r\n content: '\"\"',\r\n top: '10px',\r\n left: 0,\r\n width: '100%',\r\n height: '1px',\r\n backgroundColor: theme.palette.divider,\r\n zIndex: 1,\r\n },\r\n '& span': {\r\n position: 'relative',\r\n background: '#fff',\r\n padding: '4px 6px',\r\n color: theme.palette.text.secondary,\r\n zIndex: 5,\r\n },\r\n}))\r\n\r\nconst MatxDivider = ({ text, sx }) => {\r\n return (\r\n
\r\n {text && {text}}\r\n
\r\n )\r\n}\r\n\r\nexport default MatxDivider\r\n","import React, { Fragment } from 'react'\r\nimport useSettings from 'app/hooks/useSettings'\r\nimport { styled, Box } from '@mui/system'\r\nimport { Menu, ThemeProvider } from '@mui/material'\r\n\r\nconst MenuButton = styled(Box)(({ theme }) => ({\r\n display: 'inline-block',\r\n color: theme.palette.text.primary,\r\n '& div:hover': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n}))\r\n\r\nconst MatxMenu = (props) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n const children = React.Children.toArray(props.children)\r\n let { shouldCloseOnItemClick = true, horizontalPosition = 'left' } = props\r\n const { settings } = useSettings()\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n \r\n \r\n {props.menuButton}\r\n \r\n \r\n \r\n {children.map((child, index) => (\r\n { }\r\n }\r\n key={index}\r\n >\r\n {child}\r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MatxMenu\r\n","import { styled } from '@mui/system'\r\nimport React, { useState } from 'react'\r\nimport { Icon, IconButton, Hidden } from '@mui/material'\r\n\r\nconst ToolbarMenu = styled('div')(({ theme }) => ({\r\n '&.open $menuContainer': {\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'flex',\r\n },\r\n },\r\n}))\r\n\r\nconst MenuContainer = styled('div')(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n [theme.breakpoints.down('sm')]: {\r\n position: 'absolute',\r\n backgroundColor: theme.palette.primary.dark,\r\n width: '100%',\r\n padding: '4px 8px',\r\n display: 'none',\r\n }\r\n}))\r\n\r\nconst MatxToolbarMenu = ({ offsetTop, children }) => {\r\n const [open, setOpen] = useState(false)\r\n const handleToggle = () => {\r\n setOpen(!open)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {open ? 'close' : 'more_vert'}\r\n \r\n \r\n\r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MatxToolbarMenu\r\n","import React, { Suspense } from 'react'\r\nimport { MatxLoading } from 'app/components'\r\n\r\nconst MatxSuspense = ({ children }) => {\r\n return }>{children}\r\n}\r\n\r\nexport default MatxSuspense\r\n","import React, { useState } from 'react'\r\nimport { styled, useTheme } from '@mui/system'\r\nimport { Icon, IconButton } from '@mui/material'\r\nimport { topBarHeight } from 'app/utils/constant'\r\n\r\nconst SearchContainer = styled('div')(({ theme }) => ({\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n zIndex: 9,\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: topBarHeight,\r\n background: theme.palette.primary.main,\r\n color: theme.palette.text.primary,\r\n '&::placeholder': {\r\n color: theme.palette.text.primary,\r\n },\r\n}))\r\n\r\nconst SearchInput = styled('input')(({ theme }) => ({\r\n width: '100%',\r\n border: 'none',\r\n outline: 'none',\r\n fontSize: '1rem',\r\n paddingLeft: '20px',\r\n height: 'calc(100% - 5px)',\r\n background: theme.palette.primary.main,\r\n color: theme.palette.text.primary,\r\n '&::placeholder': {\r\n color: theme.palette.text.primary,\r\n },\r\n}))\r\n\r\nconst MatxSearchBox = () => {\r\n const [open, setOpen] = useState(false)\r\n const toggle = () => {\r\n setOpen(!open)\r\n }\r\n\r\n const { palette } = useTheme()\r\n const textColor = palette.text.primary\r\n\r\n return (\r\n \r\n {!open && (\r\n \r\n search\r\n \r\n )}\r\n\r\n {open && (\r\n \r\n \r\n \r\n close\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MatxSearchBox\r\n","import clsx from 'clsx'\r\nimport { useEffect } from 'react'\r\nimport { styled, Box } from '@mui/system'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { Icon, ButtonBase } from '@mui/material'\r\nimport React, { useState, useRef, useCallback } from 'react'\r\n\r\nconst NavExpandRoot = styled('div')(({ theme }) => ({\r\n '& .expandIcon': {\r\n transition: 'transform 0.3s cubic-bezier(0, 0, 0.2, 1) 0ms',\r\n transform: 'rotate(90deg)',\r\n },\r\n '& .collapseIcon': {\r\n transition: 'transform 0.3s cubic-bezier(0, 0, 0.2, 1) 0ms',\r\n transform: 'rotate(0deg)',\r\n },\r\n '& .expansion-panel': {\r\n overflow: 'hidden',\r\n transition: 'max-height 0.3s cubic-bezier(0, 0, 0.2, 1)',\r\n },\r\n '& .highlight': {\r\n background: theme.palette.primary.main,\r\n },\r\n '&.compactNavItem': {\r\n width: 44,\r\n overflow: 'hidden',\r\n justifyContent: 'center !important',\r\n '& .itemText': {\r\n display: 'none',\r\n },\r\n '& .itemIcon': {\r\n display: 'none',\r\n },\r\n },\r\n}))\r\n\r\nconst BaseButton = styled(ButtonBase)(({ theme }) => ({\r\n height: 44,\r\n width: '100%',\r\n whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n paddingRight: '16px',\r\n borderRadius: '4px',\r\n marginBottom: '8px',\r\n display: 'flex',\r\n justifyContent: 'space-between !important',\r\n color: theme.palette.text.primary,\r\n '&:hover': {\r\n background: 'rgba(255, 255, 255, 0.08)',\r\n },\r\n '& .icon': {\r\n width: 36,\r\n fontSize: '18px',\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n verticalAlign: 'middle',\r\n },\r\n}))\r\n\r\nconst BulletIcon = styled('div')(({ theme }) => ({\r\n width: 4,\r\n height: 4,\r\n color: 'inherit',\r\n overflow: 'hidden',\r\n marginLeft: '20px',\r\n marginRight: '8px',\r\n borderRadius: '300px !important',\r\n // background: theme.palette.primary.contrastText,\r\n background: theme.palette.text.primary,\r\n}))\r\n\r\nconst ItemText = styled('span')(() => ({\r\n fontSize: '0.875rem',\r\n paddingLeft: '0.8rem',\r\n verticalAlign: 'middle',\r\n}))\r\n\r\nconst BadgeValue = styled('div')(() => ({\r\n padding: '1px 4px',\r\n overflow: 'hidden',\r\n borderRadius: '300px',\r\n}))\r\n\r\nconst MatxVerticalNavExpansionPanel = ({ item, children, mode }) => {\r\n const [collapsed, setCollapsed] = useState(true)\r\n const elementRef = useRef(null)\r\n const componentHeight = useRef(0)\r\n const { pathname } = useLocation()\r\n const { name, icon, iconText, badge } = item\r\n\r\n const handleClick = () => {\r\n componentHeight.current = 0\r\n calcaulateHeight(elementRef.current)\r\n setCollapsed(!collapsed)\r\n }\r\n\r\n const calcaulateHeight = useCallback((node) => {\r\n if (node.name !== 'child') {\r\n for (let child of node.children) {\r\n calcaulateHeight(child)\r\n }\r\n }\r\n\r\n if (node.name === 'child') componentHeight.current += node.scrollHeight\r\n else componentHeight.current += 44 //here 44 is node height\r\n return\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!elementRef) return\r\n\r\n calcaulateHeight(elementRef.current)\r\n\r\n // OPEN DROPDOWN IF CHILD IS ACTIVE\r\n for (let child of elementRef.current.children) {\r\n if (child.getAttribute('href') === pathname) {\r\n setCollapsed(false)\r\n }\r\n }\r\n }, [pathname, calcaulateHeight])\r\n\r\n return (\r\n \r\n \r\n \r\n {icon && {icon}}\r\n {iconText && }\r\n {name}\r\n \r\n {badge && (\r\n \r\n {badge.value}\r\n \r\n )}\r\n \r\n \r\n chevron_right\r\n \r\n \r\n \r\n\r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MatxVerticalNavExpansionPanel\r\n","import { styled, Box } from '@mui/system'\r\nimport React, { Fragment } from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport useSettings from 'app/hooks/useSettings'\r\nimport { Paragraph, Span } from '../Typography'\r\nimport { Icon, ButtonBase } from '@mui/material'\r\nimport MatxVerticalNavExpansionPanel from './MatxVerticalNavExpansionPanel'\r\n\r\nconst ListLabel = styled(Paragraph)(({ theme, mode }) => ({\r\n fontSize: '12px',\r\n marginTop: '20px',\r\n marginLeft: '15px',\r\n marginBottom: '10px',\r\n textTransform: 'uppercase',\r\n display: mode === 'compact' && 'none',\r\n color: theme.palette.text.secondary,\r\n}))\r\n\r\nconst ExtAndIntCommon = {\r\n display: 'flex',\r\n overflow: 'hidden',\r\n borderRadius: '4px',\r\n height: 44,\r\n whiteSpace: 'pre',\r\n marginBottom: '8px',\r\n textDecoration: 'none',\r\n justifyContent: 'space-between',\r\n transition: 'all 150ms ease-in',\r\n '&:hover': {\r\n background: 'rgba(255, 255, 255, 0.08)',\r\n },\r\n '&.compactNavItem': {\r\n overflow: 'hidden',\r\n justifyContent: 'center !important',\r\n },\r\n '& .icon': {\r\n fontSize: '18px',\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n verticalAlign: 'middle',\r\n },\r\n}\r\nconst ExternalLink = styled('a')(({ theme }) => ({\r\n ...ExtAndIntCommon,\r\n color: theme.palette.text.primary,\r\n}))\r\n\r\nconst InternalLink = styled(Box)(({ theme }) => ({\r\n '& a': {\r\n ...ExtAndIntCommon,\r\n color: theme.palette.text.primary,\r\n },\r\n '& .navItemActive': {\r\n backgroundColor: 'rgb(204 204 204 / 21%)',\r\n },\r\n}))\r\n\r\nconst StyledText = styled(Span)(({ mode }) => ({\r\n fontSize: '0.875rem',\r\n paddingLeft: '0.8rem',\r\n display: mode === 'compact' && 'none',\r\n}))\r\n\r\nconst BulletIcon = styled('div')(({ theme }) => ({\r\n padding: '2px',\r\n marginLeft: '24px',\r\n marginRight: '8px',\r\n overflow: 'hidden',\r\n borderRadius: '300px',\r\n background: theme.palette.text.primary,\r\n}))\r\n\r\nconst BadgeValue = styled('div')(() => ({\r\n padding: '1px 8px',\r\n overflow: 'hidden',\r\n borderRadius: '300px',\r\n}))\r\n\r\nconst MatxVerticalNav = ({ items }) => {\r\n const { settings } = useSettings()\r\n const { mode } = settings.layout1Settings.leftSidebar\r\n\r\n const renderLevels = (data) => {\r\n return data.map((item, index) => {\r\n if (item.type === 'label')\r\n return (\r\n \r\n {item.label}\r\n \r\n )\r\n if (item.children) {\r\n return (\r\n \r\n {renderLevels(item.children)}\r\n \r\n )\r\n } else if (item.type === 'extLink') {\r\n return (\r\n \r\n \r\n {(() => {\r\n if (item.icon) {\r\n return (\r\n \r\n {item.icon}\r\n \r\n )\r\n } else {\r\n return (\r\n \r\n {item.iconText}\r\n \r\n )\r\n }\r\n })()}\r\n \r\n {item.name}\r\n \r\n \r\n {item.badge && (\r\n {item.badge.value}\r\n )}\r\n \r\n \r\n )\r\n } else {\r\n return (\r\n \r\n \r\n isActive ? `navItemActive ${mode === 'compact' && 'compactNavItem'}` : `${mode === 'compact' && 'compactNavItem'}`\r\n }\r\n >\r\n \r\n {item?.icon ? (\r\n \r\n {item.icon}\r\n \r\n ) : (\r\n \r\n \r\n \r\n {item.iconText}\r\n \r\n \r\n )}\r\n \r\n {item.name}\r\n \r\n \r\n {item.badge && (\r\n \r\n {item.badge.value}\r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n }\r\n })\r\n }\r\n\r\n return
{renderLevels(items)}
\r\n}\r\n\r\nexport default React.memo(MatxVerticalNav)\r\n","import React from 'react'\r\nimport { styled } from '@mui/system'\r\n\r\nconst Container = styled('div')(() => ({\r\n height: '100%',\r\n display: 'flex',\r\n position: 'relative',\r\n}))\r\n\r\nconst MatxSidenavContainer = ({ children }) => {\r\n return {children}\r\n}\r\n\r\nexport default MatxSidenavContainer\r\n","import React from 'react'\r\nimport { useMediaQuery } from '@mui/material'\r\nimport { Box, styled, useTheme } from '@mui/system'\r\n\r\nconst SideNav = styled('div')(({ theme, width }) => ({\r\n position: 'relative',\r\n width: width,\r\n transition: 'width 250ms ease',\r\n overflow: 'hidden',\r\n zIndex: 91,\r\n background: theme.palette.background.default,\r\n [theme.breakpoints.down('sm')]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n },\r\n}))\r\n\r\nconst SideNavOverlay = styled('div')(() => ({\r\n position: 'absolute',\r\n zIndex: 90,\r\n width: '100%',\r\n height: '100%',\r\n background: 'rgba(0, 0, 0, 0.74)',\r\n}))\r\n\r\nconst MatxSidenav = ({\r\n sx,\r\n open,\r\n children,\r\n toggleSidenav,\r\n width = '220px',\r\n}) => {\r\n const theme = useTheme()\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n {open && isMobile && }\r\n \r\n )\r\n}\r\n\r\nexport default MatxSidenav\r\n","import React from 'react'\r\nimport { styled } from '@mui/system'\r\n\r\nconst Content = styled('div')(() => ({\r\n flexGrow: 1,\r\n height: '100%',\r\n position: 'relative',\r\n}))\r\n\r\nconst MatxSidenavContent = ({ children }) => {\r\n return {children}\r\n}\r\n\r\nexport default MatxSidenavContent\r\n","import { H5, H6, Span } from '../Typography'\r\nimport { ChatAvatar } from 'app/components'\r\nimport ScrollBar from 'react-perfect-scrollbar'\r\nimport { Box, styled, useTheme } from '@mui/system'\r\nimport React, { useState, useEffect, useCallback } from 'react'\r\nimport { IconButton, Icon, Divider, TextField, Avatar } from '@mui/material'\r\nimport { convertHexToRGB } from 'utils'\r\n\r\nconst ChatContainer = styled('div')(() => ({\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n background: '#fff',\r\n}))\r\n\r\nconst StyledScrollBar = styled(ScrollBar)(() => ({\r\n flexGrow: 1,\r\n}))\r\n\r\nconst ProfileBox = styled('div')(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n padding: '12px 12px 12px 20px',\r\n color: theme.palette.primary.main,\r\n background: '#fafafa',\r\n}))\r\n\r\nconst ChatStatus = styled('div')(({ theme }) => ({\r\n marginLeft: '12px',\r\n color: theme.palette.primary.main,\r\n '& h5': {\r\n marginTop: 0,\r\n fontSize: '14px',\r\n marginBottom: '3px',\r\n },\r\n '& span': {\r\n fontWeight: '500',\r\n },\r\n}))\r\n\r\nconst ChatMessage = styled('div')(({ theme }) => ({\r\n padding: '8px',\r\n maxWidth: 240,\r\n fontSize: '14px',\r\n borderRadius: '4px',\r\n marginBottom: '8px',\r\n whiteSpace: 'pre-wrap',\r\n wordBreak: 'break-word',\r\n color: theme.palette.primary.main,\r\n background: '#fafafa',\r\n}))\r\n\r\nconst MessageTime = styled('span')(({ theme }) => ({\r\n fontSize: '13px',\r\n fontWeight: '500',\r\n color: theme.palette.primary.main,\r\n}))\r\n\r\nconst ChatImgContainer = styled('div')(({ theme }) => ({\r\n padding: '20px',\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n}))\r\n\r\nconst ChatImgBox = styled('div')(({ theme }) => ({\r\n padding: '8px',\r\n fontSize: '14px',\r\n maxWidth: 240,\r\n borderRadius: '4px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n color: theme.palette.primary.main,\r\n background: '#fafafa',\r\n}))\r\n\r\nconst ChatImg = styled('img')(() => ({ width: '40px' }))\r\nconst ChatImgSize = styled(MessageTime)(() => ({}))\r\n\r\n// for previewing bot message\r\nconst globalMessageList = []\r\n\r\nconst Chatbox = ({ togglePopup }) => {\r\n const [isAlive, setIsAlive] = useState(true)\r\n const [message, setMessage] = useState('')\r\n const [messageList, setMessageList] = useState([])\r\n const currentUserId = '7863a6802ez0e277a0f98534'\r\n const chatBottomRef = document.querySelector('#chat-scroll')\r\n\r\n const sendMessageOnEnter = (event) => {\r\n if (event.key === 'Enter' && !event.shiftKey) {\r\n let tempMessage = message.trim()\r\n if (tempMessage !== '') {\r\n let tempList = [...messageList]\r\n let messageObject = {\r\n text: tempMessage,\r\n contactId: currentUserId,\r\n }\r\n tempList.push(messageObject)\r\n globalMessageList.push(messageObject)\r\n if (isAlive) setMessageList(tempList)\r\n dummyReply()\r\n }\r\n setMessage('')\r\n }\r\n }\r\n\r\n const dummyReply = async () => {\r\n setTimeout(() => {\r\n let tempList = [...messageList]\r\n let messageObject = {\r\n text: 'Good to hear from you. enjoy!!!',\r\n contactId: 'opponents contact id',\r\n avatar: '/assets/images/faces/13.jpg',\r\n name: 'Frank Powell',\r\n }\r\n\r\n tempList.push(messageObject)\r\n globalMessageList.push(messageObject)\r\n if (isAlive) setMessageList(globalMessageList)\r\n }, 2000)\r\n }\r\n\r\n const scrollToBottom = useCallback(() => {\r\n if (chatBottomRef) {\r\n chatBottomRef.scrollTo({\r\n top: chatBottomRef.scrollHeight,\r\n behavior: 'smooth',\r\n })\r\n }\r\n }, [chatBottomRef])\r\n\r\n useEffect(() => {\r\n if (isAlive) {\r\n setMessageList([\r\n {\r\n contactId: '323sa680b3249760ea21rt47',\r\n text: 'Do you ever find yourself falling into the “discount trap?”',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '323sa680b3249760ea21rt47',\r\n name: 'Frank Powell',\r\n avatar: '/assets/images/faces/13.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n {\r\n contactId: '7863a6802ez0e277a0f98534',\r\n text: 'Giving away your knowledge or product just to gain clients?',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '7863a6802ez0e277a0f98534',\r\n name: 'John Doe',\r\n avatar: '/assets/images/face-1.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n {\r\n contactId: '323sa680b3249760ea21rt47',\r\n text: 'Yes',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '323sa680b3249760ea21rt47',\r\n name: 'Frank Powell',\r\n avatar: '/assets/images/faces/13.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n {\r\n contactId: '7863a6802ez0e277a0f98534',\r\n text: 'Don’t feel bad. It happens to a lot of us',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '7863a6802ez0e277a0f98534',\r\n name: 'John Doe',\r\n avatar: '/assets/images/face-1.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n {\r\n contactId: '323sa680b3249760ea21rt47',\r\n text: 'Do you ever find yourself falling into the “discount trap?”',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '323sa680b3249760ea21rt47',\r\n name: 'Frank Powell',\r\n avatar: '/assets/images/faces/13.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n {\r\n contactId: '7863a6802ez0e277a0f98534',\r\n text: 'Giving away your knowledge or product just to gain clients?',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '7863a6802ez0e277a0f98534',\r\n name: 'John Doe',\r\n avatar: '/assets/images/face-1.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n {\r\n contactId: '323sa680b3249760ea21rt47',\r\n text: 'Yes',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '323sa680b3249760ea21rt47',\r\n name: 'Frank Powell',\r\n avatar: '/assets/images/faces/13.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n {\r\n contactId: '7863a6802ez0e277a0f98534',\r\n text: 'Don’t feel bad. It happens to a lot of us',\r\n time: '2018-02-10T08:45:28.291Z',\r\n id: '7863a6802ez0e277a0f98534',\r\n name: 'John Doe',\r\n avatar: '/assets/images/face-1.jpg',\r\n status: 'online',\r\n mood: '',\r\n },\r\n ])\r\n }\r\n // getChatRoomByContactId(currentUserId, \"323sa680b3249760ea21rt47\").then(\r\n // ({ data }) => {\r\n // if (isAlive) {\r\n // setMessageList(data?.messageList);\r\n // }\r\n // }\r\n // );\r\n }, [isAlive])\r\n\r\n useEffect(() => {\r\n scrollToBottom()\r\n return () => setIsAlive(false)\r\n }, [messageList, scrollToBottom])\r\n\r\n const { palette } = useTheme()\r\n const primary = palette.primary.main\r\n const textPrimary = palette.text.primary\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
Ryan Todd
\r\n Active\r\n
\r\n
\r\n \r\n clear\r\n \r\n
\r\n \r\n {messageList.map((item, ind) => (\r\n \r\n {currentUserId !== item.contactId && (\r\n \r\n )}\r\n \r\n {currentUserId !== item.contactId && (\r\n \r\n {item.name}\r\n \r\n )}\r\n {item.text}\r\n 1 minute ago\r\n \r\n \r\n ))}\r\n\r\n {/* example of image sent by current user*/}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Asus K555LA.png\r\n
\r\n 21.5KB\r\n
\r\n
\r\n 1 minute ago\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n tag_faces\r\n \r\n \r\n attachment\r\n \r\n \r\n ),\r\n classes: { root: 'pl-5 pr-3 py-3 text-body' },\r\n }}\r\n value={message}\r\n onChange={(e) => setMessage(e.target.value)}\r\n onKeyUp={sendMessageOnEnter}\r\n />\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Chatbox\r\n","import React from 'react'\r\nimport { styled, Box } from '@mui/system'\r\nimport { Avatar } from '@mui/material'\r\n\r\nconst StyledAvatar = styled(Avatar)(() => ({\r\n height: '40px',\r\n width: '40px',\r\n}))\r\n\r\nconst StatusCircle = styled('div')(({ theme, status }) => ({\r\n position: 'absolute',\r\n height: '14px',\r\n width: '14px',\r\n bottom: '0px',\r\n right: '-3px',\r\n borderRadius: '7px',\r\n border: '2px solid white',\r\n background: status === 'online' ? theme.palette.primary.main : theme.palette.error.main,\r\n color: status !== 'online' && 'white !important',\r\n}))\r\n\r\nconst ChatAvatar = ({ src, status }) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ChatAvatar\r\n","import React from 'react'\r\nimport useSettings from 'app/hooks/useSettings'\r\nimport { CssBaseline, ThemeProvider } from '@mui/material'\r\n\r\nconst MatxTheme = ({ children }) => {\r\n const { settings } = useSettings()\r\n let activeTheme = { ...settings.themes[settings.activeTheme] }\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default MatxTheme\r\n","import clsx from 'clsx'\r\nimport { cloneElement } from 'react'\r\nimport { styled } from '@mui/system'\r\nimport React, { useState } from 'react'\r\nimport { topBarHeight } from 'app/utils/constant'\r\n\r\nconst PopupRoot = styled('div')(({ theme }) => ({\r\n '& .popupOpen': {\r\n top: topBarHeight + 16,\r\n [theme.breakpoints.down('sm')]: {\r\n bottom: 0,\r\n },\r\n },\r\n '& .closeIcon': {\r\n position: 'absolute',\r\n top: 6,\r\n right: 6,\r\n },\r\n}))\r\n\r\nconst Popup = styled('div')(({ theme }) => ({\r\n position: 'fixed',\r\n right: theme.spacing(2),\r\n bottom: theme.spacing(2),\r\n top: '100vh',\r\n transition: 'top 250ms ease-in-out',\r\n boxShadow: theme.shadows[6],\r\n borderRadius: 6,\r\n zIndex: 99999,\r\n width: 360,\r\n overflow: 'hidden',\r\n '@media only screen and (max-width: 450px)': {\r\n width: 'calc(100% - 32px)',\r\n left: theme.spacing(2),\r\n },\r\n}))\r\n\r\nconst ChatHead = ({ icon, children }) => {\r\n const [open, setOpen] = useState(false)\r\n\r\n const togglePopup = async () => {\r\n setOpen((open) => !open)\r\n }\r\n\r\n return (\r\n \r\n {cloneElement(icon, { onClick: togglePopup })}\r\n \r\n {open ? cloneElement(children, { togglePopup }) : null}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ChatHead\r\n","import React from 'react'\r\nimport { Icon } from '@mui/material'\r\nimport { styled, lighten, useTheme } from '@mui/system'\r\nimport { convertHexToRGB } from 'utils'\r\n\r\nconst RectangleRoot = styled('div')(({ theme, color }) => ({\r\n opacity: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n \"& h5\": {\r\n margin: 0,\r\n fontWeight: '500',\r\n color: theme.palette.primary.main\r\n },\r\n background: color === \"primary\" ?\r\n `rgba(${convertHexToRGB(theme.palette.primary.main)}, 0.15) !important` :\r\n color === \"green\" ?\r\n 'rgba(9, 182, 109, 0.15) !important' :\r\n color === \"green\" ? `${lighten(theme.palette.secondary.main, 0.85)}` : `${lighten(theme.palette.error.main, 0.85)}`\r\n}))\r\n\r\nconst RectangleAvatar = ({ color = 'primary', icon, textIcon, style }) => {\r\n const theme = useTheme()\r\n const primary = theme.palette.primary.main\r\n\r\n return (\r\n \r\n {textIcon ? (\r\n
{textIcon}
\r\n ) : (\r\n {icon}\r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default RectangleAvatar\r\n","import React from 'react'\r\nimport { Small } from \"../Typography\"\r\nimport { Box, styled, useTheme } from '@mui/system'\r\nimport { IconButton, Icon } from '@mui/material'\r\nimport RectangleAvatar from '../RectangleAvatar/RectangleAvatar'\r\nimport { convertHexToRGB } from 'utils'\r\n\r\nconst ItemContainer = styled('div')(() => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n borderRadius: '8px',\r\n cursor: 'pointer',\r\n paddingLeft: '8px',\r\n paddingRight: '8px',\r\n transition: 'all 300ms ease',\r\n '&:hover': {\r\n background: 'rgba(0,0,0, .08)',\r\n paddingLeft: '8px',\r\n overflow: 'hidden',\r\n '& .action-icon, & .rectangle-box': {\r\n opacity: 1,\r\n },\r\n },\r\n '& .action-icon, & .rectangle-box': {\r\n opacity: 0.76,\r\n },\r\n}))\r\n\r\nconst Title = styled('h6')(({ theme }) => ({\r\n margin: 0,\r\n fontSize: '13px',\r\n fontWeight: 'normal',\r\n color: `rgba(${convertHexToRGB(theme.palette.text.primary)}, 0.87)`\r\n}))\r\n\r\nconst MatxListItem1 = (props) => {\r\n const {\r\n title,\r\n subtitle,\r\n iconText,\r\n iconColor,\r\n bulletIcon,\r\n actionIcon,\r\n } = props\r\n const theme = useTheme()\r\n const secondary = theme.palette.text.secondary\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {title}\r\n {subtitle}\r\n \r\n\r\n {actionIcon && (\r\n \r\n {actionIcon}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MatxListItem1\r\n","import React from 'react'\r\nimport { styled } from '@mui/system'\r\nimport { Button, Icon } from '@mui/material'\r\n\r\nconst ButtonContainer = styled('div')(() => ({\r\n width: 160,\r\n display: 'flex',\r\n justifyContent: 'space-between'\r\n}))\r\n\r\nconst ProductPrice = styled('div')(({ theme }) => ({\r\n width: 160,\r\n flexGrow: '1',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: theme.palette.background.paper,\r\n}))\r\n\r\nconst AddToCartButton = ({\r\n color,\r\n amount,\r\n propStyle,\r\n totalUnit,\r\n handleAddProduct,\r\n handleUpdateCart,\r\n}) => {\r\n const handleAmountIncrease = () => {\r\n handleUpdateCart(amount + 1)\r\n }\r\n const handleAmountDecrease = () => {\r\n handleUpdateCart(amount - 1)\r\n }\r\n\r\n return (\r\n
\r\n {amount === 0 && (\r\n \r\n \r\n shopping_cart\r\n \r\n Add To Cart\r\n \r\n )}\r\n {amount > 0 && (\r\n \r\n \r\n remove\r\n \r\n \r\n {amount}\r\n \r\n \r\n add\r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default AddToCartButton\r\n","import * as echarts from 'echarts'\r\n\r\nexport const EchartTheme = (MuiTheme) => ({\r\n backgroundColor: MuiTheme.palette.background.paper,\r\n // Global palette:\r\n color: [\r\n '#7467EF',\r\n '#ABA4F4',\r\n '#D3D0F4',\r\n 'rgba(0, 255, 33, 1)',\r\n '#91c7ae',\r\n '#749f83',\r\n '#ca8622',\r\n '#bda29a',\r\n '#6e7074',\r\n '#546570',\r\n '#c4ccd3',\r\n ],\r\n series: [\r\n {\r\n type: 'bar',\r\n // A palette only work for the series:\r\n // itemStyle: {\r\n // normal: {\r\n // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\r\n // { offset: 0, color: \"#83bff6\" },\r\n // { offset: 0.5, color: \"#188df0\" },\r\n // { offset: 1, color: \"#188df0\" }\r\n // ])\r\n // },\r\n // emphasis: {\r\n // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\r\n // { offset: 0, color: \"#2378f7\" },\r\n // { offset: 0.7, color: \"#2378f7\" },\r\n // { offset: 1, color: \"#83bff6\" }\r\n // ])\r\n // }\r\n // }\r\n },\r\n {\r\n type: 'pie',\r\n // A palette only work for the series:\r\n color: [\r\n '#37A2DA',\r\n '#32C5E9',\r\n '#67E0E3',\r\n '#9FE6B8',\r\n '#FFDB5C',\r\n '#ff9f7f',\r\n '#fb7293',\r\n '#E062AE',\r\n '#E690D1',\r\n '#e7bcf3',\r\n '#9d96f5',\r\n '#8378EA',\r\n '#96BFFF',\r\n ],\r\n },\r\n {\r\n type: 'line',\r\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\r\n { offset: 0, color: '#83bff6' },\r\n { offset: 0.5, color: '#188df0' },\r\n { offset: 1, color: '#188df0' },\r\n ]),\r\n },\r\n ],\r\n})\r\n","import React from 'react'\r\nimport * as echarts from 'echarts'\r\nimport ReactEcharts from 'echarts-for-react'\r\nimport PropTypes from 'prop-types'\r\nimport { EchartTheme } from 'app/components'\r\nimport { useTheme } from '@mui/system'\r\n\r\nconst EchartCreator = ({ height, option }) => {\r\n const theme = useTheme()\r\n\r\n echarts.registerTheme('echarts-theme', EchartTheme(theme))\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nEchartCreator.prototype = {\r\n height: PropTypes.string.isRequired,\r\n option: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default EchartCreator\r\n","import React from 'react'\r\nimport { styled } from '@mui/system'\r\nimport { Dialog, Button } from '@mui/material'\r\n\r\nconst DialogBox = styled('div')(() => ({\r\n width: 360,\r\n padding: '32px',\r\n textAlign: 'center',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n}))\r\n\r\nconst Title = styled('h4')(() => ({\r\n margin: 0,\r\n marginBottom: '8px',\r\n textTransform: 'capitalize'\r\n}))\r\n\r\nconst Controller = styled('div')(() => ({\r\n margin: '8px',\r\n paddingTop: '8px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n}))\r\n\r\nconst StyledButton = styled(Button)(({ theme }) => ({\r\n margin: '8px',\r\n paddingLeft: '24px',\r\n paddingRight: '24px',\r\n overflow: 'hidden',\r\n borderRadius: '300px',\r\n transition: 'all 250ms',\r\n '&.yesBtn': {\r\n '&:hover': {\r\n color: '#ffffff',\r\n background: `${theme.palette.primary.main} !important`,\r\n backgroundColor: `${theme.palette.primary.main} !important`,\r\n fallbacks: [{ color: 'white !important' }],\r\n }\r\n },\r\n '&.noBtn': {\r\n '&:hover': {\r\n color: '#ffffff',\r\n background: `${theme.palette.secondary.main} !important`,\r\n backgroundColor: `${theme.palette.secondary.main} !important`,\r\n fallbacks: [{ color: 'white !important' }],\r\n }\r\n },\r\n}))\r\n\r\nconst ConfirmationDialog = ({\r\n open,\r\n onConfirmDialogClose,\r\n text,\r\n title = 'confirm',\r\n onYesClick,\r\n}) => {\r\n return (\r\n \r\n \r\n {title}\r\n

{text}

\r\n \r\n \r\n Yes\r\n \r\n \r\n No\r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ConfirmationDialog\r\n","import React from 'react'\r\nimport { Small } from \"../Typography\"\r\nimport { styled, useTheme } from '@mui/system'\r\nimport { Grid, LinearProgress, Typography } from '@mui/material'\r\n\r\nconst CustomLinearProgress = styled(LinearProgress)(() => ({\r\n borderRadius: 2,\r\n background: 'rgba(0, 0, 0, 0.1)',\r\n}))\r\n\r\nconst MatxProgressBar = ({\r\n value = 75,\r\n color = 'primary',\r\n text = '',\r\n spacing = 2,\r\n coloredText = false,\r\n}) => {\r\n const theme = useTheme()\r\n const secondary = theme.palette.text.secondary\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {text !== '' && (\r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MatxProgressBar\r\n","import React from 'react'\r\nimport { Card } from '@mui/material'\r\nimport { styled, Box } from '@mui/system'\r\n\r\nconst CardRoot = styled(Card)(() => ({\r\n height: '100%',\r\n padding: '20px 24px',\r\n}))\r\n\r\nconst CardTitle = styled('div')(({ subtitle }) => ({\r\n fontSize: '1rem',\r\n fontWeight: 'bold',\r\n textTransform: 'capitalize',\r\n marginBottom: !subtitle && \"16px\",\r\n}))\r\n\r\nconst StyledHR = styled('hr')(({ theme }) => ({\r\n borderTop: \"1px solid #EBEDF3\",\r\n margin: \"25px 0\"\r\n}))\r\n\r\nconst SimpleCard = ({ children, title, subtitle, icon }) => {\r\n return (\r\n \r\n {title ? \r\n {title}\r\n : null}\r\n {subtitle && {subtitle}}\r\n {title || subtitle ? : null}\r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default SimpleCard\r\n","import { useContext } from 'react'\r\nimport AuthContext from 'app/contexts/JWTAuthContext'\r\n\r\nconst useAuth = () => useContext(AuthContext)\r\n\r\nexport default useAuth\r\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)\r\n return `${Math.floor(difference / 86400)} d`\r\n else if (difference < 86400 * 30 * 12)\r\n 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","const textLight = {\r\n primary: 'rgba(52, 49, 76, 1)',\r\n secondary: 'rgba(52, 49, 76, 0.54)',\r\n disabled: 'rgba(52, 49, 76, 0.38)',\r\n hint: 'rgba(52, 49, 76, 0.38)',\r\n}\r\n\r\nconst textDark = {\r\n primary: '#fff',\r\n secondary: 'rgba(255, 255, 255, 0.7)',\r\n disabled: 'rgba(255, 255, 255, 0.64)',\r\n hint: 'rgba(255, 255, 255, 0.64)',\r\n}\r\n\r\nconst secondaryColor = {\r\n light: '#f9a352',\r\n main: '#ff9e43',\r\n dark: '#ff932e',\r\n contrastText: textLight.primary,\r\n}\r\nconst errorColor = {\r\n main: '#FF3D57',\r\n}\r\n\r\nexport const themeColors = {\r\n whitePurple: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n main: '#ffffff',\r\n contrastText: textLight.primary,\r\n },\r\n secondary: {\r\n main: '#7467ef',\r\n contrastText: '#ffffff',\r\n },\r\n background: {\r\n paper: '#fff',\r\n default: '#fafafa',\r\n },\r\n error: errorColor,\r\n text: textLight,\r\n },\r\n },\r\n whiteBlue: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n main: '#ffffff',\r\n contrastText: textLight.primary,\r\n },\r\n secondary: {\r\n main: '#1976d2',\r\n contrastText: '#ffffff',\r\n },\r\n background: {\r\n paper: '#fff',\r\n default: '#fafafa',\r\n },\r\n text: textLight,\r\n },\r\n },\r\n slateDark1: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n main: '#222A45',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#ff9e43',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#222A45',\r\n default: '#1a2038',\r\n },\r\n text: textDark,\r\n },\r\n },\r\n slateDark2: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n main: '#1a2038',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#ff9e43',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#222A45',\r\n default: '#1a2038',\r\n },\r\n text: textDark,\r\n },\r\n },\r\n purple1: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n main: '#7467ef',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: secondaryColor,\r\n error: errorColor,\r\n background: {\r\n paper: '#fff',\r\n default: '#fafafa',\r\n },\r\n text: textLight,\r\n },\r\n },\r\n purple2: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n main: '#6a75c9',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#ff9e43',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#fff',\r\n default: '#fafafa',\r\n },\r\n text: textLight,\r\n },\r\n },\r\n purpleDark1: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n main: '#7467ef',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#ff9e43',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#222A45',\r\n default: '#1a2038',\r\n },\r\n text: textDark,\r\n },\r\n },\r\n purpleDark2: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n main: '#6a75c9',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#ff9e43',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#222A45',\r\n default: '#1a2038',\r\n },\r\n text: textDark,\r\n },\r\n },\r\n blue: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n main: '#1976d2',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#FFAF38',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#fff',\r\n default: '#fafafa',\r\n },\r\n text: textLight,\r\n },\r\n },\r\n blueDark: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n main: '#1976d2',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#FF4F30',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#222A45',\r\n default: '#1a2038',\r\n },\r\n text: textDark,\r\n },\r\n },\r\n red: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n main: '#e53935',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#FFAF38',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n text: textDark,\r\n },\r\n },\r\n bimb: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n main: '#c70b46',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#ffedf3',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#fff',\r\n default: '#eef0f8',\r\n },\r\n text: textLight,\r\n },\r\n },\r\n bimbDark1: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n main: '#1e1e2d',\r\n contrastText: '#ffffff',\r\n },\r\n secondary: {\r\n main: '#ff9e43',\r\n contrastText: textLight.primary,\r\n },\r\n error: errorColor,\r\n background: {\r\n paper: '#1e1e2d',\r\n default: '#1a2038',\r\n },\r\n text: textDark,\r\n },\r\n },\r\n}\r\n\r\nexport const themeShadows = [\r\n 'none',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\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)',\r\n]\r\n","import axios from 'axios.js'\r\nimport * as Types from './ActionTypes';\r\nimport { openPopup } from './PopupAlertActions';\r\n\r\nexport const getTableListing = (title, rowsPerPage, page, sort, field, filters) => (dispatch) => {\r\n dispatch({ type: Types.GET_TABLE_LISTING_PENDING })\r\n axios\r\n .get(`admin/listing/${title}`, { params: { rowsPerPage, page, sort, field, filters, field } })\r\n .then((res) => {\r\n dispatch({\r\n type: Types.GET_TABLE_LISTING_SUCCESS,\r\n payload: res.data,\r\n })\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, title, null, error.status))\r\n dispatch({\r\n type: Types.GET_TABLE_LISTING_FAILED,\r\n payload: null,\r\n })\r\n })\r\n}\r\n\r\nexport const getItemDetails = (title, id) => (dispatch) => {\r\n dispatch({ type: Types.GET_ITEM_DETAILS_PENDING })\r\n axios\r\n .get(`admin/details/${title}/${id}`)\r\n .then((res) => {\r\n dispatch({\r\n type: Types.GET_ITEM_DETAILS_SUCCESS,\r\n payload: res.data,\r\n })\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, title, null, error.status))\r\n dispatch({\r\n type: Types.GET_ITEM_DETAILS_FAILED,\r\n payload: null,\r\n })\r\n })\r\n}\r\n\r\nexport const updateTableListing = (tableListing) => (dispatch) => {\r\n dispatch({\r\n type: Types.UPDATE_TABLE_LISTING,\r\n payload: tableListing,\r\n })\r\n}\r\n\r\nexport const updateItemDetails = (itemDetails) => (dispatch) => {\r\n dispatch({\r\n type: Types.UPDATE_ITEM_DETAILS,\r\n payload: itemDetails,\r\n })\r\n}\r\n\r\nexport const upsertItemDetails = (title, id, params) => (dispatch) => {\r\n axios\r\n .post(`admin/upsert/${title}/${id}`, { ...params })\r\n .then((res) => {\r\n console.log(' upsertItemDetails data', res.data)\r\n if (res.data.redirect) {\r\n dispatch(openPopup(true, res.data.message, 'success', null, title, id, res.data.status, res.data.redirect))\r\n } else {\r\n dispatch(openPopup(true, res.data.message, 'success', null, title, id))\r\n }\r\n dispatch({\r\n type: Types.UPDATE_ITEM_DETAILS_SUCCESS,\r\n payload: res.data.data,\r\n })\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, title, id, error.status))\r\n })\r\n}\r\n\r\nexport const upsertFileDetails = (title, id, formdata) => (dispatch) => {\r\n axios\r\n .post(`admin/upsert/${title}/${id}`, formdata)\r\n .then((res) => {\r\n console.log(' upsertItemDetails data', res.data)\r\n if (res.data.redirect) {\r\n dispatch(openPopup(true, res.data.message, 'success', null, title, id, res.data.status, res.data.redirect))\r\n } else {\r\n dispatch(openPopup(true, res.data.message, 'success', null, title, id))\r\n }\r\n dispatch({\r\n type: Types.UPDATE_ITEM_DETAILS_SUCCESS,\r\n payload: res.data.data,\r\n })\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, title, id, error.status))\r\n })\r\n}\r\n\r\nexport const deleteItemDetails = (title, id) => (dispatch) => {\r\n axios\r\n .post(`admin/delete/${title}/${id}`)\r\n .then((res) => {\r\n dispatch(openPopup(true, res.data.message, 'success', null, title, id))\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, title, id, error.status))\r\n })\r\n}\r\n\r\nexport const importItemDetails = (title, formdata) => (dispatch) => {\r\n console.log('importItemDetails data', formdata)\r\n axios\r\n .post(`admin/import/${title}`, formdata,)\r\n .then((res) => {\r\n console.log('importItemDetails data', res.data)\r\n if (res.data.redirect) {\r\n dispatch(openPopup(true, res.data.message, 'success', null, title, 0, res.data.status, res.data.redirect))\r\n } else {\r\n dispatch(openPopup(true, res.data.message, 'success', null, title, 0))\r\n }\r\n dispatch({\r\n type: Types.IMPORT_ITEM_DETAILS_SUCCESS,\r\n payload: res.data.data,\r\n })\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, title, 0, error.status))\r\n })\r\n}\r\n\r\nexport const resendVerify = (email) => (dispatch) => {\r\n axios\r\n .get(`admin/email/resend/${email}`)\r\n .then((res) => {\r\n dispatch(openPopup(true, res.data.message, 'success'))\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, null, null, error.status))\r\n })\r\n}\r\n\r\nexport const resetPassword = (email) => (dispatch) => {\r\n axios\r\n .post('admin/forgotpassword/send', { email: email })\r\n .then((res) => {\r\n dispatch(openPopup(true, res.data.message, 'success'))\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, null, null, error.status))\r\n })\r\n}\r\n\r\nexport const downloadPDF = (id, type) => (dispatch) => {\r\n axios\r\n .get(`admin/downloadCustomerApplicationsLink/${id}/${type}`)\r\n .then((res) => {\r\n window.open(res.data, '_blank');\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, null, null, error.status))\r\n })\r\n}\r\n\r\nexport const downloadExcel = (period) => (dispatch) => {\r\n axios\r\n .get(`admin/listing/ms_user/export?period=${period}`)\r\n .then((res) => {\r\n window.open(res.data, '_blank');\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, null, null, error.status))\r\n })\r\n}\r\n\r\nexport const emailPDF = (id) => (dispatch) => {\r\n axios\r\n .get(`admin/emailCustomerApplications/${id}`)\r\n .then((res) => {\r\n dispatch(openPopup(true, res.data.message, 'success', null, null, null, res.data.status, `/details/customer_lead_applications/${id}`))\r\n })\r\n .catch(error => {\r\n dispatch(openPopup(true, error.message, 'error', null, null, null, error.status))\r\n })\r\n} ","import React from 'react'\r\nimport { Box, styled } from '@mui/system'\r\nimport { CircularProgress } from '@mui/material'\r\n\r\nconst StyledLoading = styled('div')(() => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n '& img': {\r\n width: 'auto',\r\n height: '25px',\r\n },\r\n \"& .circleProgress\": {\r\n position: 'absolute',\r\n left: -7,\r\n right: 0,\r\n top: 'calc(50% - 25px)',\r\n }\r\n}))\r\n\r\nconst Loading = () => {\r\n\r\n return (\r\n \r\n \r\n \"\"\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Loading\r\n","export const topBarHeight = 64\r\nexport const sideNavWidth = 260\r\nexport const navbarHeight = 60\r\nexport const sidenavCompactWidth = 80\r\nexport const containedLayoutWidth = 1200","import React from 'react'\r\n\r\nexport const MatxLayouts = {\r\n layout1: React.lazy(() => import('./Layout1/Layout1')),\r\n}\r\n","import React from 'react'\r\nimport { MatxLayouts } from './index'\r\nimport { MatxSuspense } from 'app/components'\r\nimport useSettings from 'app/hooks/useSettings'\r\n\r\nconst MatxLayout = (props) => {\r\n const { settings } = useSettings()\r\n const Layout = MatxLayouts[settings.activeLayout]\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MatxLayout\r\n","import React, { createContext, useEffect, useReducer } from 'react'\r\nimport axios from 'axios.js'\r\nimport { MatxLoading } from 'app/components'\r\nimport OneSignal from 'react-onesignal';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\n\r\nconst onesignal_id = process.env.REACT_APP_ONESIGNAL_ID;\r\n\r\nconst initialState = {\r\n isAuthenticated: false,\r\n isInitialised: false,\r\n user: null,\r\n}\r\n\r\nconst setSession = (accessToken) => {\r\n if (accessToken) {\r\n localStorage.setItem('accessToken', accessToken)\r\n axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`\r\n } else {\r\n localStorage.removeItem('accessToken')\r\n delete axios.defaults.headers.common.Authorization\r\n }\r\n}\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case 'INIT': {\r\n const { isAuthenticated, user } = action.payload\r\n return {\r\n ...state,\r\n isAuthenticated,\r\n isInitialised: true,\r\n user,\r\n }\r\n }\r\n case 'LOGIN': {\r\n const { user } = action.payload\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user,\r\n }\r\n }\r\n case 'VERIFY': {\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n }\r\n }\r\n case 'RESET': {\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n }\r\n }\r\n case 'LOGOUT': {\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n user: null,\r\n }\r\n }\r\n case 'CHECK': {\r\n const { isAuthenticated, user } = action.payload\r\n return {\r\n ...state,\r\n isAuthenticated,\r\n user,\r\n }\r\n }\r\n default: {\r\n return { ...state }\r\n }\r\n }\r\n}\r\n\r\nconst AuthContext = createContext({\r\n ...initialState,\r\n method: 'JWT',\r\n login: () => Promise.resolve(),\r\n verify: () => Promise.resolve(),\r\n resetPasssword: () => Promise.resolve(),\r\n check: () => Promise.resolve(),\r\n logout: () => { },\r\n})\r\n\r\nexport const AuthProvider = ({ children }) => {\r\n const [state, dispatch] = useReducer(reducer, initialState)\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n const login = async (email, password) => {\r\n // var player_id = await OneSignal.getUserId() ?? null;\r\n console.log(email);\r\n\r\n const response = await axios.post('/admin/login', {\r\n email,\r\n password,\r\n // onesignal_id: player_id,\r\n })\r\n\r\n // const response = await axios.post('/admin/loginAD', {\r\n // staff_id,\r\n // password,\r\n // // onesignal_id: player_id,\r\n // })\r\n\r\n const { token, user } = response.data.data\r\n const accessToken = token\r\n let newUser = {\r\n ...user,\r\n role: \"\",\r\n }\r\n\r\n setSession(accessToken)\r\n dispatch({\r\n type: 'LOGIN',\r\n payload: {\r\n user: newUser,\r\n },\r\n })\r\n }\r\n\r\n const loginAD = async (staff_id, password) => {\r\n // var player_id = await OneSignal.getUserId() ?? null;\r\n console.log(staff_id);\r\n\r\n const response = await axios.post('/admin/loginAD', {\r\n staff_id,\r\n password,\r\n // onesignal_id: player_id,\r\n })\r\n\r\n const { token, user } = response.data.data\r\n const accessToken = token\r\n let newUser = {\r\n ...user,\r\n role: \"\",\r\n }\r\n\r\n setSession(accessToken)\r\n dispatch({\r\n type: 'LOGIN',\r\n payload: {\r\n user: newUser,\r\n },\r\n })\r\n }\r\n\r\n const check = async () => {\r\n var player_id = '0';\r\n\r\n const response = await axios.get(`/admin/check/${player_id}`)\r\n const { user } = response.data\r\n\r\n dispatch({\r\n type: 'CHECK',\r\n payload: {\r\n user, isAuthenticated: true\r\n },\r\n })\r\n }\r\n\r\n const logout = async () => {\r\n await axios.post('/admin/logout')\r\n setSession(null)\r\n dispatch({ type: 'LOGOUT' })\r\n }\r\n\r\n const verify = async (url) => {\r\n logout()\r\n const response = await axios.get(url)\r\n return response.data.message;\r\n }\r\n\r\n const resetPasssword = async (param) => {\r\n logout()\r\n const response = await axios.post('admin/forgotpassword/reset', param)\r\n return response.data.message;\r\n }\r\n\r\n const forgotPassword = async (param) => {\r\n const response = await axios.post('/admin/forgotpassword/send', param)\r\n return response.data.message;\r\n }\r\n\r\n useEffect(() => {\r\n ; (async () => {\r\n try {\r\n // OneSignal.init({ appId: onesignal_id });\r\n\r\n const accessToken = window.localStorage.getItem('accessToken')\r\n\r\n if (accessToken) {\r\n setSession(accessToken)\r\n\r\n var player_id = '0';\r\n\r\n const response = await axios.get(`/admin/check/${player_id}`)\r\n const { user } = response.data\r\n\r\n dispatch({\r\n type: 'INIT',\r\n payload: {\r\n isAuthenticated: true,\r\n user,\r\n },\r\n })\r\n\r\n if (location.pathname === '/account/signin') navigate('/')\r\n\r\n } else {\r\n dispatch({\r\n type: 'INIT',\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n })\r\n }\r\n } catch (err) {\r\n console.error(err)\r\n dispatch({\r\n type: 'INIT',\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n })\r\n }\r\n })()\r\n }, [])\r\n\r\n if (!state.isInitialised) {\r\n return \r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default AuthContext\r\n"],"sourceRoot":""}