{"version":3,"sources":["types/actions/Common.action.tsx","@crema/services/auth/firebase/firebase.ts","shared/constants/AppEnums.ts","@crema/core/Loader/index.tsx","@crema/core/AppSuspense/index.tsx","@crema/core/Badge/index.tsx","@crema/core/ComponentHeader/index.tsx","@crema/core/ComponentCard/index.tsx","@crema/core/ThemeSetting/PrimaryColorPicker.tsx","@crema/services/db/navigationStyle.tsx","@crema/core/ThemeSetting/index.style.tsx","@crema/core/ThemeSetting/CustomColorCell.style.tsx","@crema/core/MessageView/index.tsx","@crema/core/AppLayout/AppFooter.tsx","@crema/core/AppErrorBoundary/index.tsx","@crema/core/ContentView/index.tsx","@crema/core/Scrollbar/index.tsx","redux/reducers/UserList.tsx","@crema/utility/AuthRoutes.tsx","@crema/utility/AppHooks.tsx","redux/reducers/Setting.ts","redux/reducers/CommonReducer.ts","redux/reducers/Auth.ts","redux/reducers/CurrLoc.ts","redux/reducers/Dashboard.ts","redux/reducers/LocList.tsx","redux/reducers/index.tsx","redux/store/index.tsx","App.tsx","@crema/services/MockConfig.ts","@crema/services/auth/index.ts","@crema/services/auth/aws-cognito/aws-exports.tsx","@crema/services/db/dashboard/ecommerce.tsx","@crema/services/apis/dashboard/index.ts","@crema/services/db/apps/chat/connectionList.tsx","@crema/services/apis/ecommerce/index.tsx","@crema/services/db/apps/chat/chatList.tsx","@crema/services/apis/chat/index.ts","@crema/services/db/apps/contact/contactList.tsx","@crema/services/db/apps/contact/folderList.tsx","@crema/services/db/apps/contact/labelList.tsx","@crema/services/apis/contact/index.ts","@crema/services/db/apps/wall.tsx","@crema/services/apis/wall/index.ts","@crema/services/db/apps/todo/staffList.tsx","@crema/services/db/apps/todo/priorityList.tsx","@crema/services/db/apps/todo/todoList.tsx","@crema/services/db/apps/todo/folderList.tsx","@crema/services/db/apps/todo/labelList.tsx","@crema/services/db/apps/todo/statusList.tsx","@crema/services/apis/todo/index.ts","@crema/services/db/apps/scrumboard/labelList.tsx","@crema/services/apis/scrumboard/index.ts","@crema/services/db/apps/scrumboard/boardList.tsx","@crema/services/db/apps/scrumboard/memberList.tsx","@crema/services/db/apps/mail/folderList.tsx","@crema/services/db/apps/mail/labelList.tsx","@crema/services/db/apps/mail/connectionList.tsx","@crema/services/apis/mail/index.ts","@crema/services/db/apps/mail/mailList.tsx","@crema/services/db/userList.tsx","@crema/services/apis/userList/index.tsx","@crema/services/index.ts","reportWebVitals.ts","index.tsx","shared/constants/AppConst.ts","@crema/services/db/ecommerce/ecommerceData.tsx","redux/actions/Dashboard.ts","redux/actions/JWTAuth.ts","redux/actions/AWSCognito.ts","@crema/services/auth/jwt-auth/jwt-api.tsx","types/actions/Settings.action.ts","types/actions/Ecommerce.action.ts","@crema/core/AppAnimate/index.tsx","@crema/utility/IntlMessages.tsx","@crema/utility/CremaThemeProvider/index.tsx","@crema/utility/CremaStyleProvider/index.tsx","@crema/utility/LocaleProvider.tsx","@crema/core/AppLayout/Standard/AppHeader.style.tsx","modules/ecommerce/Carts/CartTable/CartTableItem.tsx","@crema/core/HeaderMessages/index.tsx","shared/components/AppLogo/index.tsx","@crema/core/HistoryMessages/index.tsx","@crema/core/AppLayout/Standard/NotificationBar.tsx","@crema/core/AppLayout/Standard/AppHeader.tsx","@crema/core/AppLayout/Standard/index.style.tsx","@crema/core/AppLayout/Standard/AppFixedFooter.tsx","@crema/core/AppLayout/Standard/index.tsx","@crema/core/AppLayout/Layouts.tsx","shared/jss/common/common.style.tsx","@crema/core/AppLayout/index.tsx","@crema/utility/ContextProvider/ContextReducer.tsx","@crema/utility/ContextProvider/index.tsx","@crema/utility/AppContext.tsx","types/actions/UserList.actions.ts","types/actions/CurrLoc.actions.ts","types/actions/LocList.actions.ts","shared/localization/entries/en-US.ts","shared/localization/entries/zh-Hans-CN.ts","shared/localization/entries/ar_SA.ts","shared/localization/entries/it_IT.ts","shared/localization/entries/es_ES.ts","shared/localization/index.ts","shared/localization/entries/fr_FR.ts","modules/dashboard/index.tsx","modules/errorPages/index.tsx","modules/auth/index.tsx","modules/ecommerce/index.tsx","modules/userPages/index.tsx","modules/index.tsx","@crema/utility/Utils.tsx","types/actions/Auth.actions.ts","redux/actions/Ecommerce.ts","@crema/core/InfoView/index.tsx","@crema/core/GridContainer/index.tsx","redux/actions/CurrLoc.ts","redux/reducers/Ecommerce.tsx","modules/ecommerce/Carts/CartTable/TableItem.style.tsx","@crema/utility/ContextProvider/defaultConfig.tsx","@crema/services/ApiConfig.ts","types/actions/Dashboard.action.ts","redux/actions/Common.ts"],"names":["FETCH_START","FETCH_SUCCESS","FETCH_ERROR","SHOW_MESSAGE","TOGGLE_APP_DRAWER","HIDE_MESSAGE","firebase","apps","length","initializeApp","apiKey","process","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","auth","googleAuthProvider","GoogleAuthProvider","githubAuthProvider","GithubAuthProvider","facebookAuthProvider","FacebookAuthProvider","twitterAuthProvider","TwitterAuthProvider","ThemeStyle","ThemeStyleRadius","ThemeMode","LayoutType","NavStyle","FooterType","HeaderType","RouteTransition","Fonts","AuthType","APIBaseUrl","Loader","NoSsr","Box","height","display","flex","alignItems","justifyContent","position","top","left","right","bottom","CircularProgress","AppSuspense","children","Suspense","fallback","makeStyles","theme","root","padding","fontSize","fontWeight","minWidth","borderRadius","color","palette","secondary","contrastText","containerHeader","flexDirection","breakpoints","up","paddingTop","linkIcon","paddingLeft","textbase","REGULAR","backgroundColor","background","default","cardHeader","paddingRight","BOLD","marginBottom","cardContent","preTag","cpSwatch","cursor","marginRight","cpColor","width","primary","main","border","grey","cpPopover","zIndex","STANDARD","DEFAULT","MINI_SIDEBAR_TOGGLE","HEADER_USER","HEADER_USER_MINI","MINI","DRAWER","BIT_BUCKET","H_DEFAULT","HOR_LIGHT_NAV","HOR_DARK_LAYOUT","FULL_WIDTH","BOXED","customizerOption","customizerButton","orange","rightSidebar","rightSidebarHeader","borderBottom","rightSidebarMain","customizerItem","paddingBottom","colorRow","flexWrap","navOption","marginLeft","navOptionItem","navOptionContent","navOptionRightIcon","transform","overflow","selectBox","toggleBtn","paper","borderColor","colorOptionList","margin","listStyle","wFull","textWhite","mb5","colorOption","text","colorOptionTriangle","marginTop","colorOptionBorder","colorOptionRightIcon","textBase","variantIcon","success","CheckCircleIcon","warning","WarningIcon","error","ErrorIcon","info","InfoIcon","useStyles1","green","dark","amber","icon","iconVariant","opacity","spacing","message","AppSnackbar","className","variant","other","classes","React","useState","open","setOpen","Icon","onClose","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","SnackbarContent","clsx","id","action","IconButton","onClick","useStyles","footer","btnRoot","AppFooter","useContext","AppContext","footerType","navStyle","ml","Button","AppErrorBoundary","props","state","hasError","errorInfo","console","log","this","component","mt","textAlign","Component","TransitionWrapper","rtAnim","location","useLocation","NONE","TransitionGroup","appear","enter","exit","CSSTransition","timeout","classNames","key","ContentView","Scrollbar","renderRoutes","routes","forwardRef","ref","scrollToTop","others","_scrollBarRef","useRef","pathname","useEffect","_container","scrollTop","initialState","AuthRoutes","search","history","useHistory","changeNavStyle","updateThemeStyle","updateThemeMode","setRTL","dispatch","useDispatch","loading","setLoading","user","useSelector","validateAuth","a","fetchStart","token","localStorage","getItem","phase","fetchSuccess","setJWTToken","jwtAxios","get","res","type","UPDATE_AUTH_USER","payload","authType","JWT_AUTH","displayName","data","name","email","role","defaultUser","_id","photoURL","avatar","Promise","all","then","Hub","listen","event","onGetLoggedInCognitoUser","useAuthToken","initialPath","settings","loc","currLoc","currentRoute","matchRoutes","route","isPermitted","checkPermission","query","qs","parse","split","layout","mode","rtl","style","handleQueryParams","push","invalidUrl","menuUrl","initialSettings","navCollapsed","Settings","ROUTE_CHANGE","TOGGLE_NAV_COLLAPSED","SET_INITIAL_PATH","INIT_STATE","isAppDrawerOpen","updatingContent","CommonReducer","Auth","SIGNOUT_AUTH_SUCCESS","SET_AUTH_TOKEN","locid","locname","locstate","CurrLoc","SET_LOC","ecommerceData","healthCare","academyData","analyticsData","crmData","cryptoData","metricsData","widgetsData","productData","Dashboard","GET_ANALYTICS_DATA","GET_ECOMMERCE_DATA","GET_HEALTH_CARE_DATA","GET_CRM_DATA","GET_CRYPTO_DATA","GET_ACADEMY_DATA","GET_METRICS_DATA","GET_WIDGETS_DATA","usersList","userListReducer","GET_USER_LIST","locsList","locListReducer","GET_LOC_LIST","reducers","dashboard","ecommerce","Ecommerce","common","userList","UserList","locList","LocList","createBrowserHistory","require","basename","rootReducer","combineReducers","router","connectRouter","store","middleware","thunk","routerMiddleware","enhancers","windowIfDefined","window","__REDUX_DEVTOOLS_EXTENSION__","createStore","compose","applyMiddleware","currentState","getState","subscribe","previousState","setAuthToken","configureStore","App","ContextProvider","CookiesProvider","CremaThemeProvider","CremaStyleProvider","LocaleProvider","CssBaseline","AppLayout","axios","delayResponse","Amplify","configure","aws_project_region","aws_cognito_identity_pool_id","aws_cognito_region","aws_user_pools_id","aws_user_pools_web_client_id","oauth","domain","scope","redirectSignIn","redirectSignOut","responseType","federationTarget","ecommerceDat","salesState","bgColor","reportCards","value","growth","strokeColor","graphData","month","number","popularProducts","description","price","mrp","marketingCampaign","graph","spent","like","share","notifications","image","newCustomers","orders","siteVisitors","country","browser","recentOrders","customer","product","date","paymentType","status","mock","onGet","reply","MessageType","request","filterData","params","multiPropsFilter","filter","item","ProductCode","orderCount","page","customers","customersData","toLowerCase","includes","customerCount","splice","cartItems","connectionList","channelId","username","lastMessage","time","chatList","messageData","sender","message_type","TEXT","MEDIA","media","url","mime_type","file_name","file_size","DOC","connectionData","chatData","response","find","chat","parseInt","onPost","JSON","Math","random","toFixed","connection","map","userMessages","concat","onPut","messageId","contactList","contact","company","isStarred","isFrequent","label","folderList","alias","labelList","red","blue","contactData","config","folderContactList","labelType","index","total","list","slice","contactIds","wallData","profilePic","videoCall","users","title","friendRequests","getCustomDateTime","photos","thumb","recentNews","desc","whoToFollow","suggestions","posts","owner","attachments","path","preview","metaData","size","liked","likes","shares","views","comments","author","comment","content","post","newPost","floor","Date","toString","postId","newComment","staffList","priorityList","todoList","priority","isAttachment","sentAt","folderValue","schedule","assignedTo","createdBy","createdOn","isReplied","isRead","statusList","todoData","onGetTaskList","task","folderId","folder","folderTaskList","taskIds","labelId","staff","boardData","cards","file","lastModified","lastModifiedDate","moment","members","checkedList","board","newBoard","boardId","newList","card","selectedBoard","selectedList","listId","cardId","address","designation","mailList","isChecked","sentBy","subject","sentOn","senderMailId","mail","folderMailList","mailIds","skills","information","phone","website","charge","readTime","retweets","topic","onAny","passThrough","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","scrollTo","vh","innerHeight","document","documentElement","setProperty","addEventListener","ReactDOM","render","getElementById","authRole","admin","uid","AUTH0","initialUrl","userinfoUrl","setAPIBaseUrl","env","DEV","PROD","apiBaseUrl","CSOMTUrl","maxOrder","maxItems","timeToGetOrderStatus","charShowMore","timeToTriggerStatusAPI","notificationMessage","add","format","version","openTime","closeTime","addresses","mobile","addressLine","city","pin","lastItem","lastOrder","rating","balance","joinDate","cinemalist","onGetECommerceData","Api","fetchError","catch","onJwtSignIn","body","invalidLink","setItem","loadJWTUser","getUserObject","err","authUser","onJWTAuthSignoutRedirect","redirectToHome","clearCartItem","removeItem","AWS_COGNITO","attributes","signInUserSession","accessToken","jwtToken","currentAuthenticatedUser","create","baseURL","headers","interceptors","use","msg","reject","defaults","ADD_CART_ITEM","GET_CUSTOMERS","GET_ECOMMERCE_LIST","SET_ECOMMERCE_LIST","GET_RECENT_ORDER","REMOVE_CART_ITEM","SET_FILTER_DATA","SET_PRODUCT_DATA","SET_PRODUCT_VIEW_TYPE","UPDATE_CART_ITEM","SET_ORDER_DATA","NEW_CSO_ORDER","CONFIRM_CSO_ORDER_STATUS","SET_NEW_ORDER","GET_CINEMA_LIST","GET_PHONE_PREFIX","GET_ORDER_HISTORY","GET_WEBSITE_STATUS","GET_REGION_LIST","CLEAR_CART_ITEM","GET_CONFIRM_ORDER_STATUS","GET_MENU_ITEM","AppAnimate","animation","runOnMount","targetQuerySelector","interruptBehavior","visibility","duration","delay","easing","rest","child","cloneElement","memo","injectIntl","locale","isRTL","updateTheme","muiLocale","AppLocale","isBelowMd","useBreakPointDown","useUrlSearchParams","theme_mode","is_rtl","setAttribute","nav_style","theme_style","MODERN","overrides","MuiCard","MuiToggleButton","MuiButton","MuiCardLg","responsiveFontSizes","createMuiTheme","utils","MomentUtils","jss","plugins","jssPreset","currentAppLocale","defaultLocale","messages","appToolbar","minHeight","grow","flexGrow","menuButton","menuIcon","fade","white","searchIcon","pointerEvents","inputRoot","inputInput","transition","transitions","sectionDesktop","sectionMobile","appBar","boxShadow","menuItemRoot","pointer","logoRoot","verticalAlign","crPopover","maxHeight","btnPopover","textTransform","NotiLocation","notiBtn","badgeStyle","down","materialUiIcon","listRoot","snackbar","CartTableItem","TableRow","TableCell","mr","clone","Avatar","src","ImageUrl","pt","MEDIUM","Description","align","tableCell","SalesAmount","count","HeaderMessages","anchorMessages","setAnchorMessages","getCartCount","cartCount","getCartItems","currentTarget","Badge","badgeContent","Hidden","mdUp","fontFamily","IntlMessages","Popover","anchorEl","Boolean","transformOrigin","px","py","List","getThreeItems","mb","xs","sm","AppLogo","themeMode","logo","smUp","DARK","alt","xsDown","HistoryMessages","md","headerTop","borderBottomColor","headerContainer","maxWidth","alertStyle","NotificationBar","setNotice","Collapse","in","Alert","AppHeader","elementRef","mobileMoreAnchorEl","setMobileMoreAnchorEl","setHeaderHeight","current","clientHeight","mobileMenuId","renderMobileMenu","keepMounted","Typography","AppBar","Toolbar","themeStyle","notice","headerHeight","appMain","overflowY","overflowX","mainContent","mainContainer","mainContainerFull","boxedLayout","AppFixedFooter","StandardLayout","layoutType","appMainFooter","appMainFixedFooter","mdDown","lgUp","Layouts","Standard","black","useStyle","appAuth","backgroundSize","CremaLayout","ThemeSetting","contextReducer","disabled","hint","LIGHT","headerMode","isBreakPointDown","direction","sidebarColor","noticeHeight","ContextState","defaultConfig","sidebar","useReducer","useCallback","Provider","updateLayoutStyle","rtlLocale","updateSidebarColor","setNoticeHeight","setFooter","setFooterType","updateHeaderMode","updatePrimaryColor","updateSecondaryColor","changeLocale","changeRTAnim","createContext","EnLang","enMessages","enUS","ZhLan","zhMessages","zhCN","saLang","saMessages","itIT","esES","en","enLang","zh","zhLang","ar","arLang","it","itLang","es","esLang","fr","frFR","dashBoardConfigs","lazy","errorPagesConfigs","authRouteConfig","ecommerceConfig","userPagesConfig","routeConfigs","createRoutes","exact","to","intl","innerWidth","useTheme","useMediaQuery","useWidth","keys","reverse","reduce","output","matches","allRoutes","forEach","setRoutes","products","filters","stringKey","filterKeys","Object","every","Array","isArray","some","keyEle","unit","IntlGlobalProvider","useIntl","appIntl","routeAuth","userRole","undefined","r","indexOf","getCustomers","setViewType","viewType","removeCartItem","updateCartItem","addItemToCart","counter","setFilters","API_URL","operationDate","onGetMenuItem","outletCode","getRecentOrders","tempdata","Payment","PymtStatus","formGetCSOOrderHistoryByPhoneNicknameJSON","confirmCSOOrders","hall","showtime","setSubmitting","redirectToPayment","redirectToMenuList","formConfirmCSOOrdersJSON","setOrderStatus","order","formOrderStatusFail","tmpCartItem","tmpCartItems","tmpTotal","phoneNo","parseFloat","json","stringify","setCurrentOrder","resetNewOrder","Status","RespStatus","RespDesc","RespDateTime","Transaction","TrxnOutletId","TrxnNo","TrxnDateTime","HallNo","ShowTime","PhoneNo","Nickname","Detail","Total","TrxnAmt","PymtCode","PymtDesc","PymtAmt","PymtStatusDesc","PymtDiscount","QRCode","getRegionList","getCinemaList","getCountryPhonePrefix","getCSOOrderHistoryByPhoneNickname","checkCSOOrderHistoryByLocation","formCheckCSOOrderHistoryByLocationJSON","idlist","getWebsiteStatus","updatePaymentStatus","booking","statusDesc","formUpdatePaymentStatusJSON","bookingid","InfoView","GridContainer","container","setCurrLoc","VIEW_TYPE","ecommerceList","LIST","currentProduct","brand","ideaFor","discount","currentOrder","newOrder","confirmOrderStatus","cinemaList","phonePrefixList","websiteStatus","regionList","inCart","confirmAlert","buttons","cartData","Seq","Quantity","hlbDiscountFlag","DetailDescription","IsSoldOut","SoldOutMessage","Limit_By_Tkt_Qty","tmpChild","countParents","Econs","countChild","Child","Taxes","Type","Code","Id","Rate","Enabled","Inclusive","newOrderData","tmpOrder","newOrderList","datalist","trxnNoList","trxnNo","Response","Body","HistoryDetail","match","oldOrderList","input","sort","x","y","pendOrderList","neworder","currOrderStatus","BookingId","Emall_req","closeOnClickOutside","newdata","tmpCinemaList","loccount","OutletId","Location","OutletName","Region","Address","StateCode","StateDesc","Epay_Enabled","Epay_Hidden","tmpPhonePrefixList","codecount","CountryCode","Phone","Prefix","tmpOrderList","ServiceStatus","whiteSpace","anchar","badgeRoot","boxDisplay","countDisplay","createBreakpoints","cardRadius","textColor","gray","A100","A200","A400","A700","danger","divider","typography","join","MuiTypography","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","FLUID","headerType","languageId","showMessage","onToggleAppDrawer"],"mappings":"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","file":"static/js/main.ad9957c4.chunk.js","sourcesContent":["// action strings\r\nexport const FETCH_START = 'FETCH_START';\r\nexport const FETCH_SUCCESS = 'FETCH_SUCCESS';\r\nexport const FETCH_ERROR = 'FETCH_ERROR';\r\nexport const SHOW_MESSAGE = 'SHOW_MESSAGE';\r\nexport const TOGGLE_APP_DRAWER = 'TOGGLE_APP_DRAWER';\r\nexport const HIDE_MESSAGE = 'HIDE_MESSAGE';\r\n\r\nexport interface FetchStartAction {\r\n type: typeof FETCH_START;\r\n}\r\n\r\nexport interface FetchSuccessAction {\r\n type: typeof FETCH_SUCCESS;\r\n}\r\n\r\nexport interface FetchErrorAction {\r\n type: typeof FETCH_ERROR;\r\n error: string;\r\n}\r\n\r\nexport interface ShowMessageAction {\r\n type: typeof SHOW_MESSAGE;\r\n message: string;\r\n}\r\n\r\nexport interface ToggleDrawerAction {\r\n type: typeof TOGGLE_APP_DRAWER;\r\n}\r\n\r\nexport interface HideMessageAction {\r\n type: typeof HIDE_MESSAGE;\r\n}\r\n\r\nexport type CommonActionTypes =\r\n | FetchStartAction\r\n | FetchSuccessAction\r\n | FetchErrorAction\r\n | ShowMessageAction\r\n | ToggleDrawerAction\r\n | HideMessageAction;\r\n","import firebase from 'firebase/app';\r\nimport 'firebase/auth';\r\nimport 'firebase/firestore';\r\n// Initialize Firebase\r\nconst firebaseConfig = {\r\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\r\n authDomain: 'crema-react.firebaseapp.com',\r\n databaseURL: 'https://crema-react.firebaseio.com',\r\n projectId: 'crema-react',\r\n storageBucket: 'crema-react.appspot.com',\r\n messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\r\n appId: process.env.REACT_APP_FIREBASE_APP_ID,\r\n measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,\r\n};\r\nif (!firebase.apps.length) {\r\n firebase.initializeApp(firebaseConfig);\r\n}\r\n\r\nconst auth = firebase.auth();\r\n\r\nconst googleAuthProvider = new firebase.auth.GoogleAuthProvider();\r\nconst githubAuthProvider = new firebase.auth.GithubAuthProvider();\r\nconst facebookAuthProvider = new firebase.auth.FacebookAuthProvider();\r\nconst twitterAuthProvider = new firebase.auth.TwitterAuthProvider();\r\n\r\nexport {\r\n auth,\r\n googleAuthProvider,\r\n githubAuthProvider,\r\n facebookAuthProvider,\r\n twitterAuthProvider,\r\n};\r\n","export enum ThemeStyle {\r\n MODERN = 'modern',\r\n STANDARD = 'standard',\r\n}\r\n\r\nexport enum ThemeStyleRadius {\r\n MODERN = 30,\r\n STANDARD = 4,\r\n}\r\n\r\nexport enum ThemeMode {\r\n LIGHT = 'light',\r\n SEMI_DARK = 'semi-dark',\r\n DARK = 'dark',\r\n}\r\n\r\nexport enum LayoutType {\r\n FULL_WIDTH = 'full-width',\r\n BOXED = 'boxed',\r\n}\r\n\r\nexport enum NavStyle {\r\n DEFAULT = 'default',\r\n MINI = 'mini',\r\n MINI_SIDEBAR_TOGGLE = 'mini-sidebar-toggle',\r\n STANDARD = 'standard',\r\n HEADER_USER = 'user-header',\r\n HEADER_USER_MINI = 'user-mini-header',\r\n DRAWER = 'drawer',\r\n BIT_BUCKET = 'bit-bucket',\r\n H_DEFAULT = 'h-default',\r\n HOR_LIGHT_NAV = 'hor-light-nav',\r\n HOR_DARK_LAYOUT = 'hor-dark-layout',\r\n}\r\n\r\nexport enum FooterType {\r\n FIXED = 'fixed',\r\n FLUID = 'fluid',\r\n}\r\n\r\nexport enum HeaderType {\r\n DARK = 'dark',\r\n LIGHT = 'light',\r\n}\r\n\r\nexport enum RouteTransition {\r\n NONE = 'none',\r\n FADE = 'fade',\r\n SLIDE_LEFT = 'slideLeft',\r\n SLIDE_RIGHT = 'slideRight',\r\n SLIDE_UP = 'slideUp',\r\n SLIDE_DOWN = 'slideDown',\r\n}\r\n\r\nexport enum Fonts {\r\n LIGHT = 300,\r\n REGULAR = 400,\r\n MEDIUM = 500,\r\n BOLD = 600,\r\n EXTRA_BOLD = 700,\r\n}\r\n\r\nexport enum AuthType {\r\n FIREBASE = 'firebase',\r\n AWS_COGNITO = 'aws_cognito',\r\n AUTH0 = 'auth0',\r\n JWT_AUTH = 'jwt_auth',\r\n LOC_AUTH = 'loc_auth',\r\n}\r\n\r\nexport enum APIBaseUrl {\r\n PROD = 'https://cso.gsc.com.my/',\r\n DEV = 'https://stagingheadoffice.gsc.com.my/',\r\n}","import React from 'react';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Box from '@material-ui/core/Box';\r\nimport NoSsr from '@material-ui/core/NoSsr';\r\n\r\ninterface LoaderProps {}\r\n\r\nconst Loader: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import React, {ReactNode} from 'react';\r\nimport {Loader} from '../../index';\r\n\r\ninterface SuspenseProps {\r\n children: ReactNode;\r\n}\r\n\r\nconst AppSuspense: React.FC = ({children}) => {\r\n return }>{children};\r\n};\r\n\r\nexport default AppSuspense;\r\n","import React from 'react';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport clsx from 'clsx';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: '0 7px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n height: 20,\r\n minWidth: 20,\r\n borderRadius: 20,\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: theme.palette.secondary.contrastText,\r\n },\r\n}));\r\n\r\ninterface BadgeProps {\r\n className?: string;\r\n count: any;\r\n color?: string;\r\n}\r\n\r\nconst Badge: React.FC = ({\r\n className,\r\n count,\r\n color = 'secondary',\r\n}) => {\r\n const classes = useStyles();\r\n\r\n if (color === 'primary') {\r\n color = 'primary.main';\r\n } else if (color === 'secondary') {\r\n color = 'secondary.main';\r\n }\r\n return (\r\n \r\n {count}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(Badge);\r\n","import React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\nimport LinkIcon from '@material-ui/icons/Link';\r\nimport Box from '@material-ui/core/Box';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport {Fonts} from '../../../shared/constants/AppEnums';\r\nimport AppAnimate from '../AppAnimate';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n containerHeader: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [theme.breakpoints.up('sm')]: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n },\r\n paddingBottom: 16,\r\n [theme.breakpoints.up('xl')]: {\r\n paddingTop: 16,\r\n },\r\n },\r\n linkIcon: {\r\n paddingLeft: 4,\r\n },\r\n textbase: {\r\n fontSize: 15,\r\n fontWeight: Fonts.REGULAR,\r\n },\r\n}));\r\n\r\ninterface ComponentHeaderProps {\r\n title: string;\r\n description?: string;\r\n refUrl?: string;\r\n}\r\n\r\nconst ComponentHeader: React.FC = ({\r\n title,\r\n description,\r\n refUrl,\r\n}) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n {description ? (\r\n \r\n {description}\r\n \r\n ) : null}\r\n \r\n {refUrl ? (\r\n \r\n \r\n Reference \r\n \r\n \r\n ) : null}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ComponentHeader;\r\n","import React, {useState} from 'react';\r\nimport {Card, makeStyles} from '@material-ui/core';\r\nimport CardHeader from '@material-ui/core/CardHeader';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport CodeIcon from '@material-ui/icons/Code';\r\nimport Highlight, {defaultProps} from 'prism-react-renderer';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport Scrollbar from '../Scrollbar';\r\nimport clsx from 'clsx';\r\nimport {highlightTheme} from './highlightTheme';\r\nimport Box from '@material-ui/core/Box';\r\nimport {Fonts} from '../../../shared/constants/AppEnums';\r\nimport AppAnimate from '../AppAnimate';\r\n\r\nconst useStyles = makeStyles(theme => {\r\n return {\r\n root: {\r\n borderRadius: 8,\r\n padding: 16,\r\n backgroundColor: theme.palette.background.default,\r\n },\r\n cardHeader: {\r\n paddingLeft: 32,\r\n paddingRight: 32,\r\n '& .MuiTypography-h5': {\r\n fontSize: 16,\r\n fontWeight: Fonts.BOLD,\r\n marginBottom: 1,\r\n },\r\n },\r\n cardContent: {\r\n paddingLeft: 32,\r\n paddingRight: 32,\r\n paddingTop: 0,\r\n },\r\n preTag: {\r\n borderRadius: 8,\r\n padding: 12,\r\n },\r\n };\r\n});\r\n\r\ninterface ComponentCardProps {\r\n title?: any;\r\n maxHeight: number;\r\n description?: any;\r\n component: any;\r\n source: any;\r\n}\r\n\r\nconst ComponentCard: React.FC = ({\r\n title,\r\n maxHeight = 500,\r\n description = '',\r\n component: Component,\r\n source,\r\n}) => {\r\n const [viewSource, setToggleViewSource] = useState(false);\r\n const [animation, setAnimation] = useState(false);\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n if (animation) {\r\n setAnimation(!animation);\r\n setTimeout(() => setToggleViewSource(!viewSource), 400);\r\n } else {\r\n setAnimation(!animation);\r\n setToggleViewSource(!viewSource);\r\n }\r\n }}>\r\n \r\n \r\n \r\n ) : null\r\n }\r\n />\r\n\r\n \r\n \r\n {viewSource ? (\r\n \r\n \r\n {({\r\n className,\r\n style,\r\n tokens,\r\n getLineProps,\r\n getTokenProps,\r\n }) => (\r\n \r\n {tokens.map((line, i) => (\r\n \r\n {line.map((token, key) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ComponentCard;\r\n","import React, {useContext, useState} from 'react';\r\nimport AppContext from '../../utility/AppContext';\r\nimport {SketchPicker} from 'react-color';\r\nimport {makeStyles} from '@material-ui/core/index';\r\nimport Box from '@material-ui/core/Box';\r\nimport {CremaTheme} from '../../../types/AppContextPropsType';\r\nimport {grey} from '@material-ui/core/colors';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => {\r\n return {\r\n cpSwatch: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n position: 'relative',\r\n cursor: 'pointer',\r\n marginBottom: 10,\r\n marginRight: 10,\r\n },\r\n cpColor: {\r\n width: 30,\r\n height: 16,\r\n backgroundColor: theme.palette.primary.main,\r\n border: `solid 1px ${grey[100]}`,\r\n marginRight: 10,\r\n [theme.breakpoints.up('xl')]: {\r\n width: 40,\r\n height: 26,\r\n },\r\n },\r\n cpPopover: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n zIndex: 1,\r\n },\r\n };\r\n});\r\ninterface PrimaryColorPickerProps {}\r\n\r\nconst PrimaryColorPicker: React.FC = () => {\r\n const [visible, setVisibility] = useState(false);\r\n const {primary, theme, updateTheme} = useContext(AppContext);\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n setVisibility(!visible)}>\r\n \r\n \r\n Primary\r\n \r\n \r\n {visible ? (\r\n setVisibility(!visible)}>\r\n {\r\n theme.palette.primary.main = color.hex;\r\n updateTheme!(theme);\r\n }}\r\n />\r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default PrimaryColorPicker;\r\n","import {LayoutType, NavStyle} from '../../../shared/constants/AppEnums';\r\n\r\nexport const navStyles = [\r\n {\r\n id: 1,\r\n alias: NavStyle.STANDARD,\r\n image: '/assets/images/navigationStyle/nav4.png',\r\n },\r\n {\r\n id: 2,\r\n alias: NavStyle.DEFAULT,\r\n image: '/assets/images/navigationStyle/nav2.png',\r\n },\r\n {\r\n id: 3,\r\n alias: NavStyle.MINI_SIDEBAR_TOGGLE,\r\n image: '/assets/images/navigationStyle/nav3.png',\r\n },\r\n {\r\n id: 4,\r\n alias: NavStyle.HEADER_USER,\r\n image: '/assets/images/navigationStyle/nav9.png',\r\n },\r\n {\r\n id: 5,\r\n alias: NavStyle.HEADER_USER_MINI,\r\n image: '/assets/images/navigationStyle/nav10.png',\r\n },\r\n {\r\n id: 6,\r\n alias: NavStyle.MINI,\r\n image: '/assets/images/navigationStyle/nav3.png',\r\n },\r\n {\r\n id: 7,\r\n alias: NavStyle.DRAWER,\r\n image: '/assets/images/navigationStyle/nav5.png',\r\n },\r\n {\r\n id: 8,\r\n alias: NavStyle.BIT_BUCKET,\r\n image: '/assets/images/navigationStyle/nav1.png',\r\n },\r\n {\r\n id: 9,\r\n alias: NavStyle.H_DEFAULT,\r\n image: '/assets/images/navigationStyle/nav8.png',\r\n },\r\n {\r\n id: 10,\r\n alias: NavStyle.HOR_LIGHT_NAV,\r\n image: '/assets/images/navigationStyle/nav6.png',\r\n },\r\n {\r\n id: 11,\r\n alias: NavStyle.HOR_DARK_LAYOUT,\r\n image: '/assets/images/navigationStyle/nav7.png',\r\n },\r\n];\r\n\r\nexport const layoutTypes = [\r\n {\r\n id: 1,\r\n alias: LayoutType.FULL_WIDTH,\r\n image: '/assets/images/layouts/full width.png',\r\n },\r\n {\r\n id: 2,\r\n alias: LayoutType.BOXED,\r\n image: '/assets/images/layouts/boxed.png',\r\n },\r\n];\r\n","import {makeStyles} from '@material-ui/core';\r\nimport {orange} from '@material-ui/core/colors';\r\nimport {CremaTheme} from '../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n customizerOption: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 85,\r\n zIndex: 1110,\r\n [theme.breakpoints.up('xl')]: {\r\n top: 125,\r\n },\r\n },\r\n customizerButton: {\r\n borderRadius: '30px 0 0 30px',\r\n backgroundColor: orange[500],\r\n '&:hover': {\r\n backgroundColor: orange[700],\r\n },\r\n '& button': {\r\n borderRadius: '30px 0 0 30px',\r\n\r\n '&:focus': {\r\n borderRadius: '30px 0 0 30px',\r\n },\r\n },\r\n },\r\n rightSidebar: {\r\n width: 300,\r\n [theme.breakpoints.up('xl')]: {\r\n width: 400,\r\n },\r\n },\r\n rightSidebarHeader: {\r\n padding: '20px',\r\n borderBottom: '1px solid #e0e0e0',\r\n [theme.breakpoints.up('xl')]: {\r\n padding: '28px 22px',\r\n },\r\n },\r\n rightSidebarMain: {\r\n padding: '20px',\r\n [theme.breakpoints.up('xl')]: {\r\n padding: '28px 22px',\r\n },\r\n },\r\n customizerItem: {\r\n '&:not(:last-child)': {\r\n borderBottom: ['1px solid #e0e0e0'],\r\n paddingBottom: 20,\r\n marginBottom: 20,\r\n [theme.breakpoints.up('xl')]: {\r\n paddingBottom: 30,\r\n marginBottom: 30,\r\n },\r\n },\r\n },\r\n colorRow: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n position: 'relative',\r\n },\r\n navOption: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n marginLeft: '-10px',\r\n marginRight: '-10px',\r\n },\r\n navOptionItem: {\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n marginBottom: 20,\r\n },\r\n navOptionContent: {\r\n position: 'relative',\r\n cursor: 'pointer',\r\n },\r\n navOptionRightIcon: {\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 20,\r\n height: 20,\r\n borderRadius: '50%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n backgroundColor: theme.palette.primary.main,\r\n color: '',\r\n },\r\n selectBox: {\r\n '& .MuiOutlinedInput-input': {\r\n padding: '12px 32px 12px 14px',\r\n },\r\n },\r\n toggleBtn: {\r\n height: 36,\r\n backgroundColor: theme.palette.background.paper,\r\n color: theme.palette.primary.main,\r\n borderColor: theme.palette.primary.main,\r\n '&:not(:first-child)': {\r\n borderColor: theme.palette.primary.main,\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n height: 48,\r\n minWidth: 96,\r\n },\r\n '&:hover,&:focus': {\r\n backgroundColor: theme.palette.background.paper,\r\n color: theme.palette.primary.main,\r\n },\r\n '&.active': {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n '&:hover,&:focus': {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n },\r\n },\r\n colorOptionList: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n margin: '0 -5px',\r\n padding: 0,\r\n listStyle: 'none',\r\n '& > li': {\r\n padding: '0 5px',\r\n marginBottom: 10,\r\n },\r\n },\r\n wFull: {\r\n width: '100%',\r\n },\r\n textWhite: {\r\n color: 'white',\r\n },\r\n mb5: {\r\n marginBottom: 20,\r\n },\r\n}));\r\nexport default useStyles;\r\n","import {makeStyles} from '@material-ui/core';\r\nimport {CremaTheme} from '../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n colorOption: {\r\n position: 'relative',\r\n overflow: 'hidden',\r\n cursor: 'pointer',\r\n border: `1px solid ${theme.palette.text.primary}`,\r\n },\r\n colorOptionTriangle: {\r\n transform: 'rotate(45deg)',\r\n marginTop: 10,\r\n marginLeft: 22,\r\n },\r\n colorOptionBorder: {\r\n width: 10,\r\n height: '100%',\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n zIndex: 2,\r\n },\r\n colorOptionRightIcon: {\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 20,\r\n height: 20,\r\n borderRadius: '50%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n backgroundColor: '#fff',\r\n color: theme.palette.primary.main,\r\n },\r\n textBase: {\r\n fontSize: 16,\r\n },\r\n}));\r\nexport default useStyles;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport {amber, green} from '@material-ui/core/colors';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport {CremaTheme} from '../../../types/AppContextPropsType';\r\n\r\ntype Variant = 'error' | 'info' | 'success' | 'warning';\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon,\r\n};\r\nconst useStyles1 = makeStyles((theme: CremaTheme) => ({\r\n success: {\r\n backgroundColor: green[600],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n warning: {\r\n backgroundColor: amber[700],\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing(1),\r\n },\r\n message: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\ninterface AppSnackbarProps {\r\n className?: string;\r\n message: string;\r\n variant: Variant;\r\n\r\n [x: string]: any;\r\n}\r\n\r\nconst AppSnackbar: React.FC = ({\r\n className,\r\n message,\r\n variant,\r\n ...other\r\n}) => {\r\n const classes = useStyles1();\r\n\r\n const [open, setOpen] = React.useState(true);\r\n const Icon = variantIcon[variant];\r\n\r\n const onClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n {...other}\r\n />\r\n \r\n );\r\n};\r\nexport default AppSnackbar;\r\n","import React, {useContext} from 'react';\r\nimport AppContext from '../../utility/AppContext';\r\nimport Box from '@material-ui/core/Box';\r\nimport {Button, makeStyles} from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport AppContextPropsType, {\r\n CremaTheme,\r\n} from '../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n footer: {\r\n margin: '20px -20px 0',\r\n backgroundColor: theme.palette.background.paper,\r\n color: theme.palette.text.primary,\r\n [theme.breakpoints.up('md')]: {\r\n marginLeft: '-32px',\r\n marginRight: '-32px',\r\n marginTop: 30,\r\n },\r\n '& .footerContainer': {\r\n padding: '5px 20px',\r\n [theme.breakpoints.up('md')]: {\r\n paddingLeft: 32,\r\n paddingRight: 32,\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n padding: '10px 32px',\r\n },\r\n },\r\n },\r\n btnRoot: {\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n },\r\n}));\r\n\r\ninterface AppFooterProps {}\r\n\r\nconst AppFooter: React.FC = () => {\r\n const {footer, footerType, navStyle} = useContext(\r\n AppContext,\r\n );\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n {footer &&\r\n footerType === 'fluid' &&\r\n navStyle !== 'h-default' &&\r\n navStyle !== 'hor-light-nav' &&\r\n navStyle !== 'hor-dark-layout' ? (\r\n \r\n \r\n Copy right @crema 2020\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default AppFooter;\r\n","import React, {ErrorInfo} from 'react';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nclass AppErrorBoundary extends React.Component<{}, {hasError: boolean}> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {hasError: false};\r\n }\r\n\r\n static getDerivedStateFromError() {\r\n // Update state so the next render will show the fallback UI.\r\n return {hasError: true};\r\n }\r\n\r\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\r\n // You can also log the error to an error reporting service\r\n console.log('errorInfo: ', errorInfo);\r\n // logErrorToMyService(error, errorInfo);\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n return (\r\n \r\n {/* Error Info */}\r\n \r\n Ah! Something went wrong.\r\n \r\n \r\n Brace yourself till we get the error fixed.\r\n \r\n \r\n You may also refresh the page or try again later.\r\n \r\n \r\n );\r\n } else {\r\n return this.props.children;\r\n }\r\n }\r\n}\r\n\r\nexport default AppErrorBoundary;\r\n","import React, {useContext} from 'react';\r\nimport {renderRoutes} from 'react-router-config';\r\nimport {CSSTransition, TransitionGroup} from 'react-transition-group';\r\nimport {useLocation} from 'react-router-dom';\r\nimport {AppSuspense} from '../../index';\r\nimport routes from '../../../modules';\r\nimport Scrollbar from '../Scrollbar';\r\nimport AppContext from '../../utility/AppContext';\r\nimport AppFooter from '../AppLayout/AppFooter';\r\nimport Box from '@material-ui/core/Box';\r\nimport {RouteTransition} from '../../../shared/constants/AppEnums';\r\nimport AppErrorBoundary from '../AppErrorBoundary';\r\nimport AppContextPropsType from '../../../types/AppContextPropsType';\r\n\r\ninterface TransitionWrapperProps {\r\n children: any;\r\n}\r\n\r\nconst TransitionWrapper: React.FC = ({children}) => {\r\n const {rtAnim} = useContext(AppContext);\r\n const location = useLocation();\r\n if (rtAnim === RouteTransition.NONE) {\r\n return <>{children};\r\n }\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nconst ContentView = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n {renderRoutes(routes)}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContentView;\r\n","import React, {ReactNode, useEffect, useRef} from 'react';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport {useLocation} from 'react-router-dom';\r\n\r\ninterface ScrollbarProps {\r\n children: ReactNode;\r\n className?: string;\r\n scrollToTop?: boolean;\r\n\r\n [x: string]: any;\r\n}\r\n\r\nconst Scrollbar: React.FC = React.forwardRef((props, ref) => {\r\n const {children, scrollToTop = true, className = '', ...others} = props;\r\n let _scrollBarRef = useRef(null);\r\n const {pathname} = useLocation();\r\n\r\n useEffect(() => {\r\n if (scrollToTop && _scrollBarRef) {\r\n // @ts-ignore\r\n _scrollBarRef._container.scrollTop = 0;\r\n }\r\n }, [_scrollBarRef, pathname, scrollToTop]);\r\n\r\n return (\r\n {\r\n // @ts-ignore\r\n _scrollBarRef = ref;\r\n }}\r\n {...others}\r\n className={className}>\r\n {children}\r\n \r\n );\r\n});\r\n\r\nexport default Scrollbar;\r\n","import {UserList} from '../../@crema/services/db/userList';\r\nimport {GET_USER_LIST} from '../../types/actions/UserList.actions';\r\nimport {AppActions} from '../../types';\r\n\r\nlet initialState: {usersList: UserList[]};\r\ninitialState = {\r\n usersList: [],\r\n};\r\n\r\nconst userListReducer = (state = initialState, action: AppActions) => {\r\n switch (action.type) {\r\n case GET_USER_LIST:\r\n return {\r\n ...state,\r\n usersList: action.payload,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default userListReducer;\r\n","import React, {ReactNode, useContext, useEffect} from 'react';\r\nimport {useHistory, useLocation} from 'react-router-dom';\r\nimport { useSelector} from 'react-redux';\r\nimport {matchRoutes} from 'react-router-config';\r\nimport qs from 'qs';\r\nimport AppContext from './AppContext';\r\nimport {useAuthToken} from './AppHooks';\r\nimport {Loader} from '../index';\r\nimport {checkPermission} from './Utils';\r\nimport {menuUrl, invalidUrl} from '../../shared/constants/AppConst';\r\n//import {initialUrl} from '../../shared/constants/AppConst';\r\n//import {setInitialPath} from '../../redux/actions';\r\nimport {AppState} from '../../redux/store';\r\nimport AppContextPropsType from '../../types/AppContextPropsType';\r\nimport {NavStyle, ThemeMode, ThemeStyle} from '../../shared/constants/AppEnums';\r\n\r\ninterface AuthRoutesProps {\r\n children: ReactNode;\r\n}\r\n\r\nconst AuthRoutes: React.FC = ({children}) => {\r\n const {pathname, search} = useLocation();\r\n //const dispatch = useDispatch();\r\n const history = useHistory();\r\n const {\r\n routes,\r\n changeNavStyle,\r\n updateThemeStyle,\r\n updateThemeMode,\r\n setRTL,\r\n } = useContext(AppContext);\r\n\r\n const [loading, user] = useAuthToken();\r\n const {initialPath} = useSelector(\r\n ({settings}) => settings,\r\n );\r\n const {loc} = useSelector(({currLoc}) => currLoc);\r\n const currentRoute = matchRoutes(routes, pathname)[0].route;\r\n let isPermitted = checkPermission(currentRoute.auth, user ? user.role : null);\r\n\r\n // useEffect(() => {\r\n // function setInitPath() {\r\n // if (\r\n // initialPath === '/' &&\r\n // [\r\n // '/home',\r\n // '/error-pages/error-404',\r\n // '/forget-password',\r\n // '/dashboards/e-commerce',\r\n // '/ecommerce/cart',\r\n // '/order',\r\n // '/orderView',\r\n // '/ecommerce/neworder',\r\n // ].indexOf(pathname) === -1\r\n // ) {\r\n // if (isPermitted) {\r\n // dispatch(setInitialPath(pathname));\r\n // } else {\r\n // dispatch(setInitialPath(undefined));\r\n // }\r\n // }\r\n // }\r\n\r\n // setInitPath();\r\n // }, [dispatch, isPermitted, initialPath, pathname]);\r\n\r\n useEffect(() => {\r\n function handleQueryParams() {\r\n const query = qs.parse(search.split('?')[1]);\r\n if (query.layout) {\r\n changeNavStyle(query.layout as NavStyle);\r\n }\r\n if (query.mode) {\r\n updateThemeMode(query.mode as ThemeMode);\r\n }\r\n if (query.rtl) {\r\n setRTL(true);\r\n }\r\n if (query.style) {\r\n updateThemeStyle!(query.style as ThemeStyle);\r\n }\r\n }\r\n\r\n if (search) {\r\n handleQueryParams();\r\n }\r\n }, [changeNavStyle, updateThemeMode, setRTL, updateThemeStyle, search]);\r\n\r\n useEffect(() => {\r\n if (!loading) {\r\n if (!user && !isPermitted) {\r\n if( pathname === '/home')\r\n {\r\n history.push('/home');\r\n }else\r\n {\r\n history.push(invalidUrl);\r\n }\r\n } else if (user && !isPermitted) {\r\n history.push(invalidUrl); // Not found\r\n } else if (user && isPermitted) {\r\n if (\r\n pathname === '/' ||\r\n pathname === '/home' ||\r\n pathname === menuUrl\r\n ) {\r\n history.push(menuUrl);\r\n } else {\r\n if (\r\n initialPath &&\r\n menuUrl !== initialPath &&\r\n initialPath !== '/'\r\n ) {\r\n history.push(initialPath);\r\n }\r\n }\r\n }\r\n }\r\n }, [user, loading, initialPath, isPermitted, pathname, history, loc]);\r\n\r\n return loading ? : <>{children};\r\n};\r\n\r\nexport default AuthRoutes;\r\n","import {useDispatch, useSelector} from 'react-redux';\r\nimport {useEffect, useState} from 'react';\r\nimport {Hub} from 'aws-amplify';\r\n//import {auth as firebaseAuth} from '../services/auth/firebase/firebase';\r\nimport {\r\n fetchStart,\r\n fetchSuccess,\r\n onGetLoggedInCognitoUser,\r\n setJWTToken,\r\n} from '../../redux/actions';\r\nimport {AuthType} from '../../shared/constants/AppEnums';\r\nimport {defaultUser, phase} from '../../shared/constants/AppConst';\r\nimport jwtAxios from '../services/auth/jwt-auth/jwt-api';\r\nimport {AppState} from '../../redux/store';\r\nimport {UPDATE_AUTH_USER} from '../../types/actions/Auth.actions';\r\n//import {AuthLoc} from '../../types/models/AuthLoc';\r\nimport {AuthUser} from '../../types/models/AuthUser';\r\n\r\nexport const useAuthToken = (): [boolean, AuthUser | null] => {\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(true);\r\n const {user} = useSelector(({auth}) => auth);\r\n //const {user} = useSelector(({auth}) => auth);\r\n\r\n useEffect(() => {\r\n // const awsAuthUser = () =>\r\n // new Promise(resolve => {\r\n // awsAuth\r\n // .currentAuthenticatedUser()\r\n // .then(user => {\r\n // resolve();\r\n // if (user) {\r\n // dispatch({\r\n // type: UPDATE_AUTH_USER,\r\n // payload: {\r\n // authType: AuthType.AWS_COGNITO,\r\n // uid: user.username,\r\n // displayName: user.attributes.name,\r\n // email: user.attributes.email,\r\n // role: defaultUser.role,\r\n // photoURL: user.photoURL,\r\n // token: user.signInUserSession.accessToken.jwtToken,\r\n // },\r\n // });\r\n // }\r\n // })\r\n // .catch(function(error) {\r\n // resolve();\r\n // });\r\n // return Promise.resolve();\r\n // });\r\n\r\n // const firebaseCheck = () =>\r\n // new Promise(resolve => {\r\n // firebaseAuth.onAuthStateChanged(authUser => {\r\n // if (authUser) {\r\n // dispatch({\r\n // type: UPDATE_AUTH_USER,\r\n // payload: {\r\n // authType: AuthType.FIREBASE,\r\n // uid: authUser.uid,\r\n // displayName: authUser.displayName,\r\n // email: authUser.email,\r\n // role: defaultUser.role,\r\n // photoURL: authUser.photoURL,\r\n // token: authUser.refreshToken,\r\n // },\r\n // });\r\n // }\r\n // resolve();\r\n // });\r\n // return Promise.resolve();\r\n // });\r\n\r\n const validateAuth = async () => {\r\n dispatch(fetchStart());\r\n const token = localStorage.getItem(phase+'_GSC_token');\r\n if (!token) {\r\n dispatch(fetchSuccess());\r\n return;\r\n }\r\n dispatch(setJWTToken(token));\r\n try {\r\n const res = await jwtAxios.get('/auth');\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: UPDATE_AUTH_USER,\r\n payload: {\r\n authType: AuthType.JWT_AUTH,\r\n displayName: res.data.name,\r\n email: res.data.email,\r\n role: defaultUser.role,\r\n token: res.data._id,\r\n photoURL: res.data.avatar,\r\n },\r\n });\r\n return;\r\n } catch (err) {\r\n dispatch(fetchSuccess());\r\n return;\r\n }\r\n };\r\n\r\n const checkAuth = () => {\r\n Promise.all([validateAuth()]).then(() => {\r\n setLoading(false);\r\n });\r\n Hub.listen('auth', ({payload: {event, data}}) => {\r\n switch (event) {\r\n case 'signIn':\r\n dispatch(onGetLoggedInCognitoUser());\r\n break;\r\n case 'signOut':\r\n dispatch({type: UPDATE_AUTH_USER, payload: null});\r\n break;\r\n default:\r\n return false;\r\n }\r\n });\r\n };\r\n\r\n //for Location\r\n // const validateAuth = async () => {\r\n // dispatch(fetchStart());\r\n // const token = localStorage.getItem('GSC_token');\r\n // if (!token) {\r\n // dispatch(fetchSuccess());\r\n // return;\r\n // }\r\n // dispatch(setJWTToken(token));\r\n // try {\r\n // const res = await jwtAxios.get('/auth');\r\n // dispatch(fetchSuccess());\r\n // dispatch({\r\n // type: UPDATE_AUTH_USER,\r\n // payload: {\r\n // authType: AuthType.JWT_AUTH,\r\n // displayName: res.data.name,\r\n // email: res.data.email,\r\n // role: defaultUser.role,\r\n // token: token,\r\n // photoURL: res.data.avatar,\r\n // },\r\n // });\r\n // return;\r\n // } catch (err) {\r\n // dispatch(fetchSuccess());\r\n // return;\r\n // }\r\n // };\r\n checkAuth();\r\n }, [dispatch]);\r\n\r\n return [loading, user];\r\n};\r\n\r\nexport const useAuthUser = (): AuthUser | null => {\r\n const {user} = useSelector(({auth}) => auth);\r\n if (user) {\r\n return user;\r\n }\r\n return null;\r\n};\r\n\r\n// export const useAuthLoc = (): AuthLoc | null => {\r\n// const {loc} = useSelector(({authloc}) => authloc);\r\n// if (loc) {\r\n// return loc;\r\n// }\r\n// return null;\r\n// };\r\n","import {Setting} from '../../types/models/Setting';\r\nimport {\r\n ROUTE_CHANGE,\r\n SET_INITIAL_PATH,\r\n SettingsActionTypes,\r\n TOGGLE_NAV_COLLAPSED,\r\n} from '../../types/actions/Settings.action';\r\n\r\nconst initialSettings: Setting = {\r\n navCollapsed: false,\r\n initialPath: '/',\r\n};\r\n\r\nconst Settings = (state = initialSettings, action: SettingsActionTypes) => {\r\n switch (action.type) {\r\n case ROUTE_CHANGE:\r\n return {\r\n ...state,\r\n navCollapsed: false,\r\n };\r\n\r\n case TOGGLE_NAV_COLLAPSED:\r\n return {\r\n ...state,\r\n navCollapsed: !state.navCollapsed,\r\n };\r\n\r\n case SET_INITIAL_PATH:\r\n return {\r\n ...state,\r\n initialPath: action.initialPath,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default Settings;\r\n","import {Common} from '../../types/models/Common';\r\nimport {\r\n CommonActionTypes,\r\n FETCH_ERROR,\r\n FETCH_START,\r\n FETCH_SUCCESS,\r\n HIDE_MESSAGE,\r\n SHOW_MESSAGE,\r\n TOGGLE_APP_DRAWER,\r\n} from '../../types/actions/Common.action';\r\n\r\nconst INIT_STATE: Common = {\r\n error: '',\r\n loading: false,\r\n isAppDrawerOpen: false,\r\n updatingContent: false,\r\n message: '',\r\n};\r\n\r\nconst CommonReducer = (\r\n state = INIT_STATE,\r\n action: CommonActionTypes,\r\n): Common => {\r\n switch (action.type) {\r\n case FETCH_START: {\r\n return {...state, error: '', message: '', loading: true};\r\n }\r\n case FETCH_SUCCESS: {\r\n return {\r\n ...state,\r\n error: '',\r\n message: '',\r\n loading: false,\r\n updatingContent: false,\r\n };\r\n }\r\n case SHOW_MESSAGE: {\r\n return {\r\n ...state,\r\n error: '',\r\n message: action.message,\r\n loading: false,\r\n updatingContent: false,\r\n };\r\n }\r\n case FETCH_ERROR: {\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error,\r\n message: '',\r\n updatingContent: false,\r\n };\r\n }\r\n case HIDE_MESSAGE: {\r\n return {\r\n ...state,\r\n loading: false,\r\n error: '',\r\n message: '',\r\n updatingContent: false,\r\n };\r\n }\r\n case TOGGLE_APP_DRAWER: {\r\n return {\r\n ...state,\r\n isAppDrawerOpen: !state.isAppDrawerOpen,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default CommonReducer;\r\n","import {AppActions} from '../../types';\r\nimport {\r\n SET_AUTH_TOKEN,\r\n SIGNOUT_AUTH_SUCCESS,\r\n UPDATE_AUTH_USER,\r\n} from '../../types/actions/Auth.actions';\r\nimport {AuthUser} from '../../types/models/AuthUser';\r\n\r\nconst INIT_STATE: {user: AuthUser | null; token: string | null} = {\r\n user: null,\r\n token: null,\r\n};\r\n\r\nconst Auth = (state = INIT_STATE, action: AppActions) => {\r\n switch (action.type) {\r\n case UPDATE_AUTH_USER: {\r\n return {\r\n ...state,\r\n user: action.payload,\r\n };\r\n }\r\n case SIGNOUT_AUTH_SUCCESS: {\r\n return {\r\n ...state,\r\n user: null,\r\n };\r\n }\r\n case SET_AUTH_TOKEN: {\r\n return {\r\n ...state,\r\n token: action.payload,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default Auth;\r\n","import {AppActions} from '../../types';\r\nimport {\r\n SET_LOC,\r\n //UPDATE_LOC,\r\n //GET_CURR_LOC,\r\n} from '../../types/actions/CurrLoc.actions';\r\nimport {Loc} from '../../types/models/Loc';\r\n\r\nconst INIT_STATE: {\r\n loc: Loc \r\n} = {\r\n loc: {locid:'', locname:'', locstate:''},\r\n};\r\n\r\nconst CurrLoc = (state = INIT_STATE, action: AppActions) => {\r\n switch (action.type) {\r\n // case UPDATE_LOC: {\r\n // return {\r\n // ...state,\r\n // loc: action.payload,\r\n // };\r\n // }\r\n \r\n case SET_LOC: {\r\n return {\r\n ...state,\r\n loc: action.payload,\r\n };\r\n }\r\n\r\n // case GET_CURR_LOC: {\r\n // return {\r\n // ...state,\r\n // loc: action.payload,\r\n // };\r\n // }\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default CurrLoc;\r\n","import {\r\n DashboardActionTypes,\r\n GET_ACADEMY_DATA,\r\n GET_ANALYTICS_DATA,\r\n GET_CRM_DATA,\r\n GET_CRYPTO_DATA,\r\n GET_ECOMMERCE_DATA,\r\n GET_HEALTH_CARE_DATA,\r\n GET_METRICS_DATA,\r\n GET_WIDGETS_DATA,\r\n} from '../../types/actions/Dashboard.action';\r\nimport {Metrics} from '../../types/models/dashboards/Metrics';\r\nimport {Analytics} from '../../types/models/dashboards/Analytics';\r\nimport {CRM} from '../../types/models/dashboards/CRM';\r\nimport {Crypto} from '../../types/models/dashboards/Crypto';\r\nimport {Widgets} from '../../types/models/dashboards/Widgets';\r\nimport {Academy} from '../../types/models/dashboards/Academy';\r\nimport {Ecommerce} from '../../types/models/dashboards/Ecommerce';\r\nimport {HealthCare} from '../../types/models/dashboards/HealthCare';\r\nimport {ProductData} from '../../types/models/ecommerce/EcommerceApp';\r\n\r\nconst initialState: {\r\n academyData: Academy | null;\r\n ecommerceData: Ecommerce | null;\r\n healthCare: HealthCare | null;\r\n analyticsData: Analytics | null;\r\n crmData: CRM | null;\r\n cryptoData: Crypto | null;\r\n metricsData: Metrics | null;\r\n widgetsData: Widgets | null;\r\n productData: ProductData | null;\r\n} = {\r\n ecommerceData: null,\r\n healthCare: null,\r\n academyData: null,\r\n analyticsData: null,\r\n crmData: null,\r\n cryptoData: null,\r\n metricsData: null,\r\n widgetsData: null,\r\n productData: null,\r\n};\r\n\r\nconst Dashboard = (state = initialState, action: DashboardActionTypes) => {\r\n switch (action.type) {\r\n case GET_ANALYTICS_DATA:\r\n return {\r\n ...state,\r\n analyticsData: action.payload,\r\n };\r\n case GET_ECOMMERCE_DATA:\r\n return {\r\n ...state,\r\n ecommerceData: action.payload,\r\n };\r\n case GET_HEALTH_CARE_DATA:\r\n return {\r\n ...state,\r\n healthCare: action.payload,\r\n };\r\n case GET_CRM_DATA:\r\n return {\r\n ...state,\r\n crmData: action.payload,\r\n };\r\n\r\n case GET_CRYPTO_DATA:\r\n return {\r\n ...state,\r\n cryptoData: action.payload,\r\n };\r\n\r\n case GET_ACADEMY_DATA:\r\n return {\r\n ...state,\r\n academyData: action.payload,\r\n };\r\n\r\n case GET_METRICS_DATA:\r\n return {\r\n ...state,\r\n metricsData: action.payload,\r\n };\r\n\r\n case GET_WIDGETS_DATA:\r\n return {\r\n ...state,\r\n widgetsData: action.payload,\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n};\r\nexport default Dashboard;\r\n","import {LocList} from '../../@crema/services/db/locList';\r\nimport {GET_LOC_LIST} from '../../types/actions/LocList.actions';\r\nimport {AppActions} from '../../types';\r\n\r\nlet initialState: {locsList: LocList[]};\r\ninitialState = {\r\n locsList: [],\r\n};\r\n\r\nconst locListReducer = (state = initialState, action: AppActions) => {\r\n switch (action.type) {\r\n case GET_LOC_LIST:\r\n return {\r\n ...state,\r\n locsList: action.payload,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default locListReducer;\r\n","import Settings from './Setting';\r\nimport CommonReducer from './CommonReducer';\r\nimport Auth from './Auth';\r\nimport CurrLoc from './CurrLoc';\r\nimport Dashboard from './Dashboard';\r\nimport Ecommerce from './Ecommerce';\r\nimport UserList from './UserList';\r\nimport LocList from './LocList';\r\n\r\nconst reducers = {\r\n settings: Settings,\r\n auth: Auth,\r\n currLoc: CurrLoc,\r\n dashboard: Dashboard,\r\n ecommerce: Ecommerce,\r\n common: CommonReducer,\r\n userList: UserList,\r\n locList: LocList,\r\n};\r\n\r\nexport default reducers;\r\n","import {applyMiddleware, combineReducers, compose, createStore} from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport {connectRouter, routerMiddleware} from 'connected-react-router';\r\nimport reducers from '../reducers';\r\nimport {setAuthToken} from '../../@crema/services/auth/jwt-auth/jwt-api';\r\n\r\nconst createBrowserHistory = require('history').createBrowserHistory;\r\n//const history = createBrowserHistory();\r\n\r\nconst history = createBrowserHistory({\r\n basename: process.env.PUBLIC_URL\r\n});\r\n\r\nconst rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history),\r\n});\r\n\r\n\r\nexport type AppState = ReturnType;\r\n\r\nexport default function configureStore(initialState?: AppState) {\r\n const middleware = [thunk, routerMiddleware(history)];\r\n\r\n const enhancers = [];\r\n const windowIfDefined =\r\n typeof window === 'undefined' ? null : (window as any);\r\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\r\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\r\n }\r\n\r\n const store = createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers),\r\n );\r\n let currentState = store.getState();\r\n store.subscribe(() => {\r\n // keep track of the previous and current state to compare changesAppLayout/index.j\r\n let previousState = currentState;\r\n currentState = store.getState();\r\n // if the token changes set the value in localStorage and axios headers\r\n if (previousState.auth.token !== currentState.auth.token) {\r\n const token = currentState.auth.token;\r\n setAuthToken(token);\r\n }\r\n });\r\n return store;\r\n}\r\n\r\nexport {history};\r\n\r\n// export type AppState = ReturnType;\r\n","//import React from 'react';\r\nimport {Provider} from 'react-redux';\r\nimport {ConnectedRouter} from 'connected-react-router';\r\nimport AppLayout from './@crema/core/AppLayout';\r\nimport AuthRoutes from './@crema/utility/AuthRoutes';\r\nimport LocaleProvider from './@crema/utility/LocaleProvider';\r\nimport CremaThemeProvider from './@crema/utility/CremaThemeProvider';\r\nimport CremaStyleProvider from './@crema/utility/CremaStyleProvider';\r\nimport ContextProvider from './@crema/utility/ContextProvider';\r\nimport { CookiesProvider } from 'react-cookie'; \r\nimport configureStore, {history} from './redux/store';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\n\r\nconst store = configureStore();\r\n\r\nconst App = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default App;\r\n","import axios from './ApiConfig';\r\n\r\nconst MockAdapter = require('axios-mock-adapter');\r\n\r\nexport default new MockAdapter(axios, {delayResponse: 200});\r\n","//initialize firebase\r\nimport './firebase/firebase';\r\nimport './jwt-auth/jwt-api';\r\n\r\nimport Amplify from 'aws-amplify';\r\nimport {awsConfig} from './aws-cognito/aws-exports';\r\n//initialize aws\r\nAmplify.configure(awsConfig);\r\n","// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\r\n\r\nexport const awsConfig = {\r\n aws_project_region: 'us-east-1',\r\n aws_cognito_identity_pool_id:\r\n 'us-east-1:e7ff8039-eaba-4b54-acde-d2d17edb2dce',\r\n aws_cognito_region: 'us-east-1',\r\n aws_user_pools_id: 'us-east-1_p7i7U9Clu',\r\n aws_user_pools_web_client_id: '1v0vqjidrbik5r3104buph0s7g',\r\n oauth: {\r\n domain: 'crema-react.auth.us-east-1.amazoncognito.com',\r\n scope: [\r\n 'phone',\r\n 'email',\r\n 'openid',\r\n 'profile',\r\n 'aws.cognito.signin.user.admin',\r\n ],\r\n redirectSignIn: 'https://crema-react.firebaseapp.com/',\r\n redirectSignOut: 'https://crema-react.firebaseapp.com/',\r\n responseType: 'code',\r\n },\r\n federationTarget: 'COGNITO_USER_POOLS',\r\n};\r\n","import {Ecommerce} from '../../../../types/models/dashboards/Ecommerce';\r\n\r\nconst ecommerceDat: Ecommerce = {\r\n salesState: [\r\n {\r\n id: 1,\r\n type: 'e-Combo',\r\n bgColor: '#fff200', //8DC2B6\r\n icon: './assets/images/dashboard/ecommerce/popcorn.png',\r\n },\r\n // {\r\n // id: 2,\r\n // type: 'Sashimi',\r\n // bgColor: '#E5B127',\r\n // icon: './assets/images/dashboard/ecommerce/sashimi.png',\r\n // },\r\n // {\r\n // id: 3,\r\n // type: 'Appertizer',\r\n // bgColor: '#8CAE90',\r\n // icon: './assets/images/dashboard/ecommerce/appetizer.png',\r\n // },\r\n // {\r\n // id: 4,\r\n // type: 'Donburi',\r\n // bgColor: '#D5B2A3',\r\n // icon: './assets/images/dashboard/ecommerce/donburi.png',\r\n // },\r\n // {\r\n // id: 5,\r\n // type: 'Noodles',\r\n // bgColor: '#968CA4',\r\n // icon: './assets/images/dashboard/ecommerce/noodle.png',\r\n // },\r\n // {\r\n // id: 6,\r\n // type: 'Drinks',\r\n // bgColor: '#D8D20D',\r\n // icon: './assets/images/dashboard/ecommerce/drinks.png',\r\n // },\r\n ],\r\n reportCards: [\r\n {\r\n id: 1,\r\n type: 'This Year Sale Report',\r\n value: '$685K+ ',\r\n growth: 2.5,\r\n icon: './assets/images/dashboard/icon_revenue.png',\r\n strokeColor: '#0A8FDC',\r\n graphData: [\r\n {month: 'Aug', number: 310},\r\n {month: 'Sep', number: 130},\r\n {month: 'Oct', number: 350},\r\n {month: 'Nov', number: 170},\r\n {month: 'Dec', number: 400},\r\n {month: 'Nov', number: 170},\r\n {month: 'Dec', number: 400},\r\n {month: 'Nov', number: 170},\r\n {month: 'Dec', number: 400},\r\n ],\r\n },\r\n {\r\n id: 2,\r\n type: 'Yearly Profit',\r\n value: '$125K+',\r\n growth: -3.7,\r\n icon: './assets/images/dashboard/icon_visits.png',\r\n strokeColor: '#F44D50',\r\n graphData: [\r\n {month: 'Jan', number: 20},\r\n {month: 'Feb', number: 170},\r\n {month: 'Mar', number: 40},\r\n {month: 'Apr', number: 200},\r\n {month: 'May', number: 70},\r\n {month: 'Apr', number: 200},\r\n {month: 'May', number: 70},\r\n {month: 'Apr', number: 200},\r\n {month: 'May', number: 70},\r\n ],\r\n },\r\n {\r\n id: 2,\r\n type: 'Yearly Traffic',\r\n value: '335K+',\r\n growth: 3.7,\r\n icon: './assets/images/dashboard/icon_visits.png',\r\n strokeColor: '#F49820',\r\n graphData: [\r\n {month: 'Jan', number: 20},\r\n {month: 'Feb', number: 170},\r\n {month: 'Mar', number: 40},\r\n {month: 'Apr', number: 200},\r\n {month: 'May', number: 70},\r\n {month: 'Apr', number: 200},\r\n {month: 'May', number: 70},\r\n {month: 'Apr', number: 200},\r\n {month: 'May', number: 70},\r\n ],\r\n },\r\n ],\r\n popularProducts: [\r\n {\r\n id: 1,\r\n icon: './assets/images/dashboard/product_image_1.png',\r\n name: 'Baby Shoes',\r\n description: 'Reference site about.',\r\n price: 690,\r\n mrp: 800,\r\n },\r\n {\r\n id: 2,\r\n icon: './assets/images/dashboard/product_image_2.png',\r\n name: 'Baby Shoes',\r\n description: 'information on its origins.',\r\n price: 430,\r\n mrp: 640,\r\n },\r\n {\r\n id: 3,\r\n icon: './assets/images/dashboard/product_image_3.png',\r\n name: 'Headphones',\r\n description: 'information Lipsum generator.',\r\n price: 230,\r\n mrp: 550,\r\n },\r\n {\r\n id: 4,\r\n icon: './assets/images/dashboard/product_image_1.png',\r\n name: 'Headphones',\r\n description: 'Reference site about.',\r\n price: 679,\r\n mrp: 800,\r\n },\r\n {\r\n id: 5,\r\n icon: './assets/images/dashboard/product_image_2.png',\r\n name: 'Smart Watch',\r\n description: 'information on its origins.',\r\n price: 440,\r\n mrp: 640,\r\n },\r\n {\r\n id: 6,\r\n icon: './assets/images/dashboard/product_image_3.png',\r\n name: 'Smart Watch',\r\n description: 'information Lipsum generator.',\r\n price: 233,\r\n mrp: 550,\r\n },\r\n ],\r\n marketingCampaign: [\r\n {\r\n id: 1,\r\n name: 'Facebook Ads',\r\n description: '63 Likes, 387 Shares',\r\n icon: './assets/images/dashboard/facebook_icon.png',\r\n graph: 20,\r\n growth: true,\r\n spent: '$125',\r\n },\r\n {\r\n id: 2,\r\n name: 'Twitter Ads',\r\n description: '63 Likes, 387 Shares',\r\n icon: './assets/images/dashboard/twitter_icon.png',\r\n graph: -5,\r\n growth: false,\r\n spent: '$125',\r\n },\r\n {\r\n id: 3,\r\n name: 'Instagram',\r\n description: '63 Likes, 387 Shares',\r\n like: 'Bicycle',\r\n share: '08-21-2020',\r\n icon: './assets/images/dashboard/instagram_icon.png',\r\n graph: 20,\r\n growth: true,\r\n spent: '$125',\r\n },\r\n {\r\n id: 4,\r\n name: 'LinkedIn',\r\n description: '63 Likes, 387 Shares',\r\n like: 'Bicycle',\r\n share: '08-21-2020',\r\n icon: './assets/images/dashboard/linkedin_icon.png',\r\n graph: 25,\r\n growth: true,\r\n spent: '$125',\r\n },\r\n {\r\n id: 5,\r\n name: 'Youtube',\r\n description: '63 Likes, 387 Shares',\r\n like: 'Bicycle',\r\n share: '08-21-2020',\r\n icon: './assets/images/dashboard/youtube_icon.png',\r\n graph: 45,\r\n growth: true,\r\n spent: '$125',\r\n },\r\n {\r\n id: 6,\r\n name: 'Dribble',\r\n like: 'Bicycle',\r\n description: '63 Likes, 387 Shares',\r\n share: '08-21-2020',\r\n icon: './assets/images/dashboard/dribble_icon.png',\r\n graph: 25,\r\n growth: true,\r\n spent: '$125',\r\n },\r\n ],\r\n notifications: [\r\n {\r\n id: 10001,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'Angelina Joew',\r\n type: 'NEW ORDER',\r\n message: 'added courses to the new bucket.',\r\n },\r\n {\r\n id: 10002,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'John Mathew',\r\n type: 'SUPPORT TICKET',\r\n message: 'like company website design.',\r\n },\r\n {\r\n id: 10003,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'George Bailey',\r\n type: 'NEW ORDER',\r\n message: 'followed your works',\r\n },\r\n {\r\n id: 10004,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'Maria Lee',\r\n type: 'NEW ENQUIRY',\r\n message: 'liked origmi-creativity agency.',\r\n },\r\n {\r\n id: 10005,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'John Mathew',\r\n type: 'NEW ORDER',\r\n message: 'like company website design.',\r\n },\r\n {\r\n id: 10006,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'George Bailey',\r\n type: 'NEW ENQUIRY',\r\n message: 'followed your works',\r\n },\r\n {\r\n id: 10007,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'Maria Lee',\r\n type: 'SUPPORT TICKET',\r\n message: 'liked origmi-creativity agency.',\r\n },\r\n {\r\n id: 10008,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'John Mathew',\r\n type: 'NEW ORDER',\r\n message: 'like company website design.',\r\n },\r\n {\r\n id: 10009,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'George Bailey',\r\n type: 'NEW ENQUIRY',\r\n message: 'followed your works',\r\n },\r\n ],\r\n newCustomers: [\r\n {\r\n id: 10001,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'Angelina Joew',\r\n orders: 0,\r\n color: '',\r\n message: 'added courses to the new bucket.',\r\n },\r\n {\r\n id: 10002,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'John Mathew',\r\n orders: 3,\r\n color: '',\r\n message: 'like company website design.',\r\n },\r\n {\r\n id: 10003,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'George Bailey',\r\n orders: 3,\r\n color: '',\r\n message: 'followed your works',\r\n },\r\n {\r\n id: 10004,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'Maria Lee',\r\n orders: 0,\r\n color: '',\r\n message: 'liked origmi-creativity agency.',\r\n },\r\n {\r\n id: 10005,\r\n image: 'https://via.placeholder.com/150',\r\n name: 'Angelina Joew',\r\n orders: 4,\r\n color: '',\r\n message: 'added courses to the new bucket.',\r\n },\r\n ],\r\n siteVisitors: [\r\n {\r\n id: 1,\r\n color: 'green',\r\n value: 45,\r\n icon: './assets/images/dashboard/countries_usa_icon.png',\r\n country: 'USA',\r\n },\r\n {\r\n id: 2,\r\n color: 'orange',\r\n value: 98,\r\n icon: './assets/images/dashboard/countries_france_icon.png',\r\n country: 'France',\r\n },\r\n {\r\n id: 3,\r\n color: 'blue',\r\n value: 86,\r\n country: 'GERMANY',\r\n icon: './assets/images/dashboard/countries_germany_icon.png',\r\n },\r\n {\r\n id: 4,\r\n color: 'red',\r\n value: 34,\r\n country: 'SPAIN',\r\n icon: './assets/images/dashboard/countries_spain_icon.png',\r\n },\r\n {\r\n id: 5,\r\n color: 'red',\r\n value: 34,\r\n country: 'INDIA',\r\n icon: './assets/images/dashboard/countries_india_icon.png',\r\n },\r\n ],\r\n browser: [\r\n {\r\n id: 1,\r\n value: '35K users',\r\n name: 'Firefox',\r\n icon: './assets/images/dashboard/browser_crome.png',\r\n },\r\n {\r\n id: 2,\r\n value: '39K users',\r\n name: 'Safari',\r\n icon: './assets/images/dashboard/browser_firefox.png',\r\n },\r\n {\r\n id: 3,\r\n value: '3.2M users',\r\n name: 'Google Chrome',\r\n icon: './assets/images/dashboard/browser_internet_explore.png',\r\n },\r\n {\r\n id: 4,\r\n value: '3.5M users',\r\n name: 'Internet Explorer',\r\n icon: './assets/images/dashboard/browser_safari.png',\r\n },\r\n ],\r\n recentOrders: [\r\n {\r\n id: '#SK231',\r\n customer: 'Ina Hughes',\r\n product: 'Bicycle',\r\n date: '08-21-2020',\r\n paymentType: 'COD',\r\n price: '$125',\r\n status: 'Cancelled',\r\n },\r\n {\r\n id: '#SK232',\r\n customer: 'Myrtie Ferguson',\r\n date: '08-12-2020',\r\n product: 'Addida Shoes',\r\n paymentType: 'Prepaid',\r\n price: '$100',\r\n status: 'Delivered',\r\n },\r\n {\r\n id: '#SK233',\r\n customer: 'Johnny Herrera',\r\n date: '07-30-2020',\r\n product: 'Sleeve Jacket',\r\n price: '$1,020',\r\n paymentType: 'Prepaid',\r\n status: 'Pending',\r\n },\r\n {\r\n id: '#SK234',\r\n customer: 'Myrtie Ferguson',\r\n date: '08-12-2020',\r\n product: 'Addida Shoes',\r\n paymentType: 'Prepaid',\r\n price: '$100',\r\n status: 'Delivered',\r\n },\r\n ],\r\n};\r\n\r\nexport default ecommerceDat;\r\n","import mock from '../../MockConfig';\r\n// import analytics from '../../db/dashboard/analytics';\r\nimport ecommerce from '../../db/dashboard/ecommerce';\r\n// import crm from '../../db/dashboard/crm';\r\n// import crypto from '../../db/dashboard/crypto';\r\n// import metrics from '../../db/dashboard/metrics';\r\n// import widgets from '../../db/dashboard/widgets';\r\n// import healthCare from '../../db/dashboard/healthCare';\r\n// import academy from '../../db/dashboard/academy';\r\n\r\n// Define all mocks of dashboard\r\n// mock.onGet('/dashboard/analytics').reply(200, analytics);\r\n\r\nmock.onGet('/dashboard/ecommerce').reply(200, ecommerce);\r\n\r\n// mock.onGet('/dashboard/crm').reply(200, crm);\r\n\r\n// mock.onGet('/dashboard/crypto').reply(200, crypto);\r\n\r\n// mock.onGet('/dashboard/health_care').reply(200, healthCare);\r\n\r\n// mock.onGet('/dashboard/academy').reply(200, academy);\r\n\r\n// mock.onGet('/dashboard/metrics').reply(200, metrics);\r\n\r\n// mock.onGet('/dashboard/widgets').reply(200, widgets);\r\n","import {ConnectionObj} from '../../../../../types/models/apps/Chat';\r\n\r\nexport enum MessageType {\r\n MEDIA = 1,\r\n DOC = 2,\r\n TEXT = 3,\r\n}\r\n\r\nconst connectionList: ConnectionObj[] = [\r\n {\r\n id: 2,\r\n channelId: 2001,\r\n name: 'Jubina Chawla',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n username: 'jubina.1',\r\n lastMessage: {\r\n id: 6,\r\n message: 'ok, will do it',\r\n type: 'received',\r\n time: 'Sat, May 09, 2020 8:30 PM',\r\n },\r\n },\r\n {\r\n id: 3,\r\n channelId: 2002,\r\n name: 'Mark Johnson',\r\n username: 'johnson.mark',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n },\r\n {\r\n id: 4,\r\n channelId: 2003,\r\n name: 'Shane Lee',\r\n username: 'lee.shane',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n },\r\n {\r\n id: 5,\r\n channelId: 2004,\r\n name: 'Chris Crains',\r\n username: 'chris.crains',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n lastMessage: {\r\n id: 6,\r\n message: 'cheers!',\r\n type: 'received',\r\n time: 'Fri, May 08, 2020 8:30 PM',\r\n },\r\n },\r\n {\r\n id: 6,\r\n channelId: 2005,\r\n name: 'Jonathan Trott',\r\n username: 'trott.johnson',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n },\r\n {\r\n id: 7,\r\n channelId: 2006,\r\n name: 'Rohita Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n username: 'sharma.rohita',\r\n lastMessage: {\r\n id: 6,\r\n message: 'what are you upto these days?',\r\n type: 'received',\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n },\r\n {\r\n id: 8,\r\n channelId: 2007,\r\n name: 'Mark Lee',\r\n username: 'lee.1',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n },\r\n {\r\n id: 9,\r\n channelId: 2008,\r\n name: 'Saina Williams',\r\n username: 'williams.saina',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n },\r\n {\r\n id: 10,\r\n channelId: 2009,\r\n name: 'Parth Aulins',\r\n username: 'aulins.parth',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n lastMessage: {\r\n id: 6,\r\n message: 'No worries!',\r\n type: 'received',\r\n time: 'Fri, May 08, 2020 4:30 PM',\r\n },\r\n },\r\n {\r\n id: 11,\r\n channelId: 2010,\r\n name: 'Rahul Bose',\r\n username: 'bose.12',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n lastMessage: {\r\n id: 6,\r\n message: 'cheers!',\r\n type: 'received',\r\n time: 'Thru, May 07, 2020 2:30 PM',\r\n },\r\n },\r\n {\r\n id: 12,\r\n channelId: 2011,\r\n name: 'Rohan Bopanna',\r\n username: 'thetennisfreak',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n },\r\n {\r\n id: 13,\r\n channelId: 2012,\r\n name: 'Nikita Panwar',\r\n username: 'mrs.panwar',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n },\r\n {\r\n id: 14,\r\n channelId: 2013,\r\n name: 'Vijaya Murli',\r\n username: 'therealplayer',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n },\r\n {\r\n id: 15,\r\n channelId: 2014,\r\n name: 'David Boon',\r\n username: 'david.boon',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n },\r\n {\r\n id: 16,\r\n channelId: 2015,\r\n name: 'Saurabh Shukla',\r\n username: 'shukla.ji',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n },\r\n {\r\n id: 17,\r\n channelId: 2016,\r\n name: 'Nick Taylor',\r\n username: 'taylor',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n lastMessage: {\r\n id: 6,\r\n message: 'for what?',\r\n type: 'received',\r\n time: 'Tues, May 05, 2020 8:30 PM',\r\n },\r\n },\r\n {\r\n id: 18,\r\n channelId: 2017,\r\n name: 'Nikita Suman',\r\n username: 'nikita.rowdy',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n lastMessage: {\r\n id: 6,\r\n message: 'Hi!',\r\n type: 'sent',\r\n time: 'Sun, May 03, 2020 8:30 PM',\r\n },\r\n },\r\n {\r\n id: 19,\r\n channelId: 2018,\r\n name: 'Laura Lohan',\r\n username: 'lohan.lora',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'online',\r\n },\r\n {\r\n id: 20,\r\n channelId: 2019,\r\n name: 'Jennifer John',\r\n username: 'johnson.jen',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n },\r\n {\r\n id: 21,\r\n channelId: 2020,\r\n name: 'Robert Key',\r\n username: 'key.robert',\r\n image: 'https://via.placeholder.com/150',\r\n status: 'offline',\r\n lastMessage: {\r\n id: 6,\r\n message: 'in India',\r\n type: 'received',\r\n time: 'Fri, May 01, 2020 8:30 PM',\r\n },\r\n },\r\n];\r\nexport default connectionList;\r\n","import mock from '../../MockConfig';\r\nimport ecommerceData, {\r\n cartItems,\r\n customersData,\r\n recentOrders,\r\n} from '../../db/ecommerce/ecommerceData';\r\nimport {multiPropsFilter} from '../../../utility/Utils';\r\nimport {AxiosRequestConfig} from 'axios';\r\n\r\nmock.onGet('/api/ecommerce/list').reply((request: AxiosRequestConfig) => {\r\n const {filterData} = request.params;\r\n const data = multiPropsFilter(ecommerceData, filterData);\r\n return [200, data];\r\n});\r\n\r\nmock.onGet('/api/ecommerce/get').reply((request: AxiosRequestConfig) => {\r\n const {id} = request.params;\r\n if (id >= 1 && id <= 12) {\r\n const data = ecommerceData.filter(item => +item.ProductCode === +id);\r\n if (data.length > 0) return [200, data[0]];\r\n }\r\n return [200, ecommerceData[0]];\r\n});\r\n\r\nmock.onGet('/api/ecommerce/orders').reply((request: AxiosRequestConfig) => {\r\n // const {search, page} = request.params;\r\n\r\n // let orders = [...recentOrders];\r\n\r\n // if (search) {\r\n // orders = orders.filter(\r\n // order =>\r\n // order.customer.toLowerCase().includes(search.toLowerCase()) ||\r\n // order.product.toLowerCase().includes(search.toLowerCase()),\r\n // );\r\n // }\r\n\r\n return [\r\n 200,\r\n {\r\n orderCount: recentOrders.length,\r\n orders: recentOrders,\r\n },\r\n ];\r\n});\r\n\r\nmock.onGet('/api/ecommerce/customers').reply((request: AxiosRequestConfig) => {\r\n const {search, page} = request.params;\r\n\r\n let customers = [...customersData];\r\n\r\n if (search) {\r\n customers = customers.filter(\r\n customer =>\r\n customer.name.toLowerCase().includes(search.toLowerCase()) ||\r\n customer.email.toLowerCase().includes(search.toLowerCase()),\r\n );\r\n }\r\n\r\n return [\r\n 200,\r\n {\r\n customerCount: customers.length,\r\n customers: customers.splice(page * 10, (page + 1) * 10),\r\n },\r\n ];\r\n});\r\n\r\nmock.onGet('/api/cart/get').reply((request: AxiosRequestConfig) => {\r\n return [200, cartItems];\r\n});\r\n","import {MessageType} from './connectionList';\r\nimport {MessageObj} from '../../../../../types/models/apps/Chat';\r\n\r\nconst chatList: MessageObj[] = [\r\n {\r\n channelId: 2001,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 'sender_id',\r\n message: 'Hello',\r\n message_type: MessageType.TEXT,\r\n time: 'Sat, May 09, 2020 8:00 PM',\r\n },\r\n {\r\n id: 2,\r\n sender: 2,\r\n message: 'Hi',\r\n message_type: MessageType.TEXT,\r\n time: 'Sat, May 09, 2020 8:02 PM',\r\n },\r\n {\r\n id: 3,\r\n sender: 'sender_id',\r\n message: 'how you doing?',\r\n message_type: MessageType.TEXT,\r\n time: 'Sat, May 09, 2020 8:03 PM',\r\n },\r\n {\r\n id: 4,\r\n sender: 2,\r\n message: 'all well, you say!',\r\n message_type: MessageType.TEXT,\r\n time: 'Sat, May 09, 2020 8:05 PM',\r\n },\r\n {\r\n id: 5,\r\n sender: 'sender_id',\r\n message: 'all well here too, please check your mail!',\r\n message_type: MessageType.TEXT,\r\n time: 'Sat, May 09, 2020 8:13 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 2,\r\n message: 'ok, will do it',\r\n message_type: MessageType.TEXT,\r\n time: 'Sat, May 09, 2020 8:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 2,\r\n message: 'ok, will do it',\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Sat, May 09, 2020 8:30 PM',\r\n },\r\n {\r\n id: 8,\r\n sender: 'sender_id',\r\n message: 'ok, will do it',\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/bitcoin1.png',\r\n mime_type: 'image',\r\n file_name: 'bitcoin1.jpg',\r\n file_size: 12332,\r\n },\r\n time: 'Sat, May 09, 2020 8:30 PM',\r\n },\r\n {\r\n id: 9,\r\n sender: 'sender_id',\r\n message: 'ok, will do it',\r\n message_type: MessageType.DOC,\r\n media: {\r\n url: '/assets/images/crema docs.txt',\r\n mime_type: 'image',\r\n file_name: 'crema docs.txt',\r\n file_size: 12332,\r\n },\r\n time: 'Sat, May 09, 2020 8:30 PM',\r\n },\r\n {\r\n id: 10,\r\n sender: 2,\r\n message: 'ok, will do it',\r\n message_type: MessageType.DOC,\r\n media: {\r\n url: '/assets/images/crema docs.txt',\r\n mime_type: 'image',\r\n file_name: 'crema docs.txt',\r\n file_size: 1232232,\r\n },\r\n time: 'Sat, May 09, 2020 8:30 PM',\r\n },\r\n ],\r\n },\r\n {\r\n channelId: 2004,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 'sender_id',\r\n message: 'Hello',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 7:30 PM',\r\n },\r\n {\r\n id: 2,\r\n sender: 5,\r\n message: 'Hi',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 8:00 PM',\r\n },\r\n {\r\n id: 3,\r\n sender: 5,\r\n message: 'how you doing?',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 8:03 PM',\r\n },\r\n {\r\n id: 4,\r\n sender: 'sender_id',\r\n message: 'all well, you say!',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 8:15 PM',\r\n },\r\n {\r\n id: 5,\r\n sender: 5,\r\n message: 'all well here too',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 8:18 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 'sender_id',\r\n message: 'cheers!',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 8:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 'sender_id',\r\n message: '!',\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Fri, May 08, 2020 8:30 PM',\r\n },\r\n ],\r\n },\r\n {\r\n channelId: 2006,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 7,\r\n message: 'Hello',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 5:10 PM',\r\n },\r\n {\r\n id: 2,\r\n sender: 'sender_id',\r\n message: 'Hi',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 5:13 PM',\r\n },\r\n {\r\n id: 3,\r\n sender: 7,\r\n message: 'how you doing?',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 5:17 PM',\r\n },\r\n {\r\n id: 4,\r\n sender: 7,\r\n message: 'all well, you say!',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 5:24 PM',\r\n },\r\n {\r\n id: 5,\r\n sender: 'sender_id',\r\n message: 'all well here too',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 5:26 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 7,\r\n message: 'what are you upto these days?',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 7,\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n ],\r\n },\r\n {\r\n channelId: 2009,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 'sender_id',\r\n message: 'Hello',\r\n message_type: MessageType.TEXT,\r\n time: 'Thru, May 07, 2020 3:30 PM',\r\n },\r\n {\r\n id: 2,\r\n sender: 10,\r\n message: 'Hi',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 10:30 AM',\r\n },\r\n {\r\n id: 3,\r\n sender: 'sender_id',\r\n message: 'how you doing?',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 11:32 AM',\r\n },\r\n {\r\n id: 4,\r\n sender: 10,\r\n message: 'all well, you say!',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 2:30 PM',\r\n },\r\n {\r\n id: 5,\r\n sender: 'sender_id',\r\n message: 'Sorry a bit busy, will talk to you later!',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 3:24 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 10,\r\n message: 'No worries!',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 08, 2020 4:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 10,\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n ],\r\n },\r\n {\r\n channelId: 2010,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 'sender_id',\r\n message: 'We got the assignment',\r\n message_type: MessageType.TEXT,\r\n time: 'Thru, May 07, 2020 2:08 PM',\r\n },\r\n {\r\n id: 2,\r\n sender: 11,\r\n message: 'congratulations!',\r\n message_type: MessageType.TEXT,\r\n time: 'Thru, May 07, 2020 2:20 PM',\r\n },\r\n {\r\n id: 5,\r\n sender: 'sender_id',\r\n message: 'We all worked hard, see you in the party!',\r\n message_type: MessageType.TEXT,\r\n time: 'Thru, May 07, 2020 2:24 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 11,\r\n message: 'cheers!',\r\n message_type: MessageType.TEXT,\r\n time: 'Thru, May 07, 2020 2:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 'sender_id',\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n ],\r\n },\r\n {\r\n channelId: 2016,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 17,\r\n message: 'Did you watch the news?',\r\n message_type: MessageType.TEXT,\r\n time: 'Tues, May 05, 2020 8:10 PM',\r\n },\r\n {\r\n id: 4,\r\n sender: 'sender_id',\r\n message: 'No, anything special today?',\r\n message_type: MessageType.TEXT,\r\n time: 'Tues, May 05, 2020 8:12 PM',\r\n },\r\n {\r\n id: 5,\r\n sender: 17,\r\n message: 'Yes, our organization got nominated!',\r\n message_type: MessageType.TEXT,\r\n time: 'Tues, May 05, 2020 8:16 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 'sender_id',\r\n message: 'for what?',\r\n message_type: MessageType.TEXT,\r\n time: 'Tues, May 05, 2020 8:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 'sender_id',\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n ],\r\n },\r\n {\r\n channelId: 2017,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 18,\r\n message: 'Hello',\r\n message_type: MessageType.TEXT,\r\n time: 'Sun, May 02, 2020 6:30 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 'sender_id',\r\n message: 'Hi!',\r\n message_type: MessageType.TEXT,\r\n time: 'Sun, May 03, 2020 8:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 7,\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n ],\r\n },\r\n {\r\n channelId: 2020,\r\n messageData: [\r\n {\r\n id: 1,\r\n sender: 'sender_id',\r\n message: 'Hey Robert',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 01, 2020 8:11 PM',\r\n },\r\n {\r\n id: 2,\r\n sender: 21,\r\n message: 'Hi',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 01, 2020 8:14 PM',\r\n },\r\n {\r\n id: 3,\r\n sender: 'sender_id',\r\n message: 'how you doing?',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 01, 2020 8:19 PM',\r\n },\r\n {\r\n id: 4,\r\n sender: 21,\r\n message: 'all well, you say!',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 01, 2020 8:21 PM',\r\n },\r\n {\r\n id: 5,\r\n sender: 'sender_id',\r\n message: 'all well here too, where r u these days?',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 01, 2020 8:24 PM',\r\n },\r\n {\r\n id: 6,\r\n sender: 21,\r\n message: 'in India',\r\n message_type: MessageType.TEXT,\r\n time: 'Fri, May 01, 2020 8:30 PM',\r\n },\r\n {\r\n id: 7,\r\n sender: 21,\r\n message_type: MessageType.MEDIA,\r\n media: {\r\n url: '/assets/images/illustration.png',\r\n mime_type: 'image',\r\n file_name: 'illustration.png',\r\n file_size: 12332,\r\n },\r\n time: 'Fri, May 08, 2020 5:30 PM',\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport default chatList;\r\n","import connectionList from '../../db/apps/chat/connectionList';\r\nimport mock from '../../MockConfig';\r\nimport chatList from '../../db/apps/chat/chatList';\r\nimport {AxiosRequestConfig} from 'axios';\r\nimport {ConnectionObj} from '../../../../types/models/apps/Chat';\r\n\r\nlet connectionData = connectionList;\r\nlet chatData = chatList;\r\n\r\nmock.onGet('/api/chatApp/connections').reply(200, connectionData);\r\n\r\nmock\r\n .onGet('/api/chatApp/connection/messages')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {id} = request.params;\r\n const response = chatData.find(chat => chat.channelId === parseInt(id));\r\n if (response) {\r\n return [200, response];\r\n }\r\n return [200, null];\r\n });\r\n\r\nmock.onPost('/api/chatApp/message').reply((request: AxiosRequestConfig) => {\r\n const {channelId, message} = JSON.parse(request.data);\r\n const id = (Math.random() * 10000).toFixed();\r\n const data = {...message, id};\r\n let user: ConnectionObj = connectionData.find(\r\n connection => connection.channelId === channelId,\r\n )!;\r\n user = {...user, lastMessage: data};\r\n connectionData = connectionData.map((item: ConnectionObj) =>\r\n item.channelId === user!.channelId ? user : item,\r\n );\r\n let userMessages = chatData.find(chat => chat.channelId === channelId);\r\n if (userMessages) {\r\n userMessages.messageData = userMessages.messageData.concat(data);\r\n } else {\r\n userMessages = {\r\n channelId: channelId,\r\n messageData: [data],\r\n };\r\n chatData = chatData.concat(userMessages);\r\n }\r\n return [200, {user, userMessages}];\r\n});\r\n\r\nmock.onPut('/api/chatApp/message').reply((request: AxiosRequestConfig) => {\r\n const {channelId, message} = JSON.parse(request.data);\r\n let user = connectionData.find(\r\n connection => connection.channelId === channelId,\r\n )!;\r\n if (user!.lastMessage!.id === message.id) {\r\n user = {...user, lastMessage: message};\r\n connectionData = connectionData.map(item =>\r\n item.channelId === user.channelId ? user : item,\r\n );\r\n }\r\n let userMessages = chatData.find(chat => chat.channelId === channelId);\r\n if (userMessages)\r\n userMessages.messageData = userMessages.messageData.map(item =>\r\n item.id === message.id ? message : item,\r\n );\r\n return [200, {user, userMessages}];\r\n});\r\n\r\nmock\r\n .onPost('/api/chatApp/delete/message')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {channelId, messageId} = JSON.parse(request.data);\r\n let userMessages = chatData.find(chat => chat.channelId === channelId)!;\r\n let user = connectionData.find(\r\n connection => connection.channelId === channelId,\r\n )!;\r\n if (userMessages) {\r\n userMessages.messageData = userMessages.messageData.filter(\r\n item => item.id !== messageId,\r\n );\r\n if (user!.lastMessage!.id === messageId) {\r\n const lastMessage =\r\n userMessages.messageData[userMessages.messageData.length - 1];\r\n user = {\r\n ...user,\r\n lastMessage: {\r\n id: lastMessage.id!,\r\n message: lastMessage.message!,\r\n type: '',\r\n time: lastMessage.time!,\r\n },\r\n };\r\n connectionData = connectionData.map(item =>\r\n item.id === user!.id ? user : item,\r\n )!;\r\n }\r\n }\r\n return [200, {user, userMessages}];\r\n });\r\n\r\nmock\r\n .onPost('/api/chatApp/delete/user/messages')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {channelId} = JSON.parse(request.data);\r\n chatData = chatData.filter(chat => chat.channelId !== channelId);\r\n let user = connectionData.find(\r\n connection => connection.channelId === channelId,\r\n )!;\r\n // let user.lastMessage;\r\n connectionData = connectionData.map(item =>\r\n item.id === user.id ? user : item,\r\n );\r\n return [200, user];\r\n });\r\n","import {ContactObj} from '../../../../../types/models/apps/Contact';\r\n\r\nconst contactList: ContactObj[] = [\r\n {\r\n id: 2001,\r\n name: 'Jubin Chawla',\r\n email: 'jubin.chawla@xyz.com',\r\n contact: '+1-344432739',\r\n company: 'First Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 312,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2002,\r\n name: 'Mark Johnson',\r\n email: 'mark.johnson@abc.com',\r\n contact: '+1-34354234',\r\n company: 'Second Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 311,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2003,\r\n name: 'Shane Lee',\r\n email: 'shane.lee@mnz.com',\r\n contact: '+1-324563332',\r\n company: 'Third Exclusive Limited',\r\n isStarred: true,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2004,\r\n name: 'Chris Crains',\r\n email: 'chris.crains@cde.com',\r\n contact: '+1-233454323',\r\n company: 'Fourth Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 311,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2005,\r\n name: 'Jonathan Trott',\r\n email: 'jonathan.trott@ewr.com',\r\n contact: '+1-324565345',\r\n company: 'Fifth Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 312,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2006,\r\n name: 'Rohit Sharma',\r\n email: 'rohit.sharma@xcr.com',\r\n contact: '+1-435424345',\r\n company: 'Sixth Exclusive Limited',\r\n isStarred: true,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2007,\r\n name: 'Mark Lee',\r\n email: 'mark.lee@cdf.com',\r\n contact: '+1-989323434',\r\n company: 'Seventh Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 311,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2008,\r\n name: 'Sain Williams',\r\n email: 'sain.williams@gww.com',\r\n contact: '+1-349848303',\r\n company: 'Eighth Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 312,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2009,\r\n name: 'Parth Aulins',\r\n email: 'parth.aulins@ddd.com',\r\n contact: '+1-4874387443',\r\n company: 'Ninth Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2010,\r\n name: 'Rahul Bose',\r\n email: 'rahul.bose@xyz.com',\r\n contact: '+1-43235454',\r\n company: 'Tenth Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 311,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2011,\r\n name: 'Rohan Bopanna',\r\n email: 'rohan.bopanna4@red.com',\r\n contact: '+1-432123345',\r\n company: 'Eleventh Exclusive Limited',\r\n isStarred: true,\r\n isFrequent: Math.random() > 0.5,\r\n label: 312,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2012,\r\n name: 'Nikit Panwar',\r\n email: 'nikit.panwar@xyz.com',\r\n contact: '+1-542324563',\r\n company: 'International Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2013,\r\n name: 'Vijay Murli',\r\n email: 'vijay.murli@xyz.com',\r\n contact: '+1-435432434',\r\n company: 'First Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 311,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2014,\r\n name: 'David Boon',\r\n email: 'david.boon@xyz.com',\r\n contact: '+1-343322323',\r\n company: 'Second Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 312,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2015,\r\n name: 'Saurabh Shukla',\r\n email: 'saurabh.shukla@sdd.com',\r\n contact: '+1-334354333',\r\n company: 'Seventh Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2016,\r\n name: 'Nick Taylor',\r\n email: 'nick.taylor@usa.com',\r\n contact: '+1-432543345',\r\n company: 'Eighth Exclusive Limited',\r\n isStarred: true,\r\n isFrequent: Math.random() > 0.5,\r\n label: 312,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2017,\r\n name: 'Nikita Suman',\r\n email: 'nikita.suman@nicks.com',\r\n contact: '+91-3283828373',\r\n company: 'AXY Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 311,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2018,\r\n name: 'Laura Lohan',\r\n email: 'laura.lohan@laura.com',\r\n contact: '+1-3232323',\r\n company: 'US Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2019,\r\n name: 'Jennifer John',\r\n email: 'jennifer.john@abc.com',\r\n contact: '+1-334354333',\r\n company: 'Seventh Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2020,\r\n name: 'Robert Key',\r\n email: 'robert.key@key.com',\r\n contact: '+1-3289893323',\r\n company: 'UK Exclusive Limited',\r\n isStarred: false,\r\n isFrequent: Math.random() > 0.5,\r\n label: 313,\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n];\r\nexport default contactList;\r\n","import {FolderObj} from '../../../../../types/models/apps/Contact';\r\n\r\nconst folderList: FolderObj[] = [\r\n {id: 121, name: 'All', alias: 'all', icon: 'group'},\r\n {id: 122, name: 'Frequent', alias: 'frequent', icon: 'autorenew'},\r\n {id: 124, name: 'Starred', alias: 'starred', icon: 'starBorder'},\r\n];\r\nexport default folderList;\r\n","import {blue, green, red} from '@material-ui/core/colors';\r\nimport {LabelObj} from '../../../../../types/models/apps/Contact';\r\n\r\nconst labelList: LabelObj[] = [\r\n {id: 311, name: 'Crema', alias: 'crema', color: red[500]},\r\n {id: 312, name: 'Personal', alias: 'personal', color: blue[500]},\r\n {id: 313, name: 'Work', alias: 'work', color: green[500]},\r\n];\r\nexport default labelList;\r\n","import contactData from '../../db/apps/contact/contactList';\r\nimport mock from '../../MockConfig';\r\nimport folderList from '../../db/apps/contact/folderList';\r\nimport labelList from '../../db/apps/contact/labelList';\r\nimport {AxiosRequestConfig} from 'axios';\r\nimport {ContactObj, LabelObj} from '../../../../types/models/apps/Contact';\r\n\r\nlet contactList = contactData;\r\n\r\nmock.onGet('/api/contactApp/folders/list').reply(200, folderList);\r\n\r\nmock.onGet('/api/contactApp/labels/list').reply(200, labelList);\r\n\r\nmock\r\n .onGet('/api/contactApp/contact/List')\r\n .reply((config: AxiosRequestConfig) => {\r\n const params = config.params;\r\n let folderContactList: ContactObj[];\r\n if (params.type === 'folder') {\r\n if (params.name === 'starred') {\r\n folderContactList = contactList.filter(contact => contact.isStarred);\r\n } else if (params.name === 'frequent') {\r\n folderContactList = contactList.filter(contact => contact.isFrequent);\r\n } else {\r\n folderContactList = contactList;\r\n }\r\n } else {\r\n const labelType = labelList.find(label => label.alias === params.name)!\r\n .id;\r\n folderContactList = contactList.filter(\r\n contact => contact.label === labelType,\r\n );\r\n }\r\n const index = params.page * 15;\r\n const total = folderContactList.length;\r\n const list =\r\n folderContactList.length > 15\r\n ? folderContactList.slice(index, index + 15)\r\n : folderContactList;\r\n return [200, {list, total}];\r\n });\r\n\r\nmock\r\n .onPut('/api/contactApp/update/starred')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {contactIds, status} = JSON.parse(request.data);\r\n contactList = contactList.map(contact => {\r\n if (contactIds.includes(contact.id)) {\r\n contact.isStarred = !!status;\r\n return contact;\r\n } else {\r\n return contact;\r\n }\r\n });\r\n const updatedList = contactList.filter(contact =>\r\n contactIds.includes(contact.id),\r\n );\r\n return [200, updatedList];\r\n });\r\n\r\nmock\r\n .onPost('/api/contactApp/delete/contact')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {contactIds, type, name, page} = JSON.parse(request.data);\r\n let folderContactList: ContactObj[];\r\n if (type === 'folder') {\r\n if (name === 'starred') {\r\n contactList = contactList.filter(\r\n contact => !contactIds.includes(contact.id),\r\n );\r\n folderContactList = contactList.filter(contact => contact.isStarred);\r\n } else if (name === 'frequent') {\r\n contactList = contactList.filter(\r\n contact => !contactIds.includes(contact.id),\r\n );\r\n folderContactList = contactList.filter(contact => contact.isFrequent);\r\n } else {\r\n contactList = contactList.filter(\r\n contact => !contactIds.includes(contact.id),\r\n );\r\n folderContactList = contactList;\r\n }\r\n } else {\r\n const labelType = labelList.find(\r\n (label: LabelObj) => label.alias === name,\r\n )!.id;\r\n contactList = contactList.filter(\r\n contact => !contactIds.includes(contact.id),\r\n );\r\n folderContactList = contactList.filter(\r\n contact => contact.label === labelType,\r\n );\r\n }\r\n const index = page * 15;\r\n const total = folderContactList.length;\r\n const list =\r\n folderContactList.length > 15\r\n ? folderContactList.slice(index, index + 15)\r\n : folderContactList;\r\n return [200, {list, total}];\r\n });\r\n\r\nmock\r\n .onPut('/api/contactApp/update/label')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {contactIds, type} = JSON.parse(request.data);\r\n contactList = contactList.map(contact => {\r\n if (contactIds.includes(contact.id)) {\r\n contact.label = type;\r\n return contact;\r\n } else {\r\n return contact;\r\n }\r\n });\r\n const updatedContacts = contactList.filter(contact =>\r\n contactIds.includes(contact.id),\r\n );\r\n return [200, updatedContacts];\r\n });\r\n\r\nmock.onPut('/api/contactApp/contact/').reply((request: AxiosRequestConfig) => {\r\n const {contact} = JSON.parse(request.data);\r\n contactList = contactList.map(item =>\r\n item.id === contact.id ? contact : item,\r\n );\r\n return [200, contact];\r\n});\r\n\r\nmock.onPost('/api/contactApp/compose').reply((request: AxiosRequestConfig) => {\r\n const {contact} = JSON.parse(request.data);\r\n contactList = [contact, ...contactList];\r\n return [200, contact];\r\n});\r\n\r\nmock.onGet('/api/contactApp/contact/').reply((config: AxiosRequestConfig) => {\r\n const params = config.params;\r\n const response = contactList.find(\r\n contact => contact.id === parseInt(params.id),\r\n );\r\n return [200, response];\r\n});\r\n","import {PostObj, WallData} from '../../../../types/models/apps/Wall';\r\nimport {getCustomDateTime} from '../../../utility/Utils';\r\n\r\nexport const wallData: WallData = {\r\n id: 123,\r\n name: 'Suzanna J. Fowler',\r\n profilePic: 'https://via.placeholder.com/150',\r\n videoCall: {\r\n users: [\r\n {\r\n id: 1,\r\n name: 'John Doe',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2,\r\n name: 'Lily John',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n title: 'Jessica Wedding Plan',\r\n },\r\n friendRequests: [\r\n {\r\n id: 5454,\r\n profilePic: 'https://via.placeholder.com/150',\r\n name: 'Sarah Taylor',\r\n date: getCustomDateTime(-12, 'minutes', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n },\r\n {\r\n id: 435,\r\n profilePic: 'https://via.placeholder.com/150',\r\n name: 'Johna Say',\r\n date: getCustomDateTime(-30, 'minutes', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n },\r\n {\r\n id: 54345,\r\n profilePic: 'https://via.placeholder.com/150',\r\n name: 'Nikunj Lee',\r\n date: getCustomDateTime(-50, 'minutes', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n },\r\n {\r\n id: 7656,\r\n profilePic: 'https://via.placeholder.com/150',\r\n name: 'Kennie Sebestian',\r\n date: getCustomDateTime(-120, 'minutes', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n },\r\n {\r\n id: 875456,\r\n profilePic: 'https://via.placeholder.com/150',\r\n name: 'Bose Warne',\r\n date: getCustomDateTime(-1, 'days', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n },\r\n ],\r\n photos: [\r\n {\r\n id: 1,\r\n thumb: '/assets/images/wall/pic1.png',\r\n },\r\n {\r\n id: 2,\r\n thumb: '/assets/images/wall/pic2.png',\r\n },\r\n {\r\n id: 3,\r\n thumb: '/assets/images/wall/pic3.png',\r\n },\r\n {\r\n id: 4,\r\n thumb: '/assets/images/wall/pic4.png',\r\n },\r\n {\r\n id: 5,\r\n thumb: '/assets/images/wall/pic5.png',\r\n },\r\n {\r\n id: 6,\r\n thumb: '/assets/images/wall/pic2.png',\r\n },\r\n {\r\n id: 7,\r\n thumb: '/assets/images/wall/pic5.png',\r\n },\r\n {\r\n id: 8,\r\n thumb: '/assets/images/wall/pic1.png',\r\n },\r\n {\r\n id: 9,\r\n thumb: '/assets/images/wall/pic3.png',\r\n },\r\n ],\r\n recentNews: [\r\n {\r\n id: 1,\r\n user: {\r\n name: 'Kara Blake',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n title: 'New Post Design',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n },\r\n {\r\n id: 2,\r\n user: {\r\n name: 'Jonathan Lee',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n title: 'New Book Release',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n },\r\n {\r\n id: 3,\r\n user: {\r\n name: 'Johna Khali',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n title: 'Scraping of Law',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n },\r\n {\r\n id: 4,\r\n user: {\r\n name: 'Kara Blake',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n title: 'Inching towards Victory',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n },\r\n ],\r\n whoToFollow: [\r\n {\r\n id: 1,\r\n name: 'Key Chain',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 2,\r\n name: 'Kinda Joe',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 3,\r\n name: 'Subrata Ponting',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 4,\r\n name: 'Kane Twose',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 5,\r\n name: 'Reymen sterio',\r\n profilePic: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n suggestions: [\r\n {\r\n id: 1,\r\n name: 'Facebook Design',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n thumb: '/assets/images/wall/suggestion.png',\r\n },\r\n {\r\n id: 2,\r\n name: 'React Developers',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n thumb: '/assets/images/wall/suggestion.png',\r\n },\r\n {\r\n id: 3,\r\n name: 'Buy & Sell',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n thumb: '/assets/images/wall/suggestion.png',\r\n },\r\n {\r\n id: 4,\r\n name: 'All about travel',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n thumb: '/assets/images/wall/suggestion.png',\r\n },\r\n {\r\n id: 5,\r\n name: 'Javascript Lovers',\r\n desc: 'It is a long established fact that a user will be diverted',\r\n thumb: '/assets/images/wall/suggestion.png',\r\n },\r\n ],\r\n};\r\n\r\nexport const postsList: (PostObj | undefined)[] = [\r\n {\r\n id: 123,\r\n owner: {\r\n name: 'Cripton Rice',\r\n profilePic: 'https://via.placeholder.com/150',\r\n id: 323445,\r\n },\r\n date: getCustomDateTime(-1, 'days', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n attachments: [\r\n {\r\n id: 5445,\r\n path: '/assets/images/timeline/berlin.jpg',\r\n preview: '/assets/images/timeline/berlin.jpg',\r\n metaData: {type: 'images/jpg', size: 2343},\r\n },\r\n {\r\n id: 54546,\r\n path: '/assets/images/timeline/cairo.jpg',\r\n preview: '/assets/images/timeline/cairo.jpg',\r\n metaData: {type: 'images/jpg', size: 2345},\r\n },\r\n ],\r\n message: 'Beautiful cities of Europe...',\r\n liked: true,\r\n likes: 324,\r\n shares: 45,\r\n views: 3456,\r\n comments: [\r\n {\r\n id: 324,\r\n author: {\r\n name: 'John Doe',\r\n profilePic: 'https://via.placeholder.com/150',\r\n id: 3423,\r\n },\r\n liked: true,\r\n comment: 'Wow! these pics are so mesmerizing.',\r\n date: getCustomDateTime(-1, 'days', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n },\r\n ],\r\n },\r\n {\r\n id: 3443,\r\n owner: {\r\n name: 'John Buchanan',\r\n profilePic: 'https://via.placeholder.com/150',\r\n id: 3243,\r\n },\r\n date: getCustomDateTime(-2, 'days', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n attachments: [\r\n {\r\n id: 5445,\r\n path: '/assets/images/timeline/berlin.jpg',\r\n preview: '/assets/images/timeline/berlin.jpg',\r\n metaData: {type: 'images/jpg', size: 2343},\r\n },\r\n {\r\n id: 54546,\r\n path: '/assets/images/timeline/cairo.jpg',\r\n preview: '/assets/images/timeline/cairo.jpg',\r\n metaData: {type: 'images/jpg', size: 2345},\r\n },\r\n ],\r\n message: 'Amazing clicks from my camera!',\r\n liked: false,\r\n likes: 435,\r\n shares: 34,\r\n views: 6544,\r\n comments: [\r\n {\r\n id: 5465,\r\n author: {\r\n name: 'James Jennie',\r\n profilePic: 'https://via.placeholder.com/150',\r\n id: 343432,\r\n },\r\n liked: true,\r\n comment: 'Wow! Excellent, these images are so beautiful.',\r\n date: getCustomDateTime(0, 'days', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n },\r\n ],\r\n },\r\n {\r\n id: 3454,\r\n owner: {\r\n name: 'Josh Blake',\r\n profilePic: 'https://via.placeholder.com/150',\r\n id: 32434,\r\n },\r\n date: getCustomDateTime(-3, 'days', 'ddd MMM DD YYYY kk:mm:ss Z'),\r\n attachments: [\r\n {\r\n id: 54546,\r\n path: '/assets/images/timeline/cairo.jpg',\r\n preview: '/assets/images/timeline/cairo.jpg',\r\n metaData: {type: 'images/jpg', size: 2345},\r\n },\r\n ],\r\n content: '',\r\n liked: true,\r\n likes: 4343,\r\n shares: 34,\r\n views: 3243,\r\n comments: [],\r\n },\r\n];\r\n","import mock from '../../MockConfig';\r\nimport {postsList, wallData} from '../../db/apps/wall';\r\nimport {AxiosRequestConfig} from 'axios';\r\n\r\nlet posts = postsList;\r\n\r\nmock.onGet('/wall').reply(200, wallData);\r\n\r\nmock.onGet('/wall/posts').reply(200, posts);\r\n\r\nmock.onPost('/wall/posts').reply((request: AxiosRequestConfig) => {\r\n const {post} = JSON.parse(request.data);\r\n const newPost = {\r\n id: Math.floor(Math.random() * 10000),\r\n date: new Date().toString(),\r\n likes: 0,\r\n shares: 0,\r\n views: 0,\r\n comments: [],\r\n ...post,\r\n };\r\n posts = [newPost, ...posts];\r\n return [200, newPost];\r\n});\r\n\r\nmock.onPut('/wall/posts').reply((request: AxiosRequestConfig) => {\r\n const {postId, status} = JSON.parse(request.data);\r\n const post = posts.find(item => item!.id === postId);\r\n post!.liked = status;\r\n if (status) {\r\n post!.likes += 1;\r\n } else {\r\n post!.likes -= 1;\r\n }\r\n posts = posts.map(item => (item!.id === post!.id ? post : item));\r\n return [200, post];\r\n});\r\n\r\nmock.onPost('/wall/posts/comments').reply((request: AxiosRequestConfig) => {\r\n const {postId, comment} = JSON.parse(request.data);\r\n const post = posts.find(item => item!.id === postId);\r\n const newComment = {\r\n id: Math.floor(Math.random() * 10000),\r\n date: new Date().toString(),\r\n liked: false,\r\n ...comment,\r\n };\r\n post!.comments = post!.comments.concat(newComment);\r\n posts = posts.map(item => (item!.id === post!.id ? post : item));\r\n return [200, post];\r\n});\r\n","import {StaffObj} from '../../../../../types/models/apps/Todo';\r\n\r\nexport const staffList: StaffObj[] = [\r\n {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 506,\r\n name: 'Marcus Vaughan',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n];\r\n","import {blue, green, red} from '@material-ui/core/colors';\r\nimport {PriorityObj} from '../../../../../types/models/apps/Todo';\r\n\r\nconst priorityList: PriorityObj[] = [\r\n {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n];\r\nexport default priorityList;\r\n","import {blue, green, grey, red} from '@material-ui/core/colors';\r\nimport {TodoObj} from '../../../../../types/models/apps/Todo';\r\n\r\nconst todoList: TodoObj[] = [\r\n {\r\n id: 783232,\r\n title: 'Call Adam to check the documentation',\r\n isStarred: true,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n ],\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n folderValue: 121,\r\n schedule: 'Oct 18, 2019 8:30 PM',\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'John David',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 12, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'The Task is very important, try to complete it so that we have time for testing.',\r\n name: 'K L Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 20, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 454553,\r\n title: 'Check the documents of audit',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 17, 2019 8:30 PM',\r\n folderValue: 123,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'John Guetta',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 10, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'M S Dhoni',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 25, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 345655,\r\n title: 'Arrange birthday party for the staff',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: false,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 16, 2019 8:30 PM',\r\n isRead: true,\r\n folderValue: 124,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Nathan David',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 09, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Nikit Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 21, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 765645,\r\n title: 'Go to marketing section for diwali gifts',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 15, 2019 8:30 PM',\r\n folderValue: 211,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Nathon Lyon',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 12, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Ravindra Jadeja',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 22, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 765635,\r\n title: 'Ask secretary for meeting minutes',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 14, 2019 8:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Ross Taylor',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 09, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Krishna Kumar',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 19, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 345536,\r\n title: 'To arrange a meeting with React team',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 13, 2019 8:30 PM',\r\n folderValue: 126,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 506,\r\n name: 'Marcus Vaughan',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Mark Williamson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 08, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rehan Kant',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 18, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 785655,\r\n title: 'Arrange a trip for best performing staff members',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 12, 2019 8:30 PM',\r\n folderValue: 124,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Rober Twose',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 07, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rahul Rajan',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 21, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 234554,\r\n title: 'Schedule an interview for hiring React developer',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: false,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 11, 2019 8:30 PM',\r\n folderValue: 125,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Jessy Ryder',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 07, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Shikhar Dhawan',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 22, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 907645,\r\n title: 'Check the documents of audit',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 10, 2019 8:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Shane Bond',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 06, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'shreyas Iyer',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 22, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 678434,\r\n title: 'Download freebie Hello Tune plugin',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n folderValue: 125,\r\n schedule: 'Oct 09, 2019 8:30 PM',\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Martin Fergusen',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 01, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Bhuvneshwar Kumar',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 18, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 789754,\r\n title: 'Arrange a trip for best performing staff members',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 08, 2019 8:30 PM',\r\n folderValue: 124,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Mark Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Oct 05, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Narendra Kumar',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 21, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 345656,\r\n title: 'Check the documents of audit',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: false,\r\n isReplied: false,\r\n label: [],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 07, 2019 8:30 PM',\r\n folderValue: 123,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 506,\r\n name: 'Marcus Vaughan',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Nathan David',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Baichang Bhutia',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 24, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 856787,\r\n title: 'Arrange birthday party for the staff',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 06, 2019 8:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Michael Holding',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rameshwar Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 17, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 234546,\r\n title: 'Arrange a trip for best performing staff members',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 05, 2019 8:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Shane Warne',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Tushar Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 24, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 455643,\r\n title: 'Check the documents of audit',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 04, 2019 8:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Billy Bowden',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rohit Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 25, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 856121,\r\n title: 'Arrange birthday party for the staff',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 03, 2019 8:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Michael Holding',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rameshwar Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 17, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 233346,\r\n title: 'Arrange a trip for best performing staff members',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 02, 2019 8:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Shane Warne',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Tushar Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 24, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 456753,\r\n title: 'Check the documents of audit',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 02, 2019 5:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Billy Bowden',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rohit Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 25, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 32432435,\r\n title: 'Call Adam to check the documentation',\r\n isStarred: true,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n ],\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n folderValue: 121,\r\n schedule: 'Oct 01, 2019 8:30 PM',\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'John David',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 12, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'The Task is very important, try to complete it so that we have time for testing.',\r\n name: 'K L Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 20, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 5467454354,\r\n title: 'Check the documents of audit',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 01, 2019 7:30 PM',\r\n folderValue: 123,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'John Guetta',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'M S Dhoni',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 25, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 5432356454,\r\n title: 'Arrange birthday party for the staff',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: false,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Oct 01, 2019 4:30 PM',\r\n isRead: true,\r\n folderValue: 124,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Nathan David',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Nikit Sharma',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 21, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 4324543234,\r\n title: 'Go to marketing section for diwali gifts',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Sept 28, 2019 8:30 PM',\r\n folderValue: 211,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Nathon Lyon',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Ravindra Jadeja',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 22, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 654343443,\r\n title: 'Ask secretary for meeting minutes',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Sept 21, 2019 7:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Ross Taylor',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Krishna Kumar',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 19, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 86764543,\r\n title: 'To arrange a meeting with React team',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Sept 21, 2019 7:30 PM',\r\n folderValue: 126,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 506,\r\n name: 'Marcus Vaughan',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Mark Williamson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rehan Kant',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 18, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 2344344334,\r\n title: 'Arrange a trip for best performing staff members',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Sept 20, 2019 7:30 PM',\r\n folderValue: 124,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Rober Twose',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Rahul Rajan',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 21, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 767643433,\r\n title: 'Schedule an interview for hiring React developer',\r\n priority: {id: 4354454, name: 'Low', type: 3, color: green[500]},\r\n isStarred: false,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Sept 19, 2019 7:30 PM',\r\n folderValue: 125,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Jessy Ryder',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Shikhar Dhawan',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 22, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 432445554,\r\n title: 'Check the documents of audit',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n schedule: 'Sept 11, 2019 7:30 PM',\r\n folderValue: 121,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Shane Bond',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 3,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'shreyas Iyer',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 22, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 2344354334,\r\n title: 'Download freebie Hello Tune plugin',\r\n priority: {id: 4545554, name: 'High', type: 1, color: red[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n folderValue: 125,\r\n schedule: 'Sept 10, 2019 7:30 PM',\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Martin Fergusen',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 1,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Bhuvneshwar Kumar',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 18, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n {\r\n id: 435544534,\r\n title: 'Arrange a trip for best performing staff members',\r\n priority: {id: 9384234, name: 'Medium', type: 2, color: blue[500]},\r\n isStarred: true,\r\n isReplied: false,\r\n label: [\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n ],\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n schedule: 'Sept 09, 2019 7:30 PM',\r\n folderValue: 124,\r\n image: '/assets/images/dummy2.jpg',\r\n assignedTo: {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdBy: {\r\n name: 'Mark Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n createdOn: 'Sept 05, 2019',\r\n status: 2,\r\n comments: [\r\n {\r\n comment:\r\n 'Call John at 8:00 PM to cross check the things and get a feedback too.',\r\n name: 'Narendra Kumar',\r\n image: 'https://via.placeholder.com/150',\r\n date: 'Dec 21, 2019',\r\n },\r\n ],\r\n content:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\",\r\n },\r\n];\r\nexport default todoList;\r\n","import {FolderObj} from '../../../../../types/models/apps/Todo';\r\n\r\nconst folderList: FolderObj[] = [\r\n {id: 120, name: 'All', alias: 'all', icon: 'group'},\r\n {id: 121, name: 'Starred', alias: 'starred', icon: 'star'},\r\n {id: 122, name: 'Priority', alias: 'priority', icon: 'mail'},\r\n {id: 123, name: 'Scheduled', alias: 'scheduled', icon: 'schedule'},\r\n {id: 124, name: 'Today', alias: 'today', icon: 'today'},\r\n {id: 125, name: 'Completed', alias: 'completed', icon: 'done'},\r\n {id: 126, name: 'Deleted', alias: 'deleted', icon: 'delete'},\r\n];\r\nexport default folderList;\r\n","import {blue, green, grey, red} from '@material-ui/core/colors';\r\nimport {LabelObj} from '../../../../../types/models/apps/Todo';\r\n\r\nexport const labelList: LabelObj[] = [\r\n {\r\n id: 211,\r\n name: 'Html',\r\n alias: 'html',\r\n label: 'Html',\r\n value: 'Html',\r\n color: red[500],\r\n },\r\n {\r\n id: 212,\r\n name: 'CSS',\r\n alias: 'css',\r\n label: 'CSS',\r\n value: 'CSS',\r\n color: blue[500],\r\n },\r\n {\r\n id: 213,\r\n name: 'JQuery',\r\n alias: 'jquery',\r\n label: 'JQuery',\r\n value: 'JQuery',\r\n color: green[500],\r\n },\r\n {\r\n id: 214,\r\n name: 'Node.js',\r\n alias: 'node',\r\n label: 'Node.js',\r\n value: 'Node.js',\r\n color: grey[500],\r\n },\r\n];\r\n\r\nexport const onGetLabel = (labelId: number): LabelObj => {\r\n return labelList.find(label => label.id === labelId)!;\r\n};\r\n","import {StatusObj} from '../../../../../types/models/apps/Todo';\r\n\r\nconst statusList: StatusObj[] = [\r\n {id: 1001, name: 'Pending', type: 1},\r\n {id: 1002, name: 'In Progress', type: 2},\r\n {id: 1003, name: 'Completed', type: 3},\r\n];\r\nexport default statusList;\r\n","import mock from '../../MockConfig';\r\nimport {staffList} from '../../db/apps/todo/staffList';\r\nimport priorityList from '../../db/apps/todo/priorityList';\r\nimport todoList from '../../db/apps/todo/todoList';\r\nimport folderList from '../../db/apps/todo/folderList';\r\nimport {labelList, onGetLabel} from '../../db/apps/todo/labelList';\r\nimport statusList from '../../db/apps/todo/statusList';\r\nimport {AxiosRequestConfig} from 'axios';\r\nimport {TodoObj} from '../../../../types/models/apps/Todo';\r\n\r\nlet todoData = todoList;\r\n\r\nconst onGetTaskList = (name: string, data: TodoObj[]) => {\r\n switch (name) {\r\n case 'all': {\r\n return data.filter(task => task.folderValue !== 126);\r\n }\r\n\r\n case 'starred': {\r\n return data.filter(task => task.folderValue !== 126 && task.isStarred);\r\n }\r\n\r\n case 'priority': {\r\n return data.filter(\r\n task => task.folderValue !== 126 && task.priority.type === 1,\r\n );\r\n }\r\n\r\n case 'scheduled': {\r\n const folderId = folderList.find(folder => folder.alias === name)!.id;\r\n return data.filter(task => task.folderValue === folderId);\r\n }\r\n\r\n case 'today': {\r\n const folderId = folderList.find(folder => folder.alias === name)!.id;\r\n return data.filter(task => task.folderValue === folderId);\r\n }\r\n\r\n case 'completed': {\r\n return data.filter(task => task.folderValue !== 126 && task.status === 3);\r\n }\r\n\r\n case 'deleted': {\r\n return data.filter(task => task.folderValue === 126);\r\n }\r\n default: {\r\n return data;\r\n }\r\n }\r\n};\r\n\r\nmock.onGet('/api/todo/task/list').reply((config: AxiosRequestConfig) => {\r\n const params = config.params;\r\n let folderTaskList = [];\r\n if (params.type === 'folder') {\r\n folderTaskList = onGetTaskList(params.name, todoData);\r\n } else {\r\n const labelType = labelList.find(label => label.alias === params.name)!.id;\r\n folderTaskList = todoData.filter(task => {\r\n const label = task.label.find(label => label.id === labelType);\r\n if (label && task.folderValue !== 126) {\r\n return task;\r\n } else return null;\r\n });\r\n }\r\n const index = params.page * 15;\r\n const total = folderTaskList.length;\r\n const list =\r\n folderTaskList.length > 15\r\n ? folderTaskList.slice(index, index + 15)\r\n : folderTaskList;\r\n return [200, {list, total}];\r\n});\r\n\r\nmock.onGet('/api/todoApp/task/').reply((config: AxiosRequestConfig) => {\r\n const params = config.params;\r\n const response = todoData.find(task => task.id === parseInt(params.id));\r\n return [200, response];\r\n});\r\n\r\nmock.onPut('/api/todoApp/task/').reply((request: AxiosRequestConfig) => {\r\n const {task} = JSON.parse(request.data);\r\n // task.assignedTo = staffList.find(staff => staff.id === task.assignedTo);\r\n todoData = todoData.map(item => (item.id === task.id ? task : item));\r\n return [200, task];\r\n});\r\n\r\nmock.onGet('/api/todo/folders/list').reply(200, folderList);\r\n\r\nmock.onGet('/api/todo/labels/list').reply(200, labelList);\r\n\r\nmock.onGet('/api/todo/staff/list').reply(200, staffList);\r\n\r\nmock.onGet('/api/todo/priority/list').reply(200, priorityList);\r\n\r\nmock.onGet('/api/todo/status/list').reply(200, statusList);\r\n\r\nmock.onPut('/api/todo/update/starred').reply((request: AxiosRequestConfig) => {\r\n const {taskIds, status} = JSON.parse(request.data);\r\n todoData = todoData.map(task => {\r\n if (taskIds.includes(task.id)) {\r\n task.isStarred = !!status;\r\n return task;\r\n } else {\r\n return task;\r\n }\r\n });\r\n return [200, taskIds];\r\n});\r\n\r\nmock.onPut('/api/todo/update/label').reply((request: AxiosRequestConfig) => {\r\n const {taskIds, type} = JSON.parse(request.data);\r\n todoData = todoData.map(task => {\r\n if (taskIds.includes(task.id)) {\r\n if (task.label.includes(type)) {\r\n task.label = task.label.filter(label => label !== type);\r\n return task;\r\n } else {\r\n task.label = task.label.concat(onGetLabel(type));\r\n return task;\r\n }\r\n } else {\r\n return task;\r\n }\r\n });\r\n const updatedTasks = todoData.filter(task => taskIds.includes(task.id));\r\n return [200, updatedTasks];\r\n});\r\n\r\nmock.onPut('/api/todo/update/folder').reply((request: AxiosRequestConfig) => {\r\n const {taskIds, type, name, page} = JSON.parse(request.data);\r\n todoData = todoData.map(task => {\r\n if (taskIds.includes(task.id)) {\r\n task.folderValue = 126;\r\n return task;\r\n } else {\r\n return task;\r\n }\r\n });\r\n let folderTaskList = [];\r\n if (type === 'folder') {\r\n folderTaskList = onGetTaskList(name, todoData);\r\n } else {\r\n const labelType = labelList.find(label => label.alias === name)!.id;\r\n folderTaskList = todoData.filter(task => {\r\n const label = task.label.find(label => label.id === labelType);\r\n if (label && task.folderValue !== 126) {\r\n return task;\r\n } else return null;\r\n });\r\n }\r\n const index = page * 15;\r\n const total = folderTaskList.length;\r\n const list =\r\n folderTaskList.length > 15\r\n ? folderTaskList.slice(index, index + 15)\r\n : folderTaskList;\r\n return [200, {list, total}];\r\n});\r\n\r\nmock.onPut('/api/todo/update/starred').reply((request: AxiosRequestConfig) => {\r\n const {taskIds, status} = JSON.parse(request.data);\r\n todoData = todoData.map(task => {\r\n if (taskIds.includes(task.id)) {\r\n task.isStarred = !!status;\r\n return task;\r\n } else {\r\n return task;\r\n }\r\n });\r\n const updatedTasks = todoData.filter(task => taskIds.includes(task.id));\r\n return [200, updatedTasks];\r\n});\r\n\r\nmock.onPost('/api/todoApp/compose').reply((request: AxiosRequestConfig) => {\r\n const {task} = JSON.parse(request.data);\r\n task.assignedTo = staffList.find(staff => staff.id === task.assignedTo);\r\n task.priority = priorityList.find(\r\n priority => priority.type === task.priority,\r\n );\r\n todoData = [task, ...todoData];\r\n return [200, task];\r\n});\r\n","import {LabelObj} from '../../../../../types/models/apps/ScrumbBoard';\r\n\r\nconst labelList: LabelObj[] = [\r\n {id: 301, name: 'High Priority', type: 1, color: 'red'},\r\n {id: 302, name: 'Important', type: 2, color: 'green'},\r\n {id: 303, name: 'Crema', type: 3, color: 'primary.main'},\r\n {id: 304, name: 'Work Place', type: 4, color: 'text.secondary'},\r\n];\r\nexport default labelList;\r\n","import mock from '../../MockConfig';\r\nimport labelList from '../../db/apps/scrumboard/labelList';\r\nimport boardList from '../../db/apps/scrumboard/boardList';\r\nimport {memberList} from '../../db/apps/scrumboard/memberList';\r\nimport {AxiosRequestConfig} from 'axios';\r\nimport {BoardObj, CardListObj} from '../../../../types/models/apps/ScrumbBoard';\r\n\r\nlet boardData = boardList;\r\n\r\nmock.onGet('/api/scrumboard/board/list').reply(200, boardData);\r\n\r\nmock.onGet('/api/scrumboard/label/list').reply(200, labelList);\r\n\r\nmock.onGet('/api/scrumboard/member/list').reply(200, memberList);\r\n\r\nmock\r\n .onPost('/api/scrumboard/add/board')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {board} = JSON.parse(request.data);\r\n const newBoard = {\r\n id: Math.floor(Math.random() * 10000),\r\n name: board.name,\r\n list: [],\r\n };\r\n boardData = boardData.concat(newBoard);\r\n return [200, newBoard];\r\n });\r\n\r\nmock\r\n .onPut('/api/scrumboard/edit/board')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {board} = JSON.parse(request.data);\r\n boardData = boardData.map(data => (data.id === board.id ? board : data));\r\n return [200, board];\r\n });\r\n\r\nmock.onGet('/api/scrumboard/board/').reply((config: AxiosRequestConfig) => {\r\n const params = config.params;\r\n const response = boardData.find(board => board.id === parseInt(params.id));\r\n return [200, response];\r\n});\r\n\r\nmock.onPost('/api/scrumboard/add/list').reply((request: AxiosRequestConfig) => {\r\n const {boardId, list} = JSON.parse(request.data);\r\n const newList = {\r\n id: Math.floor(Math.random() * 10000),\r\n cards: [],\r\n name: list.name,\r\n };\r\n const updatedBoardList = boardData.map(data => {\r\n if (data.id === boardId) {\r\n data.list = data.list.concat(newList);\r\n return data;\r\n } else {\r\n return data;\r\n }\r\n });\r\n const updatedBoard = updatedBoardList.find(data => data.id === boardId);\r\n return [200, updatedBoard];\r\n});\r\n\r\nmock.onPut('/api/scrumboard/edit/list').reply((request: AxiosRequestConfig) => {\r\n const {boardId, list} = JSON.parse(request.data);\r\n const updatedBoardList = boardData.map(data => {\r\n if (data.id === boardId) {\r\n data.list = data.list.map(item => (item.id === list.id ? list : item));\r\n return data;\r\n } else {\r\n return data;\r\n }\r\n });\r\n const updatedBoard = updatedBoardList.find(data => data.id === boardId);\r\n return [200, updatedBoard];\r\n});\r\n\r\nmock.onPost('/api/scrumboard/add/card').reply((request: AxiosRequestConfig) => {\r\n const {board, list, card} = JSON.parse(request.data);\r\n let selectedBoard: BoardObj = boardData.find(data => data.id === board.id)!;\r\n let selectedList: CardListObj = selectedBoard.list.find(\r\n data => data.id === list.id,\r\n )!;\r\n selectedList.cards = selectedList.cards.concat(card);\r\n selectedBoard.list = selectedBoard.list.map(data =>\r\n data.id === selectedList.id ? selectedList : data,\r\n );\r\n boardData = boardData.map(data =>\r\n data.id === selectedBoard.id ? selectedBoard : data,\r\n );\r\n return [200, selectedBoard];\r\n});\r\n\r\nmock.onPut('/api/scrumboard/edit/card').reply((request: AxiosRequestConfig) => {\r\n const {board, list, card} = JSON.parse(request.data);\r\n let selectedBoard: BoardObj = boardData.find(data => data.id === board.id)!;\r\n let selectedList: CardListObj = selectedBoard.list.find(\r\n data => data.id === list.id,\r\n )!;\r\n selectedList.cards = selectedList.cards.map(data =>\r\n data.id === card.id ? card : data,\r\n );\r\n selectedBoard.list = selectedBoard.list.map(data =>\r\n data.id === selectedList.id ? selectedList : data,\r\n );\r\n boardData = boardData.map(data =>\r\n data.id === selectedBoard.id ? selectedBoard : data,\r\n );\r\n return [200, selectedBoard];\r\n});\r\n\r\nmock\r\n .onPost('/api/scrumboard/delete/card')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {boardId, listId, cardId} = JSON.parse(request.data);\r\n let selectedBoard: BoardObj = boardData.find(data => data.id === boardId)!;\r\n let selectedList: CardListObj = selectedBoard.list.find(\r\n data => data.id === listId,\r\n )!;\r\n selectedList.cards = selectedList.cards.filter(data => data.id !== cardId);\r\n selectedBoard.list = selectedBoard.list.map(data =>\r\n data.id === selectedList.id ? selectedList : data,\r\n );\r\n boardData = boardData.map(data =>\r\n data.id === selectedBoard.id ? selectedBoard : data,\r\n );\r\n return [200, selectedBoard];\r\n });\r\n\r\nmock\r\n .onPost('/api/scrumboard/delete/board')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {boardId} = JSON.parse(request.data);\r\n boardData = boardData.filter(data => data.id !== boardId);\r\n return [200, boardId];\r\n });\r\n\r\nmock\r\n .onPost('/api/scrumboard/delete/list')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {boardId, listId} = JSON.parse(request.data);\r\n let selectedBoard: BoardObj = boardData.find(data => data.id === boardId)!;\r\n selectedBoard.list = selectedBoard.list.filter(item => item.id !== listId);\r\n boardData = boardData.map(data =>\r\n data.id === selectedBoard.id ? selectedBoard : data,\r\n );\r\n return [200, selectedBoard];\r\n });\r\n","import moment from 'moment';\r\nimport {BoardObj} from '../../../../../types/models/apps/ScrumbBoard';\r\n\r\nconst boardList: BoardObj[] = [\r\n {\r\n id: 2001,\r\n name: 'Dashboard Frontend Application',\r\n list: [\r\n {\r\n id: 3001,\r\n name: 'In Progress',\r\n cards: [\r\n {\r\n id: 4001,\r\n title: 'Call Adam to review the documentation',\r\n attachments: [\r\n {\r\n id: 4434343,\r\n file: {\r\n path: 'asantha.jpg',\r\n name: 'asantha.jpg',\r\n lastModified: 1579117694243,\r\n lastModifiedDate:\r\n 'Thu Jan 16 2020 01:18:14 GMT+0530 (India Standard Time)',\r\n },\r\n preview: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 456544,\r\n file: {\r\n path: 'rahul.jpg',\r\n name: 'rahul.jpg',\r\n lastModified: 1579117694535,\r\n lastModifiedDate:\r\n 'Thu Jan 16 2020 01:18:14 GMT+0530 (India Standard Time)',\r\n },\r\n preview: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n label: [\r\n {id: 301, name: 'High Priority', type: 1, color: 'red'},\r\n {id: 302, name: 'Important', type: 2, color: 'green'},\r\n ],\r\n date: moment('10-12-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2001, title: 'Call Adam to check the latest development'},\r\n {id: 2002, title: 'Meet Roman for further discussion.'},\r\n ],\r\n },\r\n {\r\n id: 4002,\r\n title: 'Fix meeting with John',\r\n attachments: [\r\n {\r\n id: 4353435,\r\n file: {\r\n path: 'narayan.jpg',\r\n name: 'narayan.jpg',\r\n lastModified: 1579117694999,\r\n lastModifiedDate:\r\n 'Thu Jan 16 2020 01:18:14 GMT+0530 (India Standard Time)',\r\n },\r\n preview: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n label: [\r\n {id: 303, name: 'Crema', type: 3, color: 'primary.main'},\r\n {id: 304, name: 'Work Place', type: 4, color: 'text.secondary'},\r\n ],\r\n date: moment('10-13-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2003, title: 'Meet Roman for further discussion.'},\r\n {id: 2004, title: 'Call Adam to check the latest development'},\r\n {id: 2005, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n {\r\n id: 4003,\r\n title: 'Call the client to ask for payment',\r\n attachments: [],\r\n label: [\r\n {id: 302, name: 'Important', type: 2, color: 'green'},\r\n {id: 304, name: 'Work Place', type: 4, color: 'text.secondary'},\r\n ],\r\n date: moment('10-14-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2006, title: 'Meet Roman for further discussion.'},\r\n {id: 2007, title: 'Call Adam to check the latest development'},\r\n {id: 2008, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: 3002,\r\n name: 'Complete',\r\n cards: [\r\n {\r\n id: 5001,\r\n title: 'Call Adam to review the Crema ThemeProvider documentation',\r\n attachments: [],\r\n label: [\r\n {id: 303, name: 'Crema', type: 3, color: 'primary.main'},\r\n {id: 301, name: 'High Priority', type: 1, color: 'red'},\r\n ],\r\n date: moment('10-16-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2009, title: 'Meet Roman for further discussion.'},\r\n {id: 2010, title: 'Call Adam to check the latest development'},\r\n {id: 2011, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n {\r\n id: 5002,\r\n title: 'Call the corporate office for fixing the meeting',\r\n attachments: [],\r\n label: [{id: 303, name: 'Crema', type: 3, color: 'primary.main'}],\r\n date: moment('10-17-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 506,\r\n name: 'Marcus Vaughan',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2012, title: 'Meet Roman for further discussion.'},\r\n {id: 2013, title: 'Call Adam to check the latest development'},\r\n {id: 2014, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n {\r\n id: 5003,\r\n title: 'Visit the HR department for issuing a notice',\r\n attachments: [],\r\n label: [\r\n {id: 302, name: 'Important', type: 2, color: 'green'},\r\n {id: 304, name: 'Work Place', type: 4, color: 'text.secondary'},\r\n ],\r\n date: moment('10-18-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 506,\r\n name: 'Marcus Vaughan',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2015, title: 'Meet Roman for further discussion.'},\r\n {id: 2016, title: 'Call Adam to check the latest development'},\r\n {id: 2017, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n {\r\n id: 5004,\r\n title: 'Schedule the interview for React Js developer',\r\n attachments: [],\r\n label: [\r\n {id: 301, name: 'High Priority', type: 1, color: 'red'},\r\n {id: 304, name: 'Work Place', type: 4, color: 'text.secondary'},\r\n ],\r\n date: moment('10-19-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2018, title: 'Meet Roman for further discussion.'},\r\n {id: 2019, title: 'Call Adam to check the latest development'},\r\n {id: 2020, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: 3003,\r\n name: 'Pending',\r\n cards: [\r\n {\r\n id: 6001,\r\n title: 'Organize party for new joinees',\r\n attachments: [],\r\n label: [\r\n {id: 302, name: 'Important', type: 2, color: 'green'},\r\n {id: 303, name: 'Crema', type: 3, color: 'primary.main'},\r\n ],\r\n date: moment('10-18-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2021, title: 'Meet Roman for further discussion.'},\r\n {id: 2022, title: 'Call Adam to check the latest development'},\r\n {id: 2023, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n {\r\n id: 6002,\r\n title: 'Call John to discuss the production report',\r\n attachments: [],\r\n label: [\r\n {id: 301, name: 'High Priority', type: 1, color: 'red'},\r\n {id: 303, name: 'Crema', type: 3, color: 'primary.main'},\r\n ],\r\n date: moment('10-19-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2024, title: 'Meet Roman for further discussion.'},\r\n {id: 2025, title: 'Call Adam to check the latest development'},\r\n {id: 2026, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n {\r\n id: 6003,\r\n title: 'Go to town for purchasing purpose',\r\n attachments: [\r\n {\r\n id: 434543435,\r\n file: {\r\n path: 'dashboard crypto.jpg',\r\n name: 'dashboard crypto.jpg',\r\n lastModified: 1579117694243,\r\n lastModifiedDate:\r\n 'Thu Jan 16 2020 01:18:14 GMT+0530 (India Standard Time)',\r\n },\r\n preview: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n label: [\r\n {id: 302, name: 'Important', type: 2, color: 'green'},\r\n {id: 304, name: 'Work Place', type: 4, color: 'text.secondary'},\r\n ],\r\n date: moment('10-20-2019', 'MM-DD-YYYY'),\r\n comments: [],\r\n desc:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n members: [\r\n {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n ],\r\n checkedList: [\r\n {id: 2027, title: 'Meet Roman for further discussion.'},\r\n {id: 2028, title: 'Call Adam to check the latest development'},\r\n {id: 2029, title: 'Select Restaurant for meeting.'},\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\nexport default boardList;\r\n","import {MemberObj} from '../../../../../types/models/apps/ScrumbBoard';\r\n\r\nexport const memberList: MemberObj[] = [\r\n {\r\n id: 501,\r\n name: 'Johnson',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 502,\r\n name: 'Joe Root',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 503,\r\n name: 'Monty Panesar',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 504,\r\n name: 'Darren Gough',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 505,\r\n name: 'Andy Caddick',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n {\r\n id: 506,\r\n name: 'Marcus Vaughan',\r\n image: 'https://via.placeholder.com/150',\r\n },\r\n];\r\n","import React from 'react';\r\nimport IntlMessages from '../../../../utility/IntlMessages';\r\nimport {FolderObj} from '../../../../../types/models/apps/Mail';\r\n\r\nconst folderList: FolderObj[] = [\r\n {id: 121, name: 'Inbox', alias: 'inbox', icon: 'mail'},\r\n {id: 122, name: 'Sent', alias: 'sent', icon: 'person'},\r\n {id: 123, name: 'Draft', alias: 'draft', icon: 'drafts'},\r\n {id: 124, name: 'Starred', alias: 'starred', icon: 'starBorder'},\r\n {id: 125, name: 'Spam', alias: 'spam', icon: 'infoSharp'},\r\n {id: 126, name: 'Trash', alias: 'trash', icon: 'delete'},\r\n {id: 127, name: 'Archive', alias: 'archive', icon: 'archive'},\r\n];\r\nexport default folderList;\r\n\r\nexport const mailListMessages = (type: number) => {\r\n switch (type) {\r\n case 125: {\r\n return '' + ;\r\n }\r\n case 126: {\r\n return '' + ;\r\n }\r\n case 127: {\r\n return '' + ;\r\n }\r\n default: {\r\n return '' + ;\r\n }\r\n }\r\n};\r\n","import PersonIcon from '@material-ui/icons/Person';\r\nimport WorkIcon from '@material-ui/icons/Work';\r\nimport React from 'react';\r\nimport {blue, green, grey, red} from '@material-ui/core/colors';\r\nimport {LabelObj} from '../../../../../types/models/apps/Mail';\r\n\r\nconst labelList: LabelObj[] = [\r\n {\r\n id: 211,\r\n name: 'Crema',\r\n alias: 'crema',\r\n color: red[500],\r\n icon: ,\r\n },\r\n {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n {\r\n id: 213,\r\n name: 'Work',\r\n alias: 'work',\r\n color: green[500],\r\n icon: ,\r\n },\r\n {\r\n id: 214,\r\n name: 'Paypal',\r\n alias: 'paypal',\r\n color: grey[500],\r\n icon: ,\r\n },\r\n];\r\nexport default labelList;\r\n","import {ConnectionObj} from '../../../../../types/models/apps/Mail';\r\n\r\nconst connectionList: ConnectionObj[] = [\r\n {\r\n id: 311,\r\n name: 'John Paul',\r\n status: 'God is One',\r\n image: '/assets/images/dummy2.jpg',\r\n email: 'john.paul@crema.com',\r\n address: 'ABC house, Bikaner',\r\n designation: 'CEO',\r\n },\r\n {\r\n id: 312,\r\n name: 'Rahul Dravid',\r\n status: 'Keep Calm and Work Hard!',\r\n image: '/assets/images/dummy1.jpg',\r\n email: 'rahul.dravid@crema.com',\r\n address: 'CDE house, Bikaner',\r\n designation: 'React Developer',\r\n },\r\n {\r\n id: 313,\r\n name: 'Will Smith',\r\n status: 'Battery about to die',\r\n image: '/assets/images/dummy2.jpg',\r\n email: 'will.smith@crema.com',\r\n address: 'XYZ house, Bikaner',\r\n designation: 'Marketing Manager',\r\n },\r\n];\r\nexport default connectionList;\r\n","import mock from '../../MockConfig';\r\nimport folderList from '../../db/apps/mail/folderList';\r\nimport labelList from '../../db/apps/mail/labelList';\r\nimport connectionList from '../../db/apps/mail/connectionList';\r\nimport mailData from '../../db/apps/mail/mailList';\r\nimport {AxiosRequestConfig} from 'axios';\r\nimport {MailObj} from '../../../../types/models/apps/Mail';\r\n\r\nlet mailList = mailData;\r\n\r\nmock.onGet('/api/mailApp/mail/').reply((config: AxiosRequestConfig) => {\r\n const params = config.params;\r\n const response = mailList.find(mail => mail.id === parseInt(params.id));\r\n return [200, response];\r\n});\r\n\r\nmock.onGet('/api/mailApp/mails/list').reply(200, mailList);\r\n\r\nmock.onGet('/api/mailApp/folders/list').reply(200, folderList);\r\n\r\nmock.onGet('/api/mailApp/labels/list').reply(200, labelList);\r\n\r\nmock.onGet('/api/mailApp/connection/list').reply(200, connectionList);\r\n\r\nmock\r\n .onGet('/api/mailApp/folder/mail/List')\r\n .reply((config: AxiosRequestConfig) => {\r\n const params = config.params;\r\n let folderMailList: MailObj[] = [];\r\n if (params.type === 'folder') {\r\n if (params.name === 'starred') {\r\n folderMailList = mailList.filter(mail => mail.isStarred);\r\n } else {\r\n const folderId = folderList.find(\r\n folder => folder.alias === params.name,\r\n )!.id;\r\n folderMailList = mailList.filter(mail => mail.folderValue === folderId);\r\n }\r\n } else if (params.type === 'label') {\r\n const labelType = labelList.find(label => label.alias === params.name)!\r\n .id;\r\n folderMailList = mailList.filter(mail => mail.label.id === labelType);\r\n }\r\n const index = params.page * 15;\r\n const total = folderMailList.length;\r\n const list =\r\n folderMailList.length > 15\r\n ? folderMailList.slice(index, index + 15)\r\n : folderMailList;\r\n return [200, {list, total}];\r\n });\r\n\r\nmock.onPut('/api/mailApp/update/mails').reply((request: AxiosRequestConfig) => {\r\n const mails = request.data;\r\n return [200, mails];\r\n});\r\n\r\nmock\r\n .onPut('/api/mailApp/update/starred')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {mailIds, status} = JSON.parse(request.data);\r\n mailList = mailList.map(mail => {\r\n if (mailIds.includes(mail.id)) {\r\n mail.isStarred = !!status;\r\n return mail;\r\n } else {\r\n return mail;\r\n }\r\n });\r\n const updatedMails = mailList.filter(mail => mailIds.includes(mail.id));\r\n return [200, updatedMails];\r\n });\r\n\r\nmock\r\n .onPut('/api/mailApp/update/folder')\r\n .reply((request: AxiosRequestConfig) => {\r\n const {mailIds, type} = JSON.parse(request.data);\r\n mailList = mailList.map(mail => {\r\n if (mailIds.includes(mail.id)) {\r\n mail.folderValue = type;\r\n return mail;\r\n } else {\r\n return mail;\r\n }\r\n });\r\n return [200, mailIds];\r\n });\r\n\r\nmock.onPut('/api/mailApp/update/label').reply((request: AxiosRequestConfig) => {\r\n const {mailIds, type} = JSON.parse(request.data);\r\n mailList = mailList.map(mail => {\r\n if (mailIds.includes(mail.id)) {\r\n mail.label = type;\r\n return mail;\r\n } else {\r\n return mail;\r\n }\r\n });\r\n const updatedMails = mailList.filter(mail => mailIds.includes(mail.id));\r\n return [200, updatedMails];\r\n});\r\n\r\nmock.onPut('/api/mailApp/mail/').reply((request: AxiosRequestConfig) => {\r\n const {mail} = JSON.parse(request.data);\r\n mailList = mailList.map(item => (item.id === mail.id ? mail : item));\r\n return [200, mail];\r\n});\r\n\r\nmock.onPut('/api/mailApp/update/read').reply((request: AxiosRequestConfig) => {\r\n const {mailIds, status} = JSON.parse(request.data);\r\n mailList = mailList.map(mail => {\r\n if (mailIds.includes(mail.id)) {\r\n mail.isRead = status;\r\n return mail;\r\n } else {\r\n return mail;\r\n }\r\n });\r\n const updatedMails = mailList.filter(mail => mailIds.includes(mail.id));\r\n return [200, updatedMails];\r\n});\r\n\r\nmock.onPost('/api/mailApp/compose').reply((request: AxiosRequestConfig) => {\r\n const {mail} = JSON.parse(request.data);\r\n mailList = [mail, ...mailList];\r\n return [200, mail];\r\n});\r\n","import WorkIcon from '@material-ui/icons/Work';\r\nimport React from 'react';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport {blue, green, grey, red} from '@material-ui/core/colors';\r\nimport {MailObj} from '../../../../../types/models/apps/Mail';\r\n\r\nconst mailList: MailObj[] = [\r\n {\r\n id: 411,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: true,\r\n label: {\r\n id: 214,\r\n name: 'Paypal',\r\n alias: 'paypal',\r\n color: grey[500],\r\n icon: ,\r\n },\r\n sentBy: 'Dribble',\r\n subject: '[Dribble] Work Enquiry - Website Development',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n isRead: true,\r\n folderValue: 121,\r\n sentOn: 'Thu, Oct 18, 2019 8:30 PM',\r\n senderMailId: 'dribbble.help@dribbble.com',\r\n },\r\n {\r\n id: 412,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n sentBy: 'Paytm',\r\n subject: 'Your Movie Tickets for Sahoo',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Wed, Oct 17, 2019 8:30 PM',\r\n isRead: true,\r\n folderValue: 121,\r\n senderMailId: 'paytm.help@paytm.com',\r\n },\r\n {\r\n id: 413,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n sentBy: 'Bitcoins Support',\r\n subject:\r\n 'Bitcoins IP Whitelist mail: Please approve this IP to continue to login',\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n sentOn: 'Tues, Oct 15, 2019 8:30 PM',\r\n isRead: true,\r\n folderValue: 123,\r\n senderMailId: 'bitcoin.help@bitcoin.com',\r\n },\r\n {\r\n id: 414,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n sentBy: 'Symu Freebies',\r\n subject: 'Download freebie Hello Tune plugin',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Tues, Oct 15, 2019 7:30 PM',\r\n isRead: false,\r\n folderValue: 121,\r\n senderMailId: 'help@freebies.com',\r\n },\r\n {\r\n id: 415,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n sentBy: 'Flipkart',\r\n subject: 'Big Billion Day sale coming, Are you ready?',\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n sentOn: 'Mon, Oct 14, 2019 8:30 PM',\r\n isRead: true,\r\n folderValue: 121,\r\n senderMailId: 'noReply@flipkart.com',\r\n },\r\n {\r\n id: 416,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 211,\r\n name: 'Crema',\r\n alias: 'crema',\r\n color: red[500],\r\n icon: ,\r\n },\r\n sentBy: 'Dribbble',\r\n subject: '[Dribble] Work Enquiry - Website Development',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Sun, Oct 13, 2019 8:30 PM',\r\n isRead: true,\r\n folderValue: 123,\r\n senderMailId: 'dribbble.help@dribbble.com',\r\n },\r\n {\r\n id: 417,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 213,\r\n name: 'Work',\r\n alias: 'work',\r\n color: green[500],\r\n icon: ,\r\n },\r\n sentBy: 'Paytm',\r\n subject: 'Your Movie Tickets for Sahoo',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Sat, Oct 12, 2019 8:30 PM',\r\n isRead: false,\r\n folderValue: 121,\r\n senderMailId: 'offers@paytm.com',\r\n },\r\n {\r\n id: 418,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n sentBy: 'Bitcoins Support',\r\n subject:\r\n 'Bitcoins IP Whitelist mail: Please approve this IP to continue to login',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Fri, Oct 11, 2019 8:30 PM',\r\n isRead: true,\r\n folderValue: 123,\r\n senderMailId: 'support@bitcoin.com',\r\n },\r\n {\r\n id: 419,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n sentBy: 'Symu Freebies',\r\n subject: 'Download freebie Hello Tune plugin',\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n sentOn: 'Thru, Oct 10, 2019 8:30 PM',\r\n isRead: false,\r\n folderValue: 121,\r\n senderMailId: 'offers@symuFreebies.com',\r\n },\r\n {\r\n id: 420,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 213,\r\n name: 'Work',\r\n alias: 'work',\r\n color: green[500],\r\n icon: ,\r\n },\r\n sentBy: 'Flipkart',\r\n subject: 'Big Billion Day sale coming, Are you ready?',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n isRead: true,\r\n folderValue: 121,\r\n sentOn: 'Tues, Oct 09, 2019 8:30 PM',\r\n senderMailId: 'contact@flipkart.com',\r\n },\r\n {\r\n id: 421,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 214,\r\n name: 'Paypal',\r\n alias: 'paypal',\r\n color: grey[500],\r\n icon: ,\r\n },\r\n sentBy: 'Dribbble',\r\n subject: '[Dribble] Work Enquiry - Website Development',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Mon, Oct 08, 2019 8:30 PM',\r\n isRead: false,\r\n folderValue: 127,\r\n senderMailId: 'dribbble.help@dribbble.com',\r\n },\r\n {\r\n id: 422,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 211,\r\n name: 'Crema',\r\n alias: 'crema',\r\n color: red[500],\r\n icon: ,\r\n },\r\n sentBy: 'Paytm',\r\n subject: 'Your Movie Tickets for Sahoo',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Mon, Oct 08, 2019 6:30 PM',\r\n isRead: false,\r\n folderValue: 123,\r\n senderMailId: 'sale@paytm.com',\r\n },\r\n {\r\n id: 423,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 214,\r\n name: 'Paypal',\r\n alias: 'paypal',\r\n color: grey[500],\r\n icon: ,\r\n },\r\n sentBy: 'Bitcoins Support',\r\n subject:\r\n 'Bitcoins IP Whitelist mail: Please approve this IP to continue to login',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Sun, Oct 07, 2019 6:30 PM',\r\n isRead: false,\r\n folderValue: 127,\r\n senderMailId: 'help@bitcoin.com',\r\n },\r\n {\r\n id: 424,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 211,\r\n name: 'Crema',\r\n alias: 'crema',\r\n color: red[500],\r\n icon: ,\r\n },\r\n sentBy: 'Symu Freebies',\r\n subject: 'Download freebie Hello Tune plugin',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n sentOn: 'Sat, Oct 06, 2019 6:30 PM',\r\n isRead: false,\r\n folderValue: 121,\r\n senderMailId: 'symu.help@freebies.com',\r\n },\r\n {\r\n id: 425,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 212,\r\n name: 'Personal',\r\n alias: 'personal',\r\n color: blue[500],\r\n icon: ,\r\n },\r\n sentBy: 'Flipkart',\r\n subject: 'Big Billion Day sale coming, Are you ready?',\r\n isAttachment: true,\r\n sentAt: '10.30am',\r\n sentOn: 'Sat, Oct 06, 2019 4:30 PM',\r\n isRead: true,\r\n folderValue: 127,\r\n senderMailId: 'noReply.help@flipkart.com',\r\n },\r\n {\r\n id: 426,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 214,\r\n name: 'Paypal',\r\n alias: 'paypal',\r\n color: grey[500],\r\n icon: ,\r\n },\r\n sentBy: 'Amazon',\r\n subject: 'Offers you can not miss!',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n isRead: true,\r\n folderValue: 121,\r\n sentOn: 'Fri, Oct 05, 2019 6:30 PM',\r\n senderMailId: 'offers@amazon.in',\r\n },\r\n {\r\n id: 427,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 214,\r\n name: 'Paypal',\r\n alias: 'paypal',\r\n color: grey[500],\r\n icon: ,\r\n },\r\n sentBy: 'SBI YONO',\r\n subject: 'Use SBI YONO for faster banking',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n isRead: true,\r\n folderValue: 121,\r\n sentOn: 'Wed, Oct 03, 2019 6:30 PM',\r\n senderMailId: 'yono@sbi.com',\r\n },\r\n {\r\n id: 435,\r\n isChecked: false,\r\n isStarred: false,\r\n isReplied: false,\r\n label: {\r\n id: 213,\r\n name: 'Work',\r\n alias: 'work',\r\n color: green[500],\r\n icon: ,\r\n },\r\n sentBy: 'Naukri.com',\r\n subject: 'Thank you for being with us!',\r\n isAttachment: false,\r\n sentAt: '10.30am',\r\n isRead: true,\r\n folderValue: 121,\r\n sentOn: 'Wed, Oct 03, 2019 6:30 PM',\r\n senderMailId: 'noreply@nokri.com',\r\n },\r\n];\r\nexport default mailList;\r\n","export interface UserList {\r\n id: number;\r\n name: string;\r\n image: string;\r\n skills: string[];\r\n information: string;\r\n email: string;\r\n phone: string;\r\n website: string;\r\n charge: number;\r\n readTime: string;\r\n shares: string;\r\n retweets: string;\r\n topic: string;\r\n}\r\n\r\nconst userList: UserList[] = [\r\n {\r\n id: 13223,\r\n name: 'Asantha Powel',\r\n image: 'https://via.placeholder.com/150',\r\n skills: ['React', 'Javascript', 'Native', 'Drupal'],\r\n information:\r\n \"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.\",\r\n email: 'asantha@example.com',\r\n phone: '+91324534563',\r\n website: 'www.asantha.com',\r\n charge: 20,\r\n readTime: '2 minutes',\r\n shares: '5k',\r\n retweets: '25k',\r\n topic: 'Job Interviews',\r\n },\r\n {\r\n id: 32433,\r\n name: 'Alastair Jordan',\r\n image: 'https://via.placeholder.com/150',\r\n skills: ['Java', 'Javascript', 'Flutter', 'Drupal'],\r\n information:\r\n \"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.\",\r\n email: 'alastair@example.com',\r\n phone: '+9145424363',\r\n website: 'www.alastair.com',\r\n charge: 18,\r\n readTime: '6 minutes',\r\n shares: '15k',\r\n retweets: '235k',\r\n topic: 'Health and Medicine',\r\n },\r\n {\r\n id: 54534,\r\n name: 'Johnson Bravo',\r\n image: 'https://via.placeholder.com/150',\r\n skills: ['PHP', 'HTML', 'Native', 'Drupal'],\r\n information:\r\n \"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.\",\r\n email: 'johnson@example.com',\r\n phone: '+9135432445',\r\n website: 'www.johnson.com',\r\n charge: 25,\r\n readTime: '8 minutes',\r\n shares: '59k',\r\n retweets: '225k',\r\n topic: 'World Economy',\r\n },\r\n {\r\n id: 43432,\r\n name: 'Johana Peterson',\r\n image: 'https://via.placeholder.com/150',\r\n skills: ['Wordpress', 'Laravel', 'Native', 'CMS'],\r\n information:\r\n \"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.\",\r\n email: 'johana@example.com',\r\n phone: '+9134352343',\r\n website: 'www.johana.com',\r\n charge: 20,\r\n readTime: '5 minutes',\r\n shares: '52k',\r\n retweets: '125k',\r\n topic: 'Study & Stress',\r\n },\r\n {\r\n id: 35623,\r\n name: 'Heath Streak',\r\n image: 'https://via.placeholder.com/150',\r\n skills: ['Angular', 'Javascript', 'Flutter', 'Android'],\r\n information:\r\n \"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.\",\r\n email: 'heath@example.com',\r\n phone: '+91345542435',\r\n website: 'www.heath.com',\r\n charge: 22,\r\n readTime: '4 minutes',\r\n shares: '59k',\r\n retweets: '525k',\r\n topic: 'Technology Advancement',\r\n },\r\n {\r\n id: 76312,\r\n name: 'Sunita Gough',\r\n image: 'https://via.placeholder.com/150',\r\n skills: ['Vue', 'Java', 'Native', 'Swift'],\r\n information:\r\n \"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.\",\r\n email: 'sunita@example.com',\r\n phone: '+1334534563',\r\n website: 'www.sunita.com',\r\n charge: 30,\r\n readTime: '11 minutes',\r\n\r\n shares: '125k',\r\n retweets: '255k',\r\n topic: 'Aeronautical Science',\r\n },\r\n];\r\nexport default userList;\r\n","import mock from '../../MockConfig';\r\nimport userList from '../../db/userList';\r\n\r\nmock.onGet('/api/user/list').reply(200, userList);\r\n","import mock from './MockConfig';\r\nimport './auth'; //include auth initial config\r\nimport './apis';\r\n\r\nmock.onAny().passThrough();\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry); \r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n}\r\n\r\nexport default reportWebVitals;\r\n","import 'react-app-polyfill/ie11';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport 'react-perfect-scrollbar/dist/css/styles.css';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\n\r\nimport './shared/styles/index.css';\r\nimport App from './App';\r\nimport '@crema/services';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\n//hide URL search bar\r\nwindow.scrollTo(0, 1);\r\n\r\nlet vh = window.innerHeight * 0.01;\r\n// Then we set the value in the --vh custom property to the root of the document\r\ndocument.documentElement.style.setProperty('--vh', `${vh}px`);\r\n\r\n// We listen to the resize event\r\nwindow.addEventListener('resize', () => {\r\n // We execute the same script as before\r\n let vh = window.innerHeight * 0.01;\r\n document.documentElement.style.setProperty('--vh', `${vh}px`);\r\n});\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","import moment from 'moment';\r\nimport {AuthUser} from '../../types/models/AuthUser';\r\nimport {AuthType, APIBaseUrl} from './AppEnums';\r\n\r\nexport const authRole = {\r\n admin: ['admin'],\r\n user: ['user', 'admin'],\r\n};\r\n\r\nexport const defaultUser: AuthUser = {\r\n uid: 'RFedvhji876rfhjuecvh7',\r\n displayName: 'John Alex',\r\n email: 'demo@example.com',\r\n token: 'access-token',\r\n role: authRole.user,\r\n authType: AuthType.AUTH0,\r\n photoURL: 'https://via.placeholder.com/150',\r\n};\r\nexport const menuUrl = '/dashboards/e-commerce'; // this url will open after login\r\nexport const initialUrl = '/home'; \r\nexport const invalidUrl = '/error-pages/invalidLink'; // this url initial '/error-pages/invalidLink'\r\n//export const homeUrl = () => { return '/home?outletState='+localStorage.getItem('GSC_locstate')+'&outletCode='+localStorage.getItem('GSC_locid'); }// this url initial\r\nexport const homeUrl = () => { return '/home' }// this url initial\r\nexport const userinfoUrl = () => { return '/home?outletRegion='+localStorage.getItem(phase+'_GSC_locregion')+'&outletCode='+localStorage.getItem(phase+'_GSC_locid'); }// this url initial\r\n\r\nconst setAPIBaseUrl = (env: string) => {\r\n if(env === 'DEV')\r\n return APIBaseUrl.DEV; \r\n else if(env === 'PROD')\r\n return APIBaseUrl.PROD; \r\n}\r\n\r\nexport const apiBaseUrl:APIBaseUrl | undefined = setAPIBaseUrl('PROD'); //DEV,UAT,PROD\r\nexport const CSOMTUrl = setAPIBaseUrl('PROD')+'/CSOMT'; //URL for CSO Maintenance Screen\r\nexport const maxOrder= 10; //Max products per transaction\r\nexport const maxItems= 10; //Max items per product\r\n//export const maxDaysPreOrder = 1; //Control max days for preorder \r\nexport const timeToGetOrderStatus = 8; //minutes to get order status\r\nexport const charShowMore= 30; //More than max char will appear show more for user to click\r\nexport const timeToTriggerStatusAPI = 8; //8 seconds to trigger order status API\r\n\r\nconst operationDateTime = moment(new Date()).add(1, 'days').format(\"dddd, DD MMMM YYYY\");\r\nexport const notificationMessage = 'Food and drinks purchased are valid for same-day redemption only.\\nKindly redeem your purchase from the GSC concessions counter by ' \r\n+ operationDateTime + ', before 5.59am.';\r\nexport const version = '2.2';\r\nexport const phase = 'P2';\r\n\r\nexport const openTime = 8 * 60 + 0 ;//System Start Service Time\r\nexport const closeTime = 23 * 60 + 55 ;//System Stop Service Time","import {\r\n Addresses,\r\n BrandData,\r\n CartItems,\r\n CustomersData,\r\n DiscountList,\r\n IdealFor,\r\n ProductColors,\r\n ProductTypes,\r\n ProductData,\r\n RecentOrders,\r\n OrderData,\r\n CinemaDetails,\r\n StateList,\r\n} from '../../../../types/models/ecommerce/EcommerceApp';\r\n\r\nexport const brandData: BrandData[] = [\r\n {\r\n id: 1,\r\n name: 'Sushi',\r\n },\r\n {\r\n id: 2,\r\n name: 'Sashimi',\r\n },\r\n {\r\n id: 3,\r\n name: 'Appertizer',\r\n },\r\n {\r\n id: 4,\r\n name: 'Donburi',\r\n },\r\n {\r\n id: 5,\r\n name: 'Noodles',\r\n },\r\n {\r\n id: 6,\r\n name: 'Drinks',\r\n },\r\n];\r\n\r\nexport const productTypes: ProductTypes = {\r\n 1: 'Sushi',\r\n 2: 'Sashimi',\r\n 3: 'Appetizer',\r\n 4: 'Donburi',\r\n 5: 'Noodle',\r\n 6: 'Drinks',\r\n};\r\n\r\nexport const productColors: ProductColors = {\r\n BLUE: '#0A8FDC',\r\n GREY: '#8781BD',\r\n PARROT: '#A3D39C',\r\n RED: '#CD5C5C',\r\n PINK: '#F69679',\r\n PURPLE: '#912ADC',\r\n};\r\n\r\nexport const idealFor: IdealFor[] = [\r\n {\r\n id: 1,\r\n name: 'Couple',\r\n },\r\n {\r\n id: 2,\r\n name: 'Men',\r\n },\r\n {\r\n id: 3,\r\n name: 'Women',\r\n },\r\n {\r\n id: 4,\r\n name: 'ALL',\r\n },\r\n];\r\n\r\nexport const addresses: Addresses[] = [\r\n {\r\n id: 1,\r\n name: 'Crema User',\r\n mobile: '+1 508-966-0591',\r\n addressLine: '777 Brockton Avenue',\r\n city: 'Abington MA',\r\n pin: '2351',\r\n },\r\n {\r\n id: 2,\r\n name: 'Crema User',\r\n mobile: '+1 508-966-0592',\r\n addressLine: '250 Hartford Avenue',\r\n city: 'Bellingham MA',\r\n pin: '2322',\r\n },\r\n {\r\n id: 3,\r\n name: 'Crema User',\r\n mobile: '+1 508-966-0593',\r\n addressLine: '700 Oak Street',\r\n city: 'Brockton MA',\r\n pin: '2301',\r\n },\r\n];\r\n\r\nexport const discountList: DiscountList[] = [\r\n {\r\n id: 1,\r\n name: '60% or more',\r\n },\r\n {\r\n id: 2,\r\n name: '50% or more',\r\n },\r\n {\r\n id: 3,\r\n name: '40% or more',\r\n },\r\n {\r\n id: 4,\r\n name: '30% or more',\r\n },\r\n {\r\n id: 5,\r\n name: '20% or more',\r\n },\r\n {\r\n id: 6,\r\n name: '10% or more',\r\n },\r\n];\r\n\r\nexport const cartItems: CartItems[] = [\r\n /*\r\n {\r\n id: 1,\r\n title: \"Edamame\",\r\n mrp: '120',\r\n discount: '25',\r\n brand: 'Appetizer',\r\n type: productTypes[3],\r\n image: './assets/images/ecommerce/Edamame.png',\r\n count: 1,\r\n },\r\n {\r\n id: 2,\r\n title: \"Inari\",\r\n mrp: '125',\r\n discount: '20',\r\n brand: 'Sushi',\r\n type: productTypes[1],\r\n image: './assets/images/ecommerce/Inari.png',\r\n count: 1,\r\n },\r\n {\r\n id: 3,\r\n title: 'Salmon Sushi',\r\n mrp: '100',\r\n discount: '30',\r\n brand: 'Sushi',\r\n type: productTypes[1],\r\n image: './assets/images/ecommerce/SalmonSushi.png',\r\n count: 1,\r\n },\r\n*/\r\n];\r\n\r\n// export const drinks: ProductData[] = [\r\n// {\r\n// id: 8,\r\n// title: \"Green Tea\",\r\n// description:\r\n// 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n// mrp: '1',\r\n// discount: '0',\r\n// ideaFor: 2,\r\n// brand: 6,\r\n// rating: 2,\r\n// type: \"Drinks\",\r\n// color: \"\",\r\n// reviews: 4323,\r\n// image: [\r\n// {\r\n// id: 344,\r\n// src: './assets/images/ecommerce/GreenTea.png',\r\n// },\r\n// {\r\n// id: 4342,\r\n// src: './assets/images/ecommerce/GreenTea.png',\r\n// },\r\n// {\r\n// id: 7654,\r\n// src: './assets/images/ecommerce/GreenTea.png',\r\n// },\r\n// {\r\n// id: 3232,\r\n// src: './assets/images/ecommerce/GreenTea.png',\r\n// },\r\n// ],\r\n// },\r\n// {\r\n// id: 9,\r\n// title: \"Iced Lemon Tea\",\r\n// description:\r\n// 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n// mrp: '7',\r\n// discount: '0',\r\n// brand: 6,\r\n// ideaFor: 1,\r\n// rating: 5,\r\n// type: productTypes[6],\r\n// color: productColors.GREY,\r\n// reviews: 2000,\r\n// image: [\r\n// {\r\n// id: 0,\r\n// src: './assets/images/ecommerce/IcedLemonTea.png',\r\n// },\r\n// {\r\n// id: 0,\r\n// src: './assets/images/ecommerce/IcedLemonTea.png',\r\n// },\r\n// {\r\n// id: 42334324,\r\n// src: './assets/images/ecommerce/IcedLemonTea.png',\r\n// },\r\n// {\r\n// id: 333245,\r\n// src: './assets/images/ecommerce/IcedLemonTea.png',\r\n// },\r\n// ],\r\n// },\r\n// ];\r\n\r\nconst ecommerceData: ProductData[] = [\r\n // {\r\n // id: 1,\r\n // title: \"Edamame\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '5',\r\n // discount: '0',\r\n // rating: 5,\r\n // ideaFor: 1,\r\n // brand: 3,\r\n // type: productTypes[3],\r\n // color: productColors.PARROT,\r\n // reviews: 2000,\r\n // image: [\r\n // {\r\n // id: 3332,\r\n // src: './assets/images/ecommerce/Edamame.png',\r\n // },\r\n // {\r\n // id: 43554,\r\n // src: './assets/images/ecommerce/Edamame.png',\r\n // },\r\n // {\r\n // id: 434324,\r\n // src: './assets/images/ecommerce/Edamame.png',\r\n // },\r\n // {\r\n // id: 33245,\r\n // src: './assets/images/ecommerce/Edamame.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 2,\r\n // title: \"Inari\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '3',\r\n // brand: 1,\r\n // ideaFor: 3,\r\n // discount: '0',\r\n // rating: 4,\r\n // type: productTypes[1],\r\n // color: productColors.PINK,\r\n // reviews: 4356,\r\n // image: [\r\n // {\r\n // id: 3,\r\n // src: './assets/images/ecommerce/Inari.png',\r\n // },\r\n // {\r\n // id: 43,\r\n // src: './assets/images/ecommerce/Inari.png',\r\n // },\r\n // {\r\n // id: 23,\r\n // src: './assets/images/ecommerce/Inari.png',\r\n // },\r\n // {\r\n // id: 54,\r\n // src: './assets/images/ecommerce/Inari.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 3,\r\n // title: 'Salmon Sushi',\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '5',\r\n // ideaFor: 4,\r\n // brand: 1,\r\n // discount: '0',\r\n // rating: 4,\r\n // type: productTypes[1],\r\n // color: productColors.PINK,\r\n // reviews: 235,\r\n // image: [\r\n // {\r\n // id: 4343,\r\n // src: './assets/images/ecommerce/SalmonSushi.png',\r\n // },\r\n // {\r\n // id: 323243,\r\n // src: './assets/images/ecommerce/SalmonSushi.png',\r\n // },\r\n // {\r\n // id: 325432,\r\n // src: './assets/images/ecommerce/SalmonSushi.png',\r\n // },\r\n // {\r\n // id: 653323,\r\n // src: './assets/images/ecommerce/SalmonSushi.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 4,\r\n // title: \"Salmon Mentai\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '5',\r\n // discount: '0',\r\n // rating: 4,\r\n // ideaFor: 2,\r\n // brand: 1,\r\n // type: productTypes[1],\r\n // color: productColors.PINK,\r\n // reviews: 4323,\r\n // image: [\r\n // {\r\n // id: 4343443,\r\n // src: './assets/images/ecommerce/SalmonMentai.png',\r\n // },\r\n // {\r\n // id: 324324,\r\n // src: './assets/images/ecommerce/SalmonMentai.png',\r\n // },\r\n // {\r\n // id: 655434,\r\n // src: './assets/images/ecommerce/SalmonMentai.png',\r\n // },\r\n // {\r\n // id: 243443,\r\n // src: './assets/images/ecommerce/SalmonMentai.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 5,\r\n // title: \"Oyaka Don\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '12',\r\n // ideaFor: 1,\r\n // brand: 4,\r\n // discount: '0',\r\n // rating: 3,\r\n // type: productTypes[4],\r\n // color: productColors.BLUE,\r\n // reviews: 2000,\r\n // image: [\r\n // {\r\n // id: 43434345,\r\n // src: './assets/images/ecommerce/OyakaDon.png',\r\n // },\r\n // {\r\n // id: 44343,\r\n // src: './assets/images/ecommerce/OyakaDon.png',\r\n // },\r\n // {\r\n // id: 5654443,\r\n // src: './assets/images/ecommerce/OyakaDon.png',\r\n // },\r\n // {\r\n // id: 433343,\r\n // src: './assets/images/ecommerce/OyakaDon.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 6,\r\n // title: \"Chicken Katsudon\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '12',\r\n // discount: '0',\r\n // ideaFor: 3,\r\n // brand: 4,\r\n // rating: 3,\r\n // type: productTypes[4],\r\n // color: productColors.BLUE,\r\n // reviews: 4356,\r\n // image: [\r\n // {\r\n // id: 4354,\r\n // src: './assets/images/ecommerce/ChickenKatsudon.png',\r\n // },\r\n // {\r\n // id: 2343,\r\n // src: './assets/images/ecommerce/ChickenKatsudon.png',\r\n // },\r\n // {\r\n // id: 233,\r\n // src: './assets/images/ecommerce/ChickenKatsudon.png',\r\n // },\r\n // {\r\n // id: 544,\r\n // src: './assets/images/ecommerce/ChickenKatsudon.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 7,\r\n // title: 'Chuka Wakame',\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '5',\r\n // ideaFor: 4,\r\n // brand: 3,\r\n // discount: '0',\r\n // rating: 4,\r\n // type: productTypes[3],\r\n // color: productColors.PARROT,\r\n // reviews: 235,\r\n // image: [\r\n // {\r\n // id: 4344343,\r\n // src: './assets/images/ecommerce/ChukaWakame.png',\r\n // },\r\n // {\r\n // id: 32443243,\r\n // src: './assets/images/ecommerce/ChukaWakame.png',\r\n // },\r\n // {\r\n // id: 32544432,\r\n // src: './assets/images/ecommerce/ChukaWakame.png',\r\n // },\r\n // {\r\n // id: 654333323,\r\n // src: './assets/images/ecommerce/ChukaWakame.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 10,\r\n // title: \"Niku\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '9',\r\n // discount: '0',\r\n // ideaFor: 2,\r\n // brand: 5,\r\n // rating: 4,\r\n // type: productTypes[5],\r\n // color: productColors.PURPLE,\r\n // reviews: 4356,\r\n // image: [\r\n // {\r\n // id: 32222,\r\n // src: './assets/images/ecommerce/Niku.png',\r\n // },\r\n // {\r\n // id: 3333,\r\n // src: './assets/images/ecommerce/Niku.png',\r\n // },\r\n // {\r\n // id: 4444,\r\n // src: './assets/images/ecommerce/Niku.png',\r\n // },\r\n // {\r\n // id: 5555,\r\n // src: './assets/images/ecommerce/Niku.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 11,\r\n // title: 'Cha Soba',\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '9',\r\n // discount: '0',\r\n // rating: 3,\r\n // ideaFor: 3,\r\n // brand: 5,\r\n // type: productTypes[5],\r\n // color: productColors.PURPLE,\r\n // reviews: 235,\r\n // image: [\r\n // {\r\n // id: 43333332343,\r\n // src: './assets/images/ecommerce/ChaSoba.png',\r\n // },\r\n // {\r\n // id: 323232,\r\n // src: './assets/images/ecommerce/ChaSoba.png',\r\n // },\r\n // {\r\n // id: 54554,\r\n // src: './assets/images/ecommerce/ChaSoba.png',\r\n // },\r\n // {\r\n // id: 4343232,\r\n // src: './assets/images/ecommerce/ChaSoba.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 8,\r\n // title: \"Salmon Shashimi\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '15',\r\n // discount: '0',\r\n // rating: 4,\r\n // ideaFor: 2,\r\n // type: productTypes[2],\r\n // color: productColors.RED,\r\n // reviews: 4323,\r\n // brand: 2,\r\n // image: [\r\n // {\r\n // id: 43343443,\r\n // src: './assets/images/ecommerce/SalmonShashimi.png',\r\n // },\r\n // {\r\n // id: 333224324,\r\n // src: './assets/images/ecommerce/SalmonShashimi.png',\r\n // },\r\n // {\r\n // id: 5545454,\r\n // src: './assets/images/ecommerce/SalmonShashimi.png',\r\n // },\r\n // {\r\n // id: 42332323,\r\n // src: './assets/images/ecommerce/SalmonShashimi.png',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // id: 9,\r\n // title: \"Toro Shashimi\",\r\n // description:\r\n // 'It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters',\r\n // mrp: '15',\r\n // discount: '0',\r\n // rating: 4,\r\n // ideaFor: 2,\r\n // type: productTypes[2],\r\n // color: productColors.RED,\r\n // reviews: 4323,\r\n // brand: 2,\r\n // image: [\r\n // {\r\n // id: 43343443,\r\n // src: './assets/images/ecommerce/ToroShashimi.png',\r\n // },\r\n // {\r\n // id: 333224324,\r\n // src: './assets/images/ecommerce/ToroShashimi.png',\r\n // },\r\n // {\r\n // id: 5545454,\r\n // src: './assets/images/ecommerce/ToroShashimi.png',\r\n // },\r\n // {\r\n // id: 42332323,\r\n // src: './assets/images/ecommerce/ToroShashimi.png',\r\n // },\r\n // ],\r\n // },\r\n];\r\n export const recentOrders: RecentOrders[] = [\r\n // {\r\n // Transaction:\r\n // {\r\n // TrxnOutletId:'268',\r\n // TrxnNo:'6374757',\r\n // TrxnDate:'2020-03-12 13:30:01',\r\n // CollectionDate:'2021-09-12',\r\n // },\r\n // Concessions:\r\n // [\r\n // {\r\n // ProductCode:'2006001',\r\n // ProductName:'Combo 1',\r\n // ProductQty:1,\r\n // ProductPrice:15,\r\n // },\r\n // {\r\n // ProductCode:'2006002',\r\n // ProductName:'Combo 2',\r\n // ProductQty:2,\r\n // ProductPrice:19,\r\n // },\r\n // ],\r\n // Summary: {\r\n // TotalNetPaymentDesc: 'Total',\r\n // TotalNetPayment: 34,\r\n // },\r\n // QRCode:'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',\r\n // },\r\n ];\r\n\r\nexport const customersData: CustomersData[] = [\r\n {\r\n id: 1,\r\n name: 'Josh Rash',\r\n email: 'josh@exmaple.com',\r\n lastItem: 'Apple Watch',\r\n lastOrder: '26 Aug',\r\n rating: '4.6',\r\n balance: '$125',\r\n address: '675 Grove Street Bethpage, NY 11714',\r\n joinDate: '23 Jan, 2015',\r\n },\r\n {\r\n id: 2,\r\n name: 'Josh Rash',\r\n email: 'josh@exmaple.com',\r\n lastItem: 'Apple Watch',\r\n lastOrder: '26 Aug',\r\n rating: '4.6',\r\n balance: '$125',\r\n address: '675 Grove Street Bethpage, NY 11714',\r\n joinDate: '23 Jan, 2015',\r\n },\r\n {\r\n id: 3,\r\n name: 'Josh Rash',\r\n email: 'josh@exmaple.com',\r\n lastItem: 'Apple Watch',\r\n lastOrder: '26 Aug',\r\n rating: '4.6',\r\n balance: '$125',\r\n address: '675 Grove Street Bethpage, NY 11714',\r\n joinDate: '23 Jan, 2015',\r\n },\r\n {\r\n id: 4,\r\n name: 'Josh Rash',\r\n email: 'josh@exmaple.com',\r\n lastItem: 'Apple Watch',\r\n lastOrder: '26 Aug',\r\n rating: '4.6',\r\n balance: '$125',\r\n address: '675 Grove Street Bethpage, NY 11714',\r\n joinDate: '23 Jan, 2015',\r\n },\r\n {\r\n id: 5,\r\n name: 'Josh Rash',\r\n email: 'josh@exmaple.com',\r\n lastItem: 'Apple Watch',\r\n lastOrder: '26 Aug',\r\n rating: '4.6',\r\n balance: '$125',\r\n address: '675 Grove Street Bethpage, NY 11714',\r\n joinDate: '23 Jan, 2015',\r\n },\r\n];\r\n\r\nexport const orderData: OrderData[] = [\r\n {\r\n id: 1,\r\n branch: 'OneUtama',\r\n table: 1,\r\n date: '20210601',\r\n time: '1000',\r\n orderid: 'OU-1',\r\n },\r\n {\r\n id: 2,\r\n branch: 'OneUtama',\r\n table: 2,\r\n date: '20210801',\r\n time: '1000',\r\n orderid: 'OU-2',\r\n },\r\n {\r\n id: 3,\r\n branch: 'Damansara3',\r\n table: 1,\r\n date: '20210601',\r\n time: '1000',\r\n orderid: 'D3-1',\r\n },\r\n {\r\n id: 4,\r\n branch: 'Damansara3',\r\n table: 2,\r\n date: '20210601',\r\n time: '1000',\r\n orderid: 'D3-2',\r\n },\r\n {\r\n id: 5,\r\n branch: 'ParadigmMall',\r\n table: 1,\r\n date: '20210601',\r\n time: '1000',\r\n orderid: 'PD-1',\r\n },\r\n];\r\n\r\nexport const cinemalist : CinemaDetails[] = [\r\n\t{ \r\n id:'118', \r\n name:'GSC Gurney Plaza',\r\n }, \t\r\n\t{ \r\n id:'120', \r\n name:'GSC Queensbay Mall',\r\n }, \r\n\t{ \r\n id:'123', \r\n name:'GSC Sunway Carnival',\r\n }, \r\n\t{ \r\n id:'132', \r\n name:'GSC Amanjaya Mall',\r\n }, \r\n\t{ \r\n id:'133', \r\n name:'GSC Aman Central',\r\n }, \r\n\t{ \r\n id:'135', \r\n name:'GSC Kulim Central',\r\n }, \r\n\t{ \r\n id:'136', \r\n name:'GSC Central Square',\r\n }, \r\n\t{ \r\n id:'151', \r\n name:'GSC Ipoh Parade Mall',\r\n }, \r\n\t{ \r\n id:'210', \r\n name:'GSC Mid Valley',\r\n }, \r\n\t{ id:'211', name:'GSC Cheras Leisure Mall',}, \r\n\t{ id:'212', name:'GSC MyTown',}, \r\n\t{ id:'213', name:'GSC EkoCheras Mall',}, \r\n\t{ id:'215', name:'Aurum The Gardens Mall',}, \r\n\t{ id:'221', name:'GSC Berjaya Times Square',}, \r\n\t{ id:'223', name:'GSC NU Sentral',}, \r\n\t{ id:'231', name:'GSC Quill City Mall',}, \r\n\t{ id:'233', name:'GSC Setapak Central',}, \r\n\t{ id:'235', name:'GSC Kepong Village Mall',}, \r\n\t{ id:'250', name:'GSC Summit USJ',}, \r\n\t{ id:'251', name:'GSC Subang Parade',}, \r\n\t{ id:'253', name:'GSC IOI Mall (Puchong)',},\r\n\t{ id:'255', name:'GSC Alamanda',},\r\n\t{ id:'256', name:'GSC Setia City Mall',},\r\n\t{ id:'257', name:'GSC IOI City Mall (Putrajaya)',},\r\n\t{ id:'258', name:'GSC Klang Parade',},\r\n\t{ id:'260', name:'GSC 1 Utama',},\r\n\t{ id:'265', name:'GSC 3 Damansara (formerly Tropicana City Mall)',},\r\n\t{ id:'266', name:'GSC The Starling Mall',},\r\n\t{ id:'267', name:'GSC CITTA Mall',},\r\n\t{ id:'268', name:'GSC Paradigm Mall (Petaling Jaya)',},\r\n\t{ id:'269', name:'GSC Tropicana Gardens Mall',},\r\n\t{ id:'281', name:'GSC Melawati Mall',},\r\n\t{ id:'310', name:'GSC Terminal 1',},\r\n\t{ id:'311', name:'GSC Palm Mall',},\r\n\t{ id:'331', name:'GSC Dataran Pahlawan',},\r\n\t{ id:'333', name:'GSC Aeon Bandaraya Melaka',},\r\n\t{ id:'355', name:'GSC Paradigm Mall (Johor Bahru)',},\r\n\t{ id:'356', name:'GSC Southkey Mall',},\r\n\t{ id:'358', name:'GSC Kluang Mall',},\r\n\t{ id:'359', name:'GSC KSL City Mall',},\r\n\t{ id:'361', name:'GSC Square One Shopping Mall',},\r\n\t{ id:'362', name:'GSC Heritage Mall',},\r\n\t{ id:'410', name:'GSC Berjaya Megamall (Kuantan)',},\r\n\t{ id:'420', name:'GSC East Coast Mall',},\r\n\t{ id:'430', name:'GSC Mentakab Star Mall',},\r\n\t{ id:'431', name:'GSC Kuantan City Mall',},\r\n\t{ id:'520', name:'GSC 1Borneo',},\r\n\t{ id:'530', name:'GSC Suria Sabah Mall',},\r\n\t{ id:'531', name:'GSC IMAGO Shopping Mall',},\r\n\t{ id:'550', name:'GSC Bintang Megamall',},\r\n\t{ id:'551', name:'GSC CityONE Megamall (Kuching)',},\r\n\t{ id:'552', name:'GSC The Spring',},\r\n];\r\n\r\n\r\nexport const statelist : StateList[] = [\r\n {\r\n id:'JHR',\r\n name:'Johor',\r\n },\r\n {\r\n id:'KDH',\r\n name:'Kedah',\r\n },\r\n {\r\n id:'KTN',\r\n name:'Kelantan',\r\n },\r\n {\r\n id:'KUL',\r\n name:'Kuala Lumpur',\r\n },\r\n {\r\n id:'LBN',\r\n name:'Labuan',\r\n },\r\n {\r\n id:'MLK',\r\n name:'Malacca',\r\n },\r\n {\r\n id:'NSN',\r\n name:'Negeri Sembilan',\r\n },\r\n {\r\n id:'OTHERS',\r\n name:'Others',\r\n },\r\n {\r\n id:'PHG',\r\n name:'Pahang',\r\n },\r\n {\r\n id:'PJY',\r\n name:'Putrajaya',\r\n },\r\n {\r\n id:'PLS',\r\n name:'Perlis',\r\n },\r\n {\r\n id:'PNG',\r\n name:'Penang',\r\n },\r\n {\r\n id:'PRK',\r\n name:'Perak',\r\n },\r\n {\r\n id:'SBH',\r\n name:'Sabah',\r\n },\r\n {\r\n id:'SGR',\r\n name:'Selangor',\r\n },\r\n {\r\n id:'SWK',\r\n name:'Sarawak',\r\n },\r\n {\r\n id:'TRG',\r\n name:'Terengganu',\r\n },\r\n]\r\nexport default ecommerceData;\r\n","import Api from '../../@crema/services/ApiConfig';\r\nimport {fetchError, fetchStart, fetchSuccess} from './Common';\r\nimport {AppActions} from '../../types';\r\nimport {Dispatch} from 'redux';\r\nimport {\r\n GET_ACADEMY_DATA,\r\n GET_ANALYTICS_DATA,\r\n GET_CRM_DATA,\r\n GET_CRYPTO_DATA,\r\n GET_ECOMMERCE_DATA,\r\n GET_HEALTH_CARE_DATA,\r\n GET_METRICS_DATA,\r\n GET_WIDGETS_DATA,\r\n} from '../../types/actions/Dashboard.action';\r\n\r\nexport const onGetAcademyData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/academy')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_ACADEMY_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\nexport const onGetHCData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/health_care')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_HEALTH_CARE_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\nexport const onGetECommerceData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/ecommerce')\r\n .then(data => {\r\n if (data.status === 200) {\r\n //dispatch(fetchSuccess());\r\n dispatch({type: GET_ECOMMERCE_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onGetAnalyticsData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/analytics')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_ANALYTICS_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onGetCrmData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/crm')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_CRM_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onGetCryptoData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/crypto')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_CRYPTO_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onGetMetricsData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/metrics')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_METRICS_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onGetWidgetsData = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/dashboard/widgets')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_WIDGETS_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};","import jwtAxios from '../../@crema/services/auth/jwt-auth/jwt-api';\r\nimport {fetchError, fetchStart, fetchSuccess} from './Common';\r\nimport {AuthType} from '../../shared/constants/AppEnums';\r\nimport {defaultUser, phase} from '../../shared/constants/AppConst';\r\nimport {AuthUser} from '../../types/models/AuthUser';\r\nimport {AppActions} from '../../types';\r\nimport {Dispatch} from 'redux';\r\nimport {\r\n SET_AUTH_TOKEN,\r\n SIGNOUT_AUTH_SUCCESS,\r\n UPDATE_AUTH_USER,\r\n} from '../../types/actions/Auth.actions';\r\n\r\n//import { useCookies } from 'react-cookie';\r\n\r\n// const [cookies, setCookie] = useCookies(['token']);\r\n\r\nexport const onJwtUserSignUp = (body: {\r\n email: string;\r\n password: string;\r\n name: string;\r\n}) => {\r\n return async (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n try {\r\n const res = await jwtAxios.post('users', body);\r\n localStorage.setItem(phase+'_GSC_token', res.data.token);\r\n dispatch(setJWTToken(res.data.token));\r\n await loadJWTUser(dispatch, body);\r\n } catch (err: any) {\r\n console.log('error!!!!', err.response.data.error);\r\n dispatch(fetchError(err.response.data.error));\r\n }\r\n };\r\n};\r\n\r\nexport const onJwtSignIn = (body: {email: string; password: string}, invalidLink: any) => {\r\n return async (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n try {\r\n \r\n // if (body.email!=='' && body.password!=='') {\r\n localStorage.setItem(phase+'_GSC_token', 'access-token-'+ localStorage.getItem(phase+'_GSC_locid'));\r\n //setCookie('token', 'access-token', { path: '/' });\r\n //console.log(cookies['token']); // Pacman\r\n \r\n dispatch(setJWTToken('access-token-'+localStorage.getItem(phase+'_GSC_locid')));\r\n await loadJWTUser(dispatch, body);\r\n // }\r\n // else\r\n // {\r\n // dispatch(invalidLink);\r\n // }\r\n // const res = await jwtAxios.post('auth', body);\r\n // localStorage.setItem('token', res.data.token);\r\n // dispatch(setJWTToken(res.data.token));\r\n // await loadJWTUser(dispatch);\r\n } catch (err: any) {\r\n console.log('error!!!!', err.response.data.error);\r\n dispatch(fetchError(err.response.data.error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadJWTUser = async (dispatch: Dispatch, body: {email: string; password: string}) => {\r\n dispatch(fetchStart());\r\n try {\r\n // if (body.email !== '' && body.password !== '') {\r\n const res : AuthUser[]= [\r\n {\r\n uid: 'OUT1',\r\n displayName: 'One Utama - Table 1',\r\n email: 'OneUtama',\r\n photoURL: '',\r\n token: 'access-token-'+body.email,\r\n authType: AuthType.JWT_AUTH,\r\n role: defaultUser.role\r\n },\r\n ];\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: UPDATE_AUTH_USER,\r\n payload: getUserObject(res),\r\n });\r\n // }\r\n // const res = await jwtAxios.get('/auth');\r\n // dispatch(fetchSuccess());\r\n // console.log('res.data', res.data);\r\n // dispatch({\r\n // type: UPDATE_AUTH_USER,\r\n // payload: getUserObject(res.data),\r\n // });\r\n } catch (err: any) {\r\n console.log('error!!!!', err.response.error);\r\n dispatch(fetchError(err.response.error));\r\n }\r\n};\r\n\r\nexport const setJWTToken = (token: string | null): AppActions => ({\r\n type: SET_AUTH_TOKEN,\r\n payload: token,\r\n});\r\n\r\nconst getUserObject = (authUser: any): AuthUser => {\r\n return {\r\n authType: AuthType.JWT_AUTH,\r\n displayName: authUser.name,\r\n email: authUser.email,\r\n role: defaultUser.role,\r\n token: authUser._id,\r\n uid: authUser._id,\r\n photoURL: authUser.avatar,\r\n };\r\n};\r\n\r\nexport const onJWTAuthSignout = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchSuccess());\r\n setTimeout(() => {\r\n dispatch({type: SIGNOUT_AUTH_SUCCESS});\r\n dispatch(fetchSuccess());\r\n localStorage.removeItem(phase+'_GSC_token');\r\n }, 500);\r\n };\r\n};\r\n\r\nexport const onJWTAuthSignoutRedirect = (redirectToHome: any, clearCartItem: any) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchSuccess());\r\n // setTimeout(() => {\r\n dispatch({type: SIGNOUT_AUTH_SUCCESS});\r\n dispatch(fetchSuccess());\r\n localStorage.removeItem(phase+'_GSC_token');\r\n dispatch(clearCartItem);\r\n dispatch(redirectToHome);\r\n // }, 500);\r\n };\r\n};\r\n\r\n","import {Auth} from 'aws-amplify';\r\nimport {AuthType} from '../../shared/constants/AppEnums';\r\nimport {defaultUser} from '../../shared/constants/AppConst';\r\nimport {AuthUser} from '../../types/models/AuthUser';\r\nimport {fetchError, fetchStart, fetchSuccess, showMessage} from './Common';\r\nimport {Dispatch} from 'redux';\r\nimport {AppActions} from '../../types';\r\nimport {UPDATE_AUTH_USER} from '../../types/actions/Auth.actions';\r\n\r\nexport const onConfirmCognitoUserSignup = (\r\n username: string,\r\n confirmCode: string,\r\n history: any,\r\n) => {\r\n const code = confirmCode ? confirmCode : '000000';\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.confirmSignUp(username, code, {\r\n forceAliasCreation: false,\r\n })\r\n .then(data => {\r\n if (data) {\r\n if (history) {\r\n history.replace('/signin');\r\n }\r\n dispatch(\r\n showMessage(\r\n 'Congratulations, Signup process is complete, You can now Sign in by entering correct credentials!',\r\n ),\r\n );\r\n } else {\r\n dispatch(fetchError(data.error));\r\n }\r\n })\r\n .catch(function(error) {\r\n switch (error.code) {\r\n case 'UserNotFoundException': {\r\n return dispatch(fetchError('User not found'));\r\n }\r\n case 'NotAuthorizedException': {\r\n return dispatch(\r\n fetchError('The entered Email address is already registered!'),\r\n );\r\n }\r\n case 'AliasExistsException': {\r\n return dispatch(\r\n fetchError('The entered Email address is already registered!'),\r\n );\r\n }\r\n case 'UsernameExistsException': {\r\n dispatch(\r\n fetchError(\r\n 'you have already started Signup Process, please enter security code to complete the process!',\r\n ),\r\n );\r\n return history.push('/confirm-signup', {email: username});\r\n }\r\n case 'CodeMismatchException': {\r\n if (code === '000000') {\r\n dispatch(\r\n fetchError(\r\n 'you have already started Signup Process, please enter security code to complete the process!',\r\n ),\r\n );\r\n return history.push('/confirm-signup', {email: username});\r\n }\r\n return dispatch(fetchError(error.message));\r\n }\r\n case 'ExpiredCodeException': {\r\n dispatch(\r\n fetchError(\r\n 'The Code you entered is expired, please signup again!',\r\n ),\r\n );\r\n return history.push('/signup');\r\n }\r\n default:\r\n return false;\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport const onSignUpCognitoUser = (\r\n paramData: {email: string; password: string; name: string},\r\n history: any,\r\n) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.signUp({\r\n username: paramData.email,\r\n password: paramData.password,\r\n attributes: {\r\n name: paramData.name,\r\n },\r\n })\r\n .then(data => {\r\n if (data) {\r\n if (history) {\r\n history.push('/confirm-signup', {email: paramData.email});\r\n dispatch(\r\n showMessage(\r\n 'A code has been sent to your registered email address, Enter the code to complete the signup process!',\r\n ),\r\n );\r\n }\r\n }\r\n })\r\n .catch(function(error) {\r\n if (error.code === 'UsernameExistsException') {\r\n dispatch(\r\n fetchError(\r\n 'you have already started Signup Process, please enter security code to complete the process!',\r\n ),\r\n );\r\n return history.push('/confirm-signup', {email: paramData.email});\r\n }\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onSignInCognitoUser = (\r\n data: {email: string; password: string},\r\n history: any,\r\n) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.signIn(data.email, data.password)\r\n .then(user => {\r\n if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {\r\n dispatch({type: UPDATE_AUTH_USER, payload: getUserObject(user)});\r\n history.push('/force-change-password', {email: data.email});\r\n dispatch(fetchSuccess());\r\n } else {\r\n dispatch({\r\n type: UPDATE_AUTH_USER,\r\n payload: getUserObject(user),\r\n });\r\n dispatch(fetchSuccess());\r\n }\r\n })\r\n .catch(function(error) {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nconst getUserObject = (authUser: any): AuthUser => {\r\n return {\r\n authType: AuthType.AWS_COGNITO,\r\n role: defaultUser.role,\r\n uid: authUser.username,\r\n displayName: authUser.attributes.name,\r\n email: authUser.attributes.email,\r\n photoURL: authUser.photoURL,\r\n token: authUser.signInUserSession.accessToken.jwtToken,\r\n };\r\n};\r\n\r\nexport const onChangePasswordFirstTime = (\r\n data: {email: string; password: string},\r\n user: any,\r\n) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.completeNewPassword(user, data.password, {email: data.email})\r\n .then(user => {\r\n localStorage.setItem(\r\n 'token',\r\n user.signInUserSession.accessToken.jwtToken,\r\n );\r\n localStorage.setItem('user', JSON.stringify(user));\r\n // dispatch({type: USER_TOKEN_SET, payload: user.signInUserSession.accessToken.jwtToken});\r\n dispatch({type: UPDATE_AUTH_USER, payload: getUserObject(user)});\r\n dispatch(fetchSuccess());\r\n })\r\n .catch(function(error) {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onResetCognitoPassword = (email: string, history: any) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.forgotPassword(email)\r\n .then(data => {\r\n if (data) {\r\n dispatch(fetchSuccess());\r\n dispatch(\r\n showMessage(\r\n `A code has been sent to registered email address ${data.CodeDeliveryDetails.Destination}`,\r\n ),\r\n );\r\n history.push('/reset-password', {email: email});\r\n } else {\r\n dispatch(fetchError(data.error));\r\n }\r\n })\r\n .catch(function(error) {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onSetNewCognitoPassword = (\r\n email: string,\r\n code: string,\r\n new_password: string,\r\n history: any,\r\n) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.forgotPasswordSubmit(email, code, new_password)\r\n .then(() => {\r\n dispatch(fetchSuccess());\r\n dispatch(showMessage('The new Password has been successfully set'));\r\n history.push('/signin');\r\n })\r\n .catch(function(error) {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const onCognitoUserSignOut = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.signOut().then(() => {\r\n dispatch(fetchSuccess());\r\n dispatch({type: UPDATE_AUTH_USER, payload: null});\r\n });\r\n };\r\n};\r\n\r\nexport const onGetLoggedInCognitoUser = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Auth.currentAuthenticatedUser()\r\n .then(user => {\r\n if (user) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: UPDATE_AUTH_USER,\r\n payload: getUserObject(user),\r\n });\r\n } else {\r\n dispatch(fetchError(user.error));\r\n }\r\n })\r\n .catch(function(error) {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n","import axios from 'axios';\r\nimport {phase} from '../../../../shared/constants/AppConst';\r\n\r\nconst jwtAxios = axios.create({\r\n baseURL: 'https://crema-mongo-api.herokuapp.com/api/', //YOUR_API_URL HERE\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n});\r\njwtAxios.interceptors.response.use(\r\n res => res,\r\n err => {\r\n if (err.response && err.response.data.msg === 'Token is not valid') {\r\n console.log('Need to logout user');\r\n // store.dispatch({type: LOGOUT});\r\n }\r\n return Promise.reject(err);\r\n },\r\n);\r\nexport const setAuthToken = (token: string | null) => {\r\n if (token) {\r\n jwtAxios.defaults.headers.common['x-auth-token'] = token;\r\n localStorage.setItem(phase+'_GSC_token', token);\r\n } else {\r\n delete jwtAxios.defaults.headers.common['x-auth-token'];\r\n localStorage.removeItem(phase+'_GSC_token');\r\n }\r\n};\r\n\r\nexport default jwtAxios;\r\n","export const TOGGLE_NAV_COLLAPSED = 'TOGGLE_NAV_COLLAPSED';\r\nexport const SET_INITIAL_PATH = 'SET_INITIAL_PATH';\r\nexport const ROUTE_CHANGE = '@@router/LOCATION_CHANGE';\r\n\r\nexport interface ToggleNavCollapsedAction {\r\n type: typeof TOGGLE_NAV_COLLAPSED;\r\n}\r\n\r\nexport interface SetInitialPathAction {\r\n type: typeof SET_INITIAL_PATH;\r\n initialPath: string | undefined;\r\n}\r\n\r\nexport interface RouteChangeAction {\r\n type: typeof ROUTE_CHANGE;\r\n}\r\n\r\nexport type SettingsActionTypes =\r\n | ToggleNavCollapsedAction\r\n | SetInitialPathAction\r\n | RouteChangeAction;\r\n","import {\r\n CartItems,\r\n CustomersData,\r\n FilterData,\r\n ProductData,\r\n RecentOrders,\r\n APIProductData,\r\n RecentOrderAPI,\r\n CinemaListAPI,\r\n PhonePrefixAPI,\r\n OrderHistoryAPI,\r\n ConfirmOrderStatusAPI,\r\n WebsiteStatus,\r\n RegionListAPI\r\n} from '../models/ecommerce/EcommerceApp';\r\nimport {VIEW_TYPE} from '../../redux/reducers/Ecommerce';\r\n\r\nexport const GET_CART_ITEM = 'GET_CART_ITEM';\r\nexport const ADD_CART_ITEM = 'ADD_CART_ITEM';\r\nexport const GET_CUSTOMERS = 'GET_CUSTOMERS';\r\nexport const GET_ECOMMERCE_LIST = 'GET_ECOMMERCE_LIST';\r\nexport const SET_ECOMMERCE_LIST = 'SET_ECOMMERCE_LIST';\r\nexport const GET_RECENT_ORDER = 'GET_RECENT_ORDER';\r\nexport const REMOVE_CART_ITEM = 'REMOVE_CART_ITEM';\r\nexport const SET_FILTER_DATA = 'SET_FILTER_DATA';\r\nexport const SET_PRODUCT_DATA = 'SET_PRODUCT_DATA';\r\nexport const SET_PRODUCT_VIEW_TYPE = 'SET_PRODUCT_VIEW_TYPE';\r\nexport const UPDATE_CART_ITEM = 'UPDATE_CART_ITEM';\r\nexport const SET_ORDER_DATA = 'SET_ORDER_DATA';\r\nexport const NEW_CSO_ORDER = 'NEW_CSO_ORDER';\r\nexport const CONFIRM_CSO_ORDER_STATUS = 'CONFIRM_CSO_ORDER_STATUS';\r\nexport const SET_NEW_ORDER = 'SET_NEW_ORDER';\r\nexport const GET_CINEMA_LIST = 'GET_CINEMA_LIST';\r\nexport const GET_PHONE_PREFIX = 'GET_PHONE_PREFIX';\r\nexport const GET_ORDER_HISTORY = 'GET_ORDER_HISTORY';\r\nexport const GET_WEBSITE_STATUS = 'GET_WEBSITE_STATUS';\r\nexport const GET_REGION_LIST = 'GET_REGION_LIST';\r\nexport const CLEAR_CART_ITEM = 'CLEAR_CART_ITEM';\r\nexport const GET_CONFIRM_ORDER_STATUS = 'GET_CONFIRM_ORDER_STATUS';\r\n\r\n//Add by Apple for Asyn Recux Thunk\r\nexport const GET_MENU_ITEM = 'GET_MENU_ITEM';\r\n\r\nexport interface GetMenuItem{\r\n type : typeof GET_MENU_ITEM;\r\n payload: APIProductData;\r\n}\r\n\r\n//Add by Apple for Set and Get order details\r\n// export interface GetOrderDetailsAction {\r\n// type: typeof GET_ORDER_DETAILS;\r\n// payload: OrderDetails;\r\n// }\r\n\r\n// export interface SetOrderDetailsAction {\r\n// type: typeof SET_ORDER_DETAILS;\r\n// payload: OrderDetails;\r\n// }\r\n\r\nexport interface SetCurrentOrder {\r\n type: typeof SET_ORDER_DATA;\r\n payload: RecentOrders;\r\n}\r\n\r\nexport interface SetNewOrder {\r\n type: typeof SET_NEW_ORDER;\r\n payload: RecentOrders | null;\r\n}\r\n\r\nexport interface GetEcommerceAction {\r\n type: typeof GET_ECOMMERCE_LIST;\r\n payload: ProductData[];\r\n}\r\n\r\nexport interface GetCinemaListAction {\r\n type: typeof GET_CINEMA_LIST;\r\n payload: CinemaListAPI;\r\n}\r\n\r\nexport interface GetRegionListAction {\r\n type: typeof GET_REGION_LIST;\r\n payload: RegionListAPI;\r\n}\r\n\r\nexport interface GetCountryPhonePrefixAction {\r\n type: typeof GET_PHONE_PREFIX;\r\n payload: PhonePrefixAPI;\r\n}\r\n\r\nexport interface GetWebsiteStatusAction {\r\n type: typeof GET_WEBSITE_STATUS;\r\n payload: WebsiteStatus;\r\n}\r\n\r\nexport interface GetOrderHistoryAction {\r\n type: typeof GET_ORDER_HISTORY;\r\n payload: OrderHistoryAPI;\r\n}\r\n\r\nexport interface SetEcommerceAction {\r\n type: typeof SET_ECOMMERCE_LIST;\r\n payload: ProductData;\r\n}\r\n\r\nexport interface SetProductDetailAction {\r\n type: typeof SET_PRODUCT_DATA;\r\n payload: ProductData;\r\n}\r\n\r\n// export interface GetRecentOrdersAction {\r\n// type: typeof GET_RECENT_ORDER;\r\n// payload: {\r\n// orders: RecentOrders[];\r\n// orderCount: number;\r\n// };\r\n// }\r\n\r\nexport interface NewCSOOrdersAction {\r\n type: typeof NEW_CSO_ORDER;\r\n payload: RecentOrderAPI;\r\n}\r\n\r\nexport interface ConfirmCSOOrderStatusAction {\r\n type: typeof CONFIRM_CSO_ORDER_STATUS;\r\n payload: {data: ConfirmOrderStatusAPI ; setSubmitting: any; redirectToPayment: any; redirectToMenuList: any;};\r\n}\r\n\r\nexport interface GetRecentOrdersAction {\r\n type: typeof GET_RECENT_ORDER;\r\n payload: RecentOrders[];\r\n}\r\n\r\nexport interface GetCustomersAction {\r\n type: typeof GET_CUSTOMERS;\r\n payload: {customers: CustomersData[]; customerCount: number};\r\n}\r\n\r\nexport interface GetCartItemsAction {\r\n type: typeof GET_CART_ITEM;\r\n payload: CartItems[];\r\n}\r\n\r\nexport interface ClearCartItemsAction {\r\n type: typeof CLEAR_CART_ITEM;\r\n payload: null;\r\n}\r\n\r\nexport interface GetConfirmOrderStatus {\r\n type: typeof GET_CONFIRM_ORDER_STATUS;\r\n payload: null;\r\n}\r\n\r\nexport interface AddCartItemsAction {\r\n type: typeof ADD_CART_ITEM;\r\n payload: {data:ProductData, counter:number};\r\n}\r\n\r\nexport interface RemoveCartItemsAction {\r\n type: typeof REMOVE_CART_ITEM;\r\n payload: CartItems;\r\n}\r\n\r\nexport interface UpdateCartItemsAction {\r\n type: typeof UPDATE_CART_ITEM;\r\n payload: CartItems;\r\n}\r\n\r\nexport interface SetProductViewTypeAction {\r\n type: typeof SET_PRODUCT_VIEW_TYPE;\r\n payload: VIEW_TYPE;\r\n}\r\n\r\nexport interface SetFilterDataAction {\r\n type: typeof SET_FILTER_DATA;\r\n payload: FilterData;\r\n}\r\n\r\nexport type EcommerceActionTypes =\r\n | GetEcommerceAction\r\n | SetEcommerceAction\r\n | SetProductDetailAction\r\n | GetRecentOrdersAction\r\n | GetCustomersAction\r\n | GetCartItemsAction\r\n | AddCartItemsAction\r\n | RemoveCartItemsAction\r\n | UpdateCartItemsAction\r\n | SetProductViewTypeAction\r\n | SetFilterDataAction\r\n | GetMenuItem\r\n | SetCurrentOrder\r\n | NewCSOOrdersAction\r\n | SetNewOrder\r\n | GetCinemaListAction\r\n | GetCountryPhonePrefixAction\r\n | GetOrderHistoryAction\r\n | ConfirmCSOOrderStatusAction\r\n | GetWebsiteStatusAction\r\n | GetRegionListAction\r\n | ClearCartItemsAction\r\n | GetConfirmOrderStatus;\r\n\r\n","import React, {memo} from 'react';\r\nimport {VelocityComponent, VelocityComponentProps} from 'velocity-react';\r\nimport 'velocity-animate/velocity.ui';\r\n\r\ninterface AppAnimateProps extends VelocityComponentProps {\r\n visibility?: string;\r\n duration?: number;\r\n delay?: number;\r\n easing?: any;\r\n display?: any;\r\n children: any;\r\n\r\n [x: string]: any;\r\n}\r\n\r\nconst AppAnimate: React.FC = ({\r\n animation = 'transition.fadeIn',\r\n runOnMount = true,\r\n targetQuerySelector = null,\r\n interruptBehavior = 'stop',\r\n visibility = 'visible',\r\n duration = 400,\r\n delay = 100,\r\n easing = [0.4, 0.0, 0.2, 1],\r\n display = null,\r\n children,\r\n rest,\r\n}) => {\r\n const child = React.cloneElement(children, {\r\n style: {\r\n ...children.style,\r\n visibility: 'hidden',\r\n },\r\n });\r\n return (\r\n \r\n {child}\r\n \r\n );\r\n};\r\n\r\nexport default memo(AppAnimate);\r\n","import React from 'react';\r\nimport {FormattedMessage, injectIntl} from 'react-intl';\r\n\r\nconst InjectMassage = (props: any) => ;\r\nexport default injectIntl(InjectMassage, {\r\n forwardRef: false,\r\n});\r\n","import React, {useContext, useEffect} from 'react';\r\nimport MomentUtils from '@date-io/moment';\r\n// import moment from 'moment';\r\nimport {ThemeProvider} from '@material-ui/styles';\r\nimport {createMuiTheme} from '@material-ui/core/styles';\r\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\r\n\r\nimport AppContext from '../AppContext';\r\nimport AppLocale from 'shared/localization';\r\nimport {responsiveFontSizes} from '@material-ui/core';\r\nimport {useBreakPointDown} from '../Utils';\r\nimport {NavStyle, ThemeMode, ThemeStyle} from 'shared/constants/AppEnums';\r\nimport {useUrlSearchParams} from 'use-url-search-params';\r\nimport AppContextPropsType from '../../../types/AppContextPropsType';\r\n\r\nconst CremaThemeProvider: React.FC = props => {\r\n const {\r\n theme,\r\n locale,\r\n isRTL,\r\n updateThemeMode,\r\n changeNavStyle,\r\n updateThemeStyle,\r\n setRTL,\r\n updateTheme,\r\n } = useContext(AppContext);\r\n const {muiLocale} = AppLocale[locale.locale];\r\n const isBelowMd = useBreakPointDown('md');\r\n\r\n const initailValue: InitialType = {};\r\n const types: TypesType = {};\r\n const [params] = useUrlSearchParams(initailValue, types);\r\n\r\n useEffect(() => {\r\n const updateQuerySetting = () => {\r\n if (params.theme_mode) {\r\n updateThemeMode!(params.theme_mode as ThemeMode);\r\n }\r\n };\r\n updateQuerySetting();\r\n }, [params.theme_mode, updateThemeMode]);\r\n\r\n useEffect(() => {\r\n const updateQuerySetting = () => {\r\n if (params.is_rtl) {\r\n setRTL!(params.is_rtl as boolean);\r\n }\r\n if (params.is_rtl || isRTL) {\r\n document.body.setAttribute('dir', 'rtl');\r\n } else {\r\n document.body.setAttribute('dir', 'ltr');\r\n }\r\n };\r\n updateQuerySetting();\r\n }, [isRTL, params.is_rtl, setRTL]);\r\n\r\n useEffect(() => {\r\n const updateQuerySetting = () => {\r\n if (params.nav_style) {\r\n changeNavStyle!(params.nav_style as NavStyle);\r\n }\r\n };\r\n updateQuerySetting();\r\n }, [changeNavStyle, params.nav_style]);\r\n\r\n useEffect(() => {\r\n const updateQuerySetting = () => {\r\n if (params.theme_style) {\r\n if (params.theme_style === ThemeStyle.MODERN) {\r\n if (isBelowMd) {\r\n theme.overrides.MuiCard.root.borderRadius = 20;\r\n theme.overrides.MuiToggleButton.root.borderRadius = 20;\r\n } else {\r\n theme.overrides.MuiCard.root.borderRadius = 30;\r\n theme.overrides.MuiToggleButton.root.borderRadius = 30;\r\n }\r\n theme.overrides.MuiButton.root.borderRadius = 30;\r\n theme.overrides.MuiCardLg.root.borderRadius = 50;\r\n } else {\r\n theme.overrides.MuiCard.root.borderRadius = 4;\r\n theme.overrides.MuiToggleButton.root.borderRadius = 4;\r\n theme.overrides.MuiButton.root.borderRadius = 4;\r\n theme.overrides.MuiCardLg.root.borderRadius = 4;\r\n }\r\n updateTheme!(theme);\r\n if (\r\n params.theme_style === ThemeStyle.MODERN ||\r\n params.theme_style === ThemeStyle.STANDARD\r\n ) {\r\n updateThemeStyle!(params.theme_style as ThemeStyle);\r\n }\r\n }\r\n };\r\n updateQuerySetting();\r\n }, [params.theme_style, theme, isBelowMd, updateTheme, updateThemeStyle]);\r\n\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(CremaThemeProvider);\r\n","import React from 'react';\r\nimport {create} from 'jss';\r\nimport rtl from 'jss-rtl';\r\nimport {jssPreset, StylesProvider} from '@material-ui/core/styles';\r\n// Configure JSS\r\nconst jss = create({plugins: [...jssPreset().plugins, rtl()]});\r\n\r\nconst CremaStyleProvider: React.FC = props => {\r\n return {props.children};\r\n};\r\nexport default CremaStyleProvider;\r\n","import React, {useContext} from 'react';\r\nimport {IntlProvider} from 'react-intl';\r\n\r\nimport AppLocale from '../../shared/localization';\r\nimport AppContext from './AppContext';\r\nimport AppContextPropsType from '../../types/AppContextPropsType';\r\nimport {IntlGlobalProvider} from './Utils';\r\n\r\nconst LocaleProvider = (props: any) => {\r\n const {locale} = useContext(AppContext);\r\n const currentAppLocale = AppLocale[locale.locale];\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default LocaleProvider;\r\n","import {fade, makeStyles} from '@material-ui/core/styles';\r\nimport {CremaTheme} from '../../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n appToolbar: {\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n minHeight: 56,\r\n [theme.breakpoints.up('sm')]: {\r\n minHeight: 70,\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n paddingLeft: 30,\r\n paddingRight: 30,\r\n },\r\n },\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n menuIcon: {\r\n width: 35,\r\n height: 35,\r\n },\r\n title: {\r\n display: 'none',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'block',\r\n },\r\n },\r\n search: {\r\n position: 'relative',\r\n borderRadius: theme.overrides.MuiCard.root.borderRadius,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n '&:hover': {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginRight: theme.spacing(2),\r\n marginLeft: 0,\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n marginLeft: theme.spacing(3),\r\n width: 'auto',\r\n },\r\n },\r\n searchIcon: {\r\n width: theme.spacing(7),\r\n height: '100%',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 7),\r\n transition: theme.transitions.create('width'),\r\n width: '100%',\r\n [theme.breakpoints.up('md')]: {\r\n width: 200,\r\n },\r\n },\r\n sectionDesktop: {\r\n minHeight: 58,\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n minHeight: 65,\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n appBar: {\r\n width: '100%',\r\n boxShadow: '4px 3px 4px 0px rgba(0,0,0,0.12)',\r\n // [theme.breakpoints.up('lg')]: {\r\n // width: 'calc(100vw - 19rem)',\r\n // },\r\n // [theme.breakpoints.up('xl')]: {\r\n // width: 'calc(100vw - 21.6rem)',\r\n // },\r\n },\r\n menuItemRoot: {\r\n padding: 0,\r\n },\r\n pointer: {\r\n cursor: 'pointer',\r\n },\r\n logoRoot: {\r\n verticalAlign: 'middle',\r\n display: 'inline-block',\r\n height: 30,\r\n },\r\n\r\n\r\n crPopover: {\r\n '& .MuiPopover-paper': {\r\n width: 310,\r\n [theme.breakpoints.up('sm')]: {\r\n width: 330,\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n width: 380,\r\n },\r\n },\r\n '& .scroll-submenu': {\r\n maxHeight: 200,\r\n [theme.breakpoints.up('xl')]: {\r\n maxHeight: 380,\r\n },\r\n },\r\n },\r\n btnPopover: {\r\n borderRadius: 0,\r\n width: '10rem',\r\n textTransform: 'capitalize',\r\n },\r\n btnRoot: {\r\n borderRadius: theme.overrides.MuiCard.root.borderRadius,\r\n width: '10rem',\r\n fontSize: 16,\r\n textTransform: 'capitalize',\r\n },\r\n NotiLocation: {\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n height: 56,\r\n fontSize: 16,\r\n borderRadius: theme.overrides.MuiCard.root.borderRadius,\r\n paddingLeft: '1rem',\r\n paddingRight: '1rem',\r\n color: theme.palette.text.primary,\r\n '&:hover, &:focus': {\r\n color: theme.palette.text.primary,\r\n backgroundColor: 'transparent',\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n height: 70,\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n justifyContent: 'center',\r\n width: 'auto',\r\n //borderLeft: 'solid 1px', // this is the line beside Header Cart\r\n borderColor: theme.palette.grey[200],\r\n color: theme.palette.grey[400],\r\n '&:hover, &:focus': {\r\n color: theme.palette.text.primary,\r\n backgroundColor: 'rgba(0, 0, 0, 0.08)',\r\n },\r\n },\r\n [theme.breakpoints.up('lg')]: {\r\n paddingLeft: '1.5rem',\r\n paddingRight: '1.5rem',\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n paddingLeft: '2.5rem',\r\n paddingRight: '2.5rem',\r\n },\r\n },\r\n notiBtn: {\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n height: 56,\r\n fontSize: 16,\r\n borderRadius: 0,\r\n paddingLeft: '1rem',\r\n paddingRight: '0rem',\r\n color: theme.palette.text.primary,\r\n '&:hover, &:focus': {\r\n color: theme.palette.text.primary,\r\n backgroundColor: 'transparent',\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n height: 70,\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n justifyContent: 'center',\r\n width: 'auto',\r\n //borderLeft: 'solid 1px', // this is the line beside Header Cart\r\n borderColor: theme.palette.grey[200],\r\n color: theme.palette.grey[400],\r\n '&:hover, &:focus': {\r\n color: theme.palette.text.primary,\r\n backgroundColor: 'rgba(0, 0, 0, 0.08)',\r\n },\r\n },\r\n [theme.breakpoints.up('lg')]: {\r\n paddingLeft: '1.5rem',\r\n paddingRight: '1.5rem',\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n paddingLeft: '2.5rem',\r\n paddingRight: '2.5rem',\r\n },\r\n },\r\n listStyle: {\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n },\r\n badgeStyle: {\r\n marginRight: 8,\r\n [theme.breakpoints.down('xs')]: {\r\n marginRight: 0,\r\n },\r\n },\r\n materialUiIcon: {\r\n fontSize: 22,\r\n color: theme.palette.text.secondary,\r\n [theme.breakpoints.up('xl')]: {\r\n fontSize: 30,\r\n },\r\n },\r\n listRoot: {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n snackbar: {\r\n paddingBottom: 0,\r\n position: 'relative',\r\n\t //display: 'flex',\r\n // '& > .scrollbar-container': {\r\n // padding: '20px 20px 0',\r\n // display: 'flex',\r\n // flexDirection: 'column',\r\n // [theme.breakpoints.up('md')]: {\r\n // padding: '60px 32px 0',\r\n // },\r\n // },\r\n }\r\n}));\r\nexport default useStyles;\r\n","import React from 'react';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Box from '@material-ui/core/Box';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport useStyles from './TableItem.style';\r\nimport {Fonts} from '../../../../shared/constants/AppEnums';\r\nimport {CartItems} from '../../../../types/models/ecommerce/EcommerceApp';\r\n\r\ninterface CartTableProps {\r\n data: CartItems;\r\n}\r\n\r\nconst CartTableItem: React.FC = ({data}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.Description}\r\n \r\n \r\n \r\n \r\n \r\n RM{data.SalesAmount.toFixed(2)} x {data.count}\r\n \r\n\r\n \r\n RM{(data.SalesAmount * +data.count).toFixed(2)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CartTableItem;\r\n","import React ,{useEffect} from 'react';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport LocalGroceryStoreIcon from '@material-ui/icons/LocalGroceryStore';\r\n//import WysiwygIcon from '@mui/icons-material/Wysiwyg';\r\n//import messages, {MessageData} from '../../services/db/messages/messages';\r\n// import {makeStyles} from '@material-ui/core';\r\n//import MessageItem from './MessageItem';\r\nimport Popover from '@material-ui/core/Popover';\r\nimport List from '@material-ui/core/List';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Scrollbar from '../Scrollbar';\r\nimport IntlMessages from '../../utility/IntlMessages';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport clsx from 'clsx';\r\nimport {Fonts} from '../../../shared/constants/AppEnums';\r\n//import {CremaTheme} from '../../../types/AppContextPropsType';\r\n\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport {useHistory} from 'react-router-dom';\r\nimport {AppState} from '../../../redux/store';\r\nimport {getCartItems} from '../../../redux/actions/Ecommerce';\r\nimport CartTableItem from '../../../modules/ecommerce/Carts/CartTable/CartTableItem';\r\nimport useStyles from '../AppLayout/Standard/AppHeader.style'; \r\nimport {CartItems} from '../../../types/models/ecommerce/EcommerceApp';\r\n\r\ninterface HeaderMessagesProps {}\r\n\r\nconst HeaderMessages: React.FC = () => {\r\n const [\r\n anchorMessages,\r\n setAnchorMessages,\r\n ] = React.useState(null);\r\n\r\n const onClickCartButton = (\r\n event: React.MouseEvent,\r\n ) => {\r\n setAnchorMessages(event.currentTarget);\r\n };\r\n\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const {cartItems} = useSelector(\r\n ({ecommerce}) => ecommerce,\r\n );\r\n\r\n const getThreeItems = (cartItems: CartItems[]) =>{\r\n return cartItems.slice(0,3);\r\n }\r\n\r\n const getCartCount = () =>{\r\n let cartCount:number = 0;\r\n for(let count=0; count< cartItems.length; count++)\r\n {\r\n cartCount = cartCount + cartItems[count].count;\r\n }\r\n return cartCount;\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(getCartItems());\r\n }, [dispatch]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setAnchorMessages(null)}>\r\n \r\n \r\n {/* Only cart have item, then show View all and cart list */}\r\n {cartItems.length>0 ?\r\n \r\n ({getCartCount()})\r\n \r\n : Your cart is empty.\r\n }\r\n \r\n\r\n {cartItems.length>0 ?\r\n \r\n {\r\n setAnchorMessages(null);\r\n }}>\r\n {getThreeItems(cartItems).map(data => (\r\n \r\n ))}\r\n {cartItems.length>3?\r\n More items in cart ... \r\n \r\n :null}\r\n \r\n \r\n : null }\r\n\r\n {cartItems.length>0 ?\r\n \r\n {\r\n setAnchorMessages(null); //hide cart details after click view all\r\n history.push('/ecommerce/cart');\r\n }}\r\n className={classes.btnRoot}>\r\n \r\n \r\n \r\n :null}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeaderMessages;\r\n","import React, {useContext} from 'react';\r\nimport {Box} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport AppContext from '../../../@crema/utility/AppContext';\r\nimport {ThemeMode} from '../../constants/AppEnums';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport AppContextPropsType from '../../../types/AppContextPropsType';\r\nimport {useHistory} from 'react-router-dom';\r\nimport {useSelector} from 'react-redux';\r\nimport {AppState} from '../../../redux/store';\r\n\r\nconst AppLogo = () => {\r\n const {themeMode} = useContext(AppContext);\r\n const useStyles = makeStyles(() => ({\r\n logoRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n },\r\n logo: {\r\n height: 32,\r\n marginRight: 10,\r\n marginTop: 2,\r\n marginBottom: 2,\r\n },\r\n }));\r\n const classes = useStyles();\r\n const history = useHistory();\r\n\r\n const {loc} = useSelector(({currLoc}) => currLoc);\r\n\r\n return (\r\n {\r\n history.push('/dashboards/e-commerce');\r\n }}\r\n >\r\n \r\n \r\n \r\n {loc.locname !== null? loc.locname : 'Unknown' }\r\n \r\n \r\n \r\n \r\n \r\n {loc.locname !== null? loc.locname: 'Unknown' }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppLogo;\r\n","import React from 'react';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n//import HistoryIcon from '@material-ui/icons/History';\r\n// import Popover from '@material-ui/core/Popover';\r\n// import Box from '@material-ui/core/Box';\r\n// import Button from '@material-ui/core/Button';\r\n// import IntlMessages from '../../utility/IntlMessages';\r\n// import Hidden from '@material-ui/core/Hidden';\r\nimport clsx from 'clsx';\r\n//import {Fonts} from '../../../shared/constants/AppEnums';\r\n//import {CremaTheme} from '../../../types/AppContextPropsType';\r\n\r\nimport {useHistory} from 'react-router-dom';\r\nimport useStyles from '../AppLayout/Standard/AppHeader.style'; \r\nimport { Box } from '@material-ui/core';\r\nimport { Fonts } from '../../../shared/constants/AppEnums';\r\n\r\ninterface HistoryMessagesProps {}\r\n\r\nconst HistoryMessages: React.FC = () => {\r\n // const [\r\n // anchorMessages,\r\n // setAnchorMessages\r\n // ] = React.useState(null);\r\n\r\n const onClickHistoryButton = (\r\n //event: React.MouseEvent,\r\n ) => {\r\n //setAnchorMessages(event.currentTarget);\r\n history.push('/order');\r\n };\r\n\r\n const classes = useStyles();\r\n const history = useHistory();\r\n\r\n return (\r\n <>\r\n \r\n {/* */}\r\n \r\n History\r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n\r\n {/* setAnchorMessages(null)}>\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setAnchorMessages(null);\r\n history.push('/order');\r\n }}\r\n className={classes.btnRoot}>\r\n \r\n \r\n \r\n \r\n */}\r\n \r\n );\r\n};\r\n\r\nexport default HistoryMessages;\r\n","import React, {useContext} from 'react';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Box from '@material-ui/core/Box';\r\nimport {CremaTheme} from '../../../../types/AppContextPropsType';\r\nimport AppContext from '../../../utility/AppContext';\r\nimport {notificationMessage} from '../../../../shared/constants/AppConst';\r\nimport AppContextPropsType from '../../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n headerTop: {\r\n borderBottom: 'solid 1px',\r\n borderBottomColor: theme.palette.grey[300],\r\n padding: '2px 0',\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.background.default,\r\n },\r\n headerContainer: {\r\n width: '100%',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n [theme.breakpoints.up('lg')]: {\r\n maxWidth: 1140,\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n maxWidth: 1720,\r\n },\r\n },\r\n alertStyle: {\r\n backgroundColor: 'transparent !important',\r\n color: '#000',\r\n padding: 0,\r\n textAlign: 'center',\r\n '& .MuiAlert-message': {\r\n flex: 1,\r\n },\r\n '& .MuiAlert-action': {\r\n marginLeft: 10,\r\n },\r\n },\r\n}));\r\n\r\ninterface NotificationBarProps {}\r\n\r\nconst NotificationBar: React.FC = () => {\r\n const classes = useStyles();\r\n const [open, setOpen] = React.useState(true);\r\n const {setNotice} = useContext(AppContext);\r\n //const elementRef: any = useRef(null);\r\n\r\n const closeNotice = () => {\r\n setNotice(false);\r\n setOpen(false);\r\n }\r\n\r\n // useEffect(() => {\r\n // setNoticeHeight(elementRef.current.clientHeight);\r\n // }, []); //empty dependency array so it only runs once at render\r\n \r\n return (\r\n // \r\n \r\n \r\n \r\n {\r\n closeNotice();\r\n }}>\r\n \r\n \r\n }>\r\n {notificationMessage}\r\n {/*
Height:\r\n {height} */}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\nexport default NotificationBar;\r\n","// import React, {useState} from 'react';\r\nimport React, {useContext,useRef, useEffect} from 'react';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n//import MenuIcon from '@material-ui/icons/Menu';\r\n//import MoreIcon from '@material-ui/icons/MoreVert';\r\nimport LocalGroceryStoreIcon from '@material-ui/icons/LocalGroceryStore';\r\n//import HistoryIcon from '@material-ui/icons/History';\r\n// import MenuItem from '@material-ui/core/MenuItem';\r\n// import Menu from '@material-ui/core/Menu';\r\n//import LanguageSwitcher from '../../LanguageSwitcher';\r\n//import {toggleNavCollapsed} from '../../../../redux/actions';\r\nimport {useSelector} from 'react-redux';\r\n//import Hidden from '@material-ui/core/Hidden';\r\nimport Box from '@material-ui/core/Box';\r\n//import SearchBar from '../../SearchBar';\r\nimport useStyles from './AppHeader.style';\r\nimport HeaderMessages from '../../HeaderMessages';\r\n//import Notifications from '../../Notifications';\r\nimport AppLogo from '../../../../shared/components/AppLogo';\r\nimport clsx from 'clsx';\r\nimport List from '@material-ui/core/List';\r\nimport Button from '@material-ui/core/Button';\r\nimport Scrollbar from '../../Scrollbar';\r\nimport IntlMessages from '../../../utility/IntlMessages';\r\nimport {useHistory} from 'react-router-dom';\r\nimport CartTableItem from '../../../../modules/ecommerce/Carts/CartTable/CartTableItem';\r\nimport { AppState } from '../../../../redux/store';\r\n//import { getCartItems } from '../../../../redux/actions/Ecommerce';\r\nimport { Fonts } from '../../../../shared/constants/AppEnums';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Popover from '@material-ui/core/Popover';\r\nimport HistoryMessages from '../../HistoryMessages';\r\nimport { Typography } from '@material-ui/core';\r\n//import LocationDisplay from '../../LocationDisplay';\r\nimport {CartItems} from '../../../../types/models/ecommerce/EcommerceApp';\r\n//import TopNotification from '@crema/core/TopNotification';\r\nimport NotificationBar from './NotificationBar';\r\nimport AppContextPropsType from '../../../../types/AppContextPropsType';\r\nimport AppContext from '../../../utility/AppContext';\r\n\r\ninterface AppHeaderProps {}\r\n\r\nconst AppHeader: React.FC = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const elementRef: any = useRef(null);\r\n\r\n const {cartItems} = useSelector(\r\n ({ecommerce}) => ecommerce,\r\n );\r\n\r\n const getCartCount = () =>{\r\n let cartCount:number = 0;\r\n for(let count=0; count< cartItems.length; count++)\r\n {\r\n cartCount = cartCount + cartItems[count].count;\r\n }\r\n return cartCount;\r\n }\r\n\r\n const [\r\n mobileMoreAnchorEl,\r\n setMobileMoreAnchorEl,\r\n ] = React.useState(null);\r\n\r\n function handleMobileMenuClose() {\r\n setMobileMoreAnchorEl(null);\r\n }\r\n\r\n function handleMobileMenuOpen(event: React.MouseEvent) {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n }\r\n\r\n const getThreeItems = (cartItems: CartItems[]) =>{\r\n return cartItems.slice(0,3);\r\n }\r\n\r\n const {setHeaderHeight} = useContext(AppContext);\r\n\r\n useEffect(() => {\r\n setHeaderHeight(elementRef.current.clientHeight);\r\n }, []); //empty dependency array so it only runs once at render\r\n\r\n const mobileMenuId = 'primary-search-account-menu-mobile';\r\n const renderMobileMenu = (\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n {/* Only cart have item, then show View all and cart list */}\r\n {cartItems.length > 0 ? \r\n \r\n ({getCartCount()})\r\n \r\n : \r\n Your cart is empty.\r\n }\r\n \r\n\r\n {cartItems.length > 0 ? \r\n \r\n {\r\n setMobileMoreAnchorEl(null);\r\n }}>\r\n {getThreeItems(cartItems).map(data => (\r\n \r\n ))}\r\n {cartItems.length>3?\r\n More items in cart ... \r\n \r\n :null}\r\n \r\n \r\n : null }\r\n\r\n {cartItems.length > 0 ? \r\n \r\n {\r\n setMobileMoreAnchorEl(null); //hide cart details after click view all\r\n history.push('/ecommerce/cart');\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n : null }\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {/* This is mobile header */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n {renderMobileMenu}\r\n \r\n );\r\n};\r\nexport default AppHeader;\r\n","import {makeStyles} from '@material-ui/core';\r\nimport {useContext} from 'react';\r\nimport AppContext from '../../../utility/AppContext';\r\nimport {ThemeStyle} from '../../../../shared/constants/AppEnums';\r\nimport AppContextPropsType, {\r\n CremaTheme,\r\n} from '../../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => {\r\n const {themeStyle, footer, notice, headerHeight} = useContext(AppContext);\r\n return {\r\n appMain: {\r\n height: '102vh' ,\r\n display: 'flex',\r\n flexDirection: 'row',\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.default,\r\n overflowY: 'hidden',\r\n paddingTop: notice? '140px' :'80px',\r\n [theme.breakpoints.up('md')]: {\r\n paddingTop: notice? '130px' :'70px',\r\n }, \r\n [theme.breakpoints.down('md')]: {\r\n height:'calc(var(--vh, 1vh) * 100)',\r\n paddingTop: notice? '100px' :'40px',\r\n overflowX: 'hidden',\r\n },\r\n '&.appMainFixedFooter': {\r\n paddingBottom: 48,\r\n [theme.breakpoints.up('xl')]: {\r\n paddingBottom: 58,\r\n },\r\n '& .scrollAppSidebar': {\r\n height:\r\n themeStyle === ThemeStyle.MODERN\r\n ? 'calc(100vh - 260px) !important'\r\n : 'calc(100vh - 198px) !important',\r\n [theme.breakpoints.up('xl')]: {\r\n height:\r\n themeStyle === ThemeStyle.MODERN\r\n ? 'calc(100vh - 300px) !important'\r\n : 'calc(100vh - 236px) !important',\r\n },\r\n },\r\n '& $mainContainer': {\r\n paddingBottom: 1,\r\n },\r\n },\r\n },\r\n mainContent: {\r\n flex: 1,\r\n display: 'flex',\r\n [theme.breakpoints.up('lg')]: {\r\n marginLeft: '19rem',\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n marginLeft: '21.6rem',\r\n },\r\n },\r\n mainContainer: {\r\n paddingBottom: footer ? 0 : 10,\r\n width: '100%',\r\n // [theme.breakpoints.up('lg')]: {\r\n // width: `calc(100vw - 19rem)`,\r\n // },\r\n // [theme.breakpoints.up('xl')]: {\r\n // width: `calc(100vw - 21.6rem)`,\r\n // },\r\n\r\n '& > .scrollbar-container': {\r\n padding: '20px 20px 0',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [theme.breakpoints.up('md')]: {\r\n padding: '10px 32px 0',\r\n },\r\n },\r\n },\r\n mainContainerFull: {\r\n width: '100vw',\r\n paddingBottom: footer ? 0 : 10,\r\n '& > .scrollbar-container': {\r\n padding: '20px 20px 0',\r\n //minheight: '100vh',\r\n //height:'90vh', //cause scroller Y never ending \r\n overflowY: 'hidden !important',\r\n height: notice? 'calc((var(--vh, 1vh) * 96 ) - ('+((headerHeight/2))+'px))':'calc(var(--vh, 1vh) * 96)',\r\n paddingTop: notice? (headerHeight - 90): (headerHeight/3),\r\n bottom: 0,\r\n width:'100vw', \r\n position: 'fixed',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [theme.breakpoints.up('md')]: {\r\n padding: '30px 32px 0',\r\n },\r\n },\r\n },\r\n boxedLayout: {\r\n [theme.breakpoints.up('lg')]: {\r\n maxWidth: 1260,\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n boxShadow: '0px 0px 4px 2px rgba(0,0,0,0.12)',\r\n '& .app-sidebar': {\r\n position: 'absolute',\r\n },\r\n '& .fixed-footer': {\r\n position: 'sticky',\r\n width: '100%',\r\n },\r\n '& $mainContent': {\r\n width: 'calc(100% - 19rem)',\r\n flex: 'auto',\r\n },\r\n '& $mainContainer': {\r\n width: '100%',\r\n },\r\n '& .app-bar': {\r\n width: 'calc(100% - 19rem)',\r\n position: 'absolute',\r\n boxShadow: '0px 0px 4px 2px rgba(0,0,0,0.12)',\r\n },\r\n '& .grid-btn': {\r\n fontSize: 11,\r\n },\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n maxWidth: 1680,\r\n '& $mainContent, & .app-bar': {\r\n width: 'calc(100% - 21.6rem)',\r\n },\r\n },\r\n },\r\n };\r\n});\r\nexport default useStyles;\r\n","import React, {useContext} from 'react';\r\nimport AppContext from '../../../utility/AppContext';\r\nimport Box from '@material-ui/core/Box';\r\nimport {Button, makeStyles} from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport AppContextPropsType, {\r\n CremaTheme,\r\n} from '../../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n footer: {\r\n position: 'fixed',\r\n left: 'auto',\r\n bottom: 0,\r\n zIndex: 99,\r\n margin: '0',\r\n width: '100%',\r\n backgroundColor: theme.palette.background.paper,\r\n color: theme.palette.text.primary,\r\n [theme.breakpoints.up('lg')]: {\r\n width: 'calc(100vw - 19rem)',\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n width: 'calc(100vw - 21.6rem)',\r\n },\r\n '& .footerContainer': {\r\n padding: '5px 20px',\r\n [theme.breakpoints.up('md')]: {\r\n paddingLeft: 32,\r\n paddingRight: 32,\r\n },\r\n [theme.breakpoints.up('xl')]: {\r\n padding: '10px 32px',\r\n },\r\n },\r\n },\r\n btnRoot: {\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n },\r\n}));\r\n\r\ninterface AppFixedFooterProps {}\r\n\r\nconst AppFixedFooter: React.FC = () => {\r\n const {footer, footerType} = useContext(AppContext);\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n {footer && footerType === 'fixed' ? (\r\n \r\n \r\n Copy right @crema 2020\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default AppFixedFooter;\r\n","import React, {useContext} from 'react';\r\nimport AppHeader from './AppHeader';\r\n//import AppSidebar from './AppSidebar';\r\nimport {ContentView} from '../../../index';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport Box from '@material-ui/core/Box';\r\nimport useStyles from './index.style';\r\nimport clsx from 'clsx';\r\nimport AppContext from '../../../utility/AppContext';\r\nimport AppFixedFooter from './AppFixedFooter';\r\nimport {LayoutType} from '../../../../shared/constants/AppEnums';\r\nimport AppContextPropsType from '../../../../types/AppContextPropsType';\r\n\r\ninterface StandardLayoutProps {}\r\n\r\nconst StandardLayout: React.FC = () => {\r\n const {footer, themeStyle, layoutType, footerType} = useContext<\r\n AppContextPropsType\r\n >(AppContext);\r\n const classes = useStyles({footer, themeStyle});\r\n\r\n return (\r\n \r\n {/* */}\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n );\r\n};\r\n\r\nexport default StandardLayout;\r\n","// import HorDefault from './HorDefault';\r\n// import MiniSidebar from './MiniSidebar';\r\n// import DrawerLayout from './DrawerLayout';\r\nimport Standard from './Standard';\r\n// import BitBucket from './BitBucket';\r\n// import HorLightNav from './HorLightNav';\r\n// import HorDarkLayout from './HorDarkLayout';\r\nimport {NavStyle} from '../../../shared/constants/AppEnums';\r\n// import DefaultLayout from './DefaultLayout';\r\n// import HeaderUserLayout from './UserHeader';\r\n// import HeaderUserMiniLayout from './UserHeaderMini';\r\n// import MiniSidebarToggle from './MiniSidebarToggle';\r\n\r\ninterface LayoutsProps {\r\n [x: string]: any;\r\n}\r\n\r\nconst Layouts: LayoutsProps = {\r\n [NavStyle.STANDARD]: Standard,\r\n //[NavStyle.DEFAULT]: DefaultLayout,\r\n // [NavStyle.HEADER_USER]: HeaderUserLayout,\r\n // [NavStyle.HEADER_USER_MINI]: HeaderUserMiniLayout,\r\n // [NavStyle.MINI_SIDEBAR_TOGGLE]: MiniSidebarToggle,\r\n // [NavStyle.MINI]: MiniSidebar,\r\n // [NavStyle.DRAWER]: DrawerLayout,\r\n // [NavStyle.BIT_BUCKET]: BitBucket,\r\n // [NavStyle.H_DEFAULT]: HorDefault,\r\n // [NavStyle.HOR_LIGHT_NAV]: HorLightNav,\r\n // [NavStyle.HOR_DARK_LAYOUT]: HorDarkLayout,\r\n};\r\nexport default Layouts;\r\n","import makeStyles from '@material-ui/core/styles/makeStyles';\r\nimport {Fonts} from '../../constants/AppEnums';\r\nimport {fade} from '@material-ui/core';\r\nimport {CremaTheme} from '../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n '@global': {\r\n // for global styles\r\n '.MuiLink-root': {\r\n fontWeight: Fonts.REGULAR,\r\n },\r\n '.pointer': {\r\n cursor: 'pointer',\r\n },\r\n '.MuiTableCell-stickyHeader': {\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n '.item-hover': {\r\n transition: 'all .2s ease',\r\n transform: 'scale(1)',\r\n '&:hover': {\r\n backgroundColor: fade(theme.palette.primary.main, 0.1),\r\n transform: 'translateY(-2px)',\r\n boxShadow: `0 3px 10px 0 ${fade(theme.palette.common.black, 0.2)}`,\r\n },\r\n },\r\n '.card-hover': {\r\n transition: 'all 0.3s ease',\r\n transform: 'scale(1)',\r\n '&:hover': {\r\n boxShadow: '0 4px 8px rgba(0,0,0,.45)',\r\n transform: 'scale(1.05)',\r\n },\r\n },\r\n },\r\n}));\r\n\r\nexport default useStyles;\r\n","import React, {useContext} from 'react';\r\nimport {useSelector} from 'react-redux';\r\nimport Box from '@material-ui/core/Box';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\n\r\nimport AppContext from '../../utility/AppContext';\r\nimport Layouts from './Layouts';\r\nimport {ContentView} from '../../index';\r\nimport useStyles from '../../../shared/jss/common/common.style';\r\nimport {AppState} from '../../../redux/store';\r\nimport AppContextPropsType, {\r\n CremaTheme,\r\n} from '../../../types/AppContextPropsType';\r\n\r\n//Comment here to solve AppHeader Disappear after refresh\r\n\r\nconst useStyle = makeStyles((theme: CremaTheme) => ({\r\n appAuth: {\r\n flex: 1,\r\n display: 'flex',\r\n position: 'fixed',//relative\r\n height: '100vh',\r\n width: '100vw',\r\n //height: 'calc(100vh - calc(100vh - 100%))',\r\n //backgroundColor: '#000000',//#f3f4f6 // this is login background color\r\n [theme.breakpoints.down('sm')]: {\r\n height: 'calc(var(--vh, 1vh) * 100)',\r\n //height: '100vh',\r\n background: `url(./assets/images/background-phone.png) no-repeat center center`,\r\n backgroundSize: 'cover',\r\n position: 'fixed',\r\n },\r\n backgroundSize: 'cover',\r\n\r\n '& .scrollbar-container': {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n '& .main-content-view': {\r\n padding: 20,\r\n },\r\n '& .footer': {\r\n marginRight: 0,\r\n marginLeft: 0,\r\n },\r\n },\r\n}));\r\n\r\ninterface CremaLayoutProps {}\r\n\r\nconst CremaLayout: React.FC = () => {\r\n useStyles();\r\n const {navStyle} = useContext(AppContext);\r\n const {user} = useSelector(({auth}) => auth);\r\n const AppLayout = Layouts[navStyle];\r\n\r\n const classes = useStyle();\r\n return (\r\n <>\r\n {user ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(CremaLayout);\r\n","import {\r\n ThemeMode,\r\n ThemeStyle,\r\n ThemeStyleRadius,\r\n} from '../../../shared/constants/AppEnums';\r\nimport {isBreakPointDown} from '../Utils';\r\n\r\nexport const ThemeSetting = {\r\n UPDATE_THEME: 'UPDATE_THEME',\r\n SET_FOOTER: 'SET_FOOTER',\r\n SET_FOOTER_TYPE: 'SET_FOOTER_TYPE',\r\n UPDATE_THEME_MODE: 'UPDATE_THEME_MODE',\r\n UPDATE_HEADER_MODE: 'UPDATE_HEADER_MODE',\r\n UPDATE_THEME_STYLE: 'UPDATE_THEME_STYLE',\r\n UPDATE_LAYOUT_STYLE: 'UPDATE_LAYOUT_STYLE',\r\n SET_RTL: 'SET_RTL',\r\n CHANGE_LOCALE: 'CHANGE_LOCALE',\r\n CHANGE_NAV_STYLE: 'CHANGE_NAV_STYLE',\r\n CHANGE_RT_ANIM: 'CHANGE_RT_ANIM',\r\n UPDATE_PRIMARY_COLOR: 'UPDATE_PRIMARY_COLOR',\r\n UPDATE_SIDEBAR_COLOR: 'UPDATE_SIDEBAR_COLOR',\r\n UPDATE_SECONDARY_COLOR: 'UPDATE_SECONDARY_COLOR',\r\n SET_NOTICE: 'SET_NOTICE',\r\n SET_NOTICE_HEIGHT: 'SET_NOTICE_HEIGHT',\r\n SET_HEADER_HEIGHT: 'SET_HEADER_HEIGHT',\r\n};\r\n\r\nexport function contextReducer(state: any, action: any) {\r\n switch (action.type) {\r\n case ThemeSetting.UPDATE_THEME: {\r\n return {\r\n ...state,\r\n theme: action.payload,\r\n primary: action.payload.palette.primary.main,\r\n secondary: action.payload.palette.secondary.main,\r\n };\r\n }\r\n case ThemeSetting.SET_FOOTER: {\r\n return {\r\n ...state,\r\n footer: action.payload,\r\n };\r\n }\r\n case ThemeSetting.SET_FOOTER_TYPE: {\r\n return {\r\n ...state,\r\n footerType: action.payload,\r\n };\r\n }\r\n case ThemeSetting.UPDATE_THEME_MODE: {\r\n let theme = state.theme;\r\n if (action.payload === ThemeMode.DARK) {\r\n theme.palette.type = ThemeMode.DARK;\r\n theme.palette.background = {\r\n paper: '#313541',\r\n default: '#393D4B',\r\n };\r\n theme.palette.text = {\r\n primary: 'rgba(255, 255, 255, 0.87)',\r\n secondary: 'rgba(255, 255, 255, 0.67)',\r\n disabled: 'rgba(255, 255, 255, 0.38)',\r\n hint: 'rgba(255, 255, 255, 0.38)',\r\n };\r\n } else {\r\n theme.palette.type = ThemeMode.LIGHT;\r\n theme.palette.background = {\r\n paper: '#FFFFFF',\r\n default: '#f3f4f6',\r\n };\r\n theme.palette.text = {\r\n primary: 'rgba(0, 0, 0, 0.87)',\r\n secondary: 'rgba(0, 0, 0, 0.67)',\r\n disabled: 'rgba(0, 0, 0, 0.38)',\r\n hint: 'rgba(0, 0, 0, 0.38)',\r\n };\r\n }\r\n return {\r\n ...state,\r\n theme,\r\n themeMode: action.payload,\r\n };\r\n }\r\n case ThemeSetting.UPDATE_HEADER_MODE: {\r\n return {\r\n ...state,\r\n headerMode: action.payload,\r\n };\r\n }\r\n case ThemeSetting.UPDATE_THEME_STYLE: {\r\n const theme = state.theme;\r\n\r\n if (action.payload === ThemeStyle.MODERN) {\r\n if (isBreakPointDown('md')) {\r\n theme.overrides.MuiCard.root.borderRadius = 20;\r\n theme.overrides.MuiToggleButton.root.borderRadius = 20;\r\n } else {\r\n theme.overrides.MuiCard.root.borderRadius = ThemeStyleRadius.MODERN;\r\n theme.overrides.MuiToggleButton.root.borderRadius =\r\n ThemeStyleRadius.MODERN;\r\n }\r\n theme.overrides.MuiButton.root.borderRadius = ThemeStyleRadius.MODERN;\r\n theme.overrides.MuiCardLg.root.borderRadius =\r\n ThemeStyleRadius.MODERN + 20;\r\n } else {\r\n theme.overrides.MuiCard.root.borderRadius = ThemeStyleRadius.STANDARD;\r\n theme.overrides.MuiToggleButton.root.borderRadius =\r\n ThemeStyleRadius.STANDARD;\r\n theme.overrides.MuiButton.root.borderRadius = ThemeStyleRadius.STANDARD;\r\n theme.overrides.MuiCardLg.root.borderRadius = ThemeStyleRadius.STANDARD;\r\n }\r\n\r\n return {\r\n ...state,\r\n theme,\r\n themeStyle: action.payload,\r\n };\r\n }\r\n case ThemeSetting.UPDATE_LAYOUT_STYLE: {\r\n return {\r\n ...state,\r\n layoutType: action.payload,\r\n };\r\n }\r\n case ThemeSetting.SET_RTL: {\r\n const theme = state.theme;\r\n if (action.payload) {\r\n theme.direction = 'rtl';\r\n } else {\r\n theme.direction = 'ltr';\r\n }\r\n return {\r\n ...state,\r\n theme,\r\n isRTL: action.payload,\r\n };\r\n }\r\n case ThemeSetting.CHANGE_LOCALE: {\r\n return {\r\n ...state,\r\n locale: action.payload,\r\n };\r\n }\r\n case ThemeSetting.CHANGE_NAV_STYLE: {\r\n return {\r\n ...state,\r\n navStyle: action.payload,\r\n };\r\n }\r\n case ThemeSetting.CHANGE_RT_ANIM: {\r\n return {\r\n ...state,\r\n rtAnim: action.payload,\r\n };\r\n }\r\n case ThemeSetting.UPDATE_PRIMARY_COLOR: {\r\n return {\r\n ...state,\r\n primary: action.payload,\r\n };\r\n }\r\n case ThemeSetting.UPDATE_SIDEBAR_COLOR: {\r\n return {\r\n ...state,\r\n sidebarColor: action.payload,\r\n };\r\n }\r\n case ThemeSetting.UPDATE_SECONDARY_COLOR: {\r\n return {\r\n ...state,\r\n secondary: action.payload,\r\n };\r\n }\r\n case ThemeSetting.SET_NOTICE: {\r\n return {\r\n ...state,\r\n notice: action.payload,\r\n };\r\n }\r\n case ThemeSetting.SET_NOTICE_HEIGHT: {\r\n return {\r\n ...state,\r\n noticeHeight: action.payload,\r\n };\r\n }\r\n case ThemeSetting.SET_HEADER_HEIGHT: {\r\n return {\r\n ...state,\r\n headerHeight: action.payload,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React, {useCallback, useReducer} from 'react';\r\nimport defaultConfig from './defaultConfig';\r\nimport AppContext from '../AppContext';\r\nimport routes from '../../../modules';\r\nimport {contextReducer, ThemeSetting} from './ContextReducer';\r\nimport {CremaTheme} from '../../../types/AppContextPropsType';\r\nimport {\r\n FooterType,\r\n HeaderType,\r\n LayoutType,\r\n RouteTransition,\r\n ThemeMode,\r\n ThemeStyle,\r\n} from '../../../shared/constants/AppEnums';\r\n\r\nexport const ContextState = {\r\n theme: defaultConfig.theme,\r\n footer: defaultConfig.footer,\r\n footerType: defaultConfig.footerType,\r\n themeMode: defaultConfig.themeMode,\r\n headerMode: defaultConfig.headerMode,\r\n themeStyle: defaultConfig.themeStyle,\r\n layoutType: defaultConfig.layoutType,\r\n isRTL: defaultConfig.theme.direction === 'rtl',\r\n locale: defaultConfig.locale,\r\n navStyle: defaultConfig.navStyle,\r\n rtAnim: defaultConfig.rtAnim,\r\n primary: defaultConfig.theme.palette.primary.main,\r\n sidebarColor: defaultConfig.theme.palette.sidebar.bgColor,\r\n secondary: defaultConfig.theme.palette.secondary.main,\r\n notice: defaultConfig.notice,\r\n noticeHeight: defaultConfig.noticeHeight,\r\n headerHeight: defaultConfig.headerHeight,\r\n};\r\nconst ContextProvider: React.FC = ({children}) => {\r\n const [state, dispatch] = useReducer(\r\n contextReducer,\r\n ContextState,\r\n () => ContextState,\r\n );\r\n\r\n const setFooter = (footer: boolean) => {\r\n dispatch({type: ThemeSetting.SET_FOOTER, payload: footer});\r\n };\r\n\r\n const setFooterType = (footerType: FooterType) => {\r\n dispatch({type: ThemeSetting.SET_FOOTER_TYPE, payload: footerType});\r\n };\r\n\r\n const updateHeaderMode = (headerMode: HeaderType) => {\r\n dispatch({type: ThemeSetting.UPDATE_HEADER_MODE, payload: headerMode});\r\n };\r\n\r\n const updateThemeStyle = useCallback((themeStyle: ThemeStyle) => {\r\n dispatch({type: ThemeSetting.UPDATE_THEME_STYLE, payload: themeStyle});\r\n }, []);\r\n\r\n const updateLayoutStyle = (layoutType: LayoutType) => {\r\n dispatch({type: ThemeSetting.UPDATE_LAYOUT_STYLE, payload: layoutType});\r\n };\r\n\r\n const changeLocale = (locale: any) => {\r\n dispatch({type: ThemeSetting.CHANGE_LOCALE, payload: locale});\r\n };\r\n\r\n const changeNavStyle = useCallback(navStyle => {\r\n dispatch({type: ThemeSetting.CHANGE_NAV_STYLE, payload: navStyle});\r\n }, []);\r\n\r\n const changeRTAnim = (rtAnim: RouteTransition) => {\r\n dispatch({type: ThemeSetting.CHANGE_RT_ANIM, payload: rtAnim});\r\n };\r\n const updatePrimaryColor = (primary: string) => {\r\n dispatch({type: ThemeSetting.UPDATE_PRIMARY_COLOR, payload: primary});\r\n };\r\n\r\n const updateSidebarColor = (sidebarColor: string) => {\r\n dispatch({type: ThemeSetting.UPDATE_SIDEBAR_COLOR, payload: sidebarColor});\r\n };\r\n\r\n const updateSecondaryColor = (secondary: string) => {\r\n dispatch({type: ThemeSetting.UPDATE_SECONDARY_COLOR, payload: secondary});\r\n };\r\n\r\n const updateThemeMode = useCallback((themeMode: ThemeMode) => {\r\n dispatch({type: ThemeSetting.UPDATE_THEME_MODE, payload: themeMode});\r\n }, []);\r\n const updateTheme = (theme: CremaTheme) => {\r\n dispatch({type: ThemeSetting.UPDATE_THEME, payload: theme});\r\n };\r\n\r\n const setRTL = useCallback(rtl => {\r\n dispatch({type: ThemeSetting.SET_RTL, payload: rtl});\r\n }, []);\r\n\r\n const setNotice = (notice: boolean) => {\r\n dispatch({type: ThemeSetting.SET_NOTICE, payload: notice});\r\n };\r\n\r\n const setNoticeHeight = (noticeHeight: number) => {\r\n dispatch({type: ThemeSetting.SET_NOTICE_HEIGHT, payload: noticeHeight});\r\n };\r\n\r\n const setHeaderHeight = (headerHeight: number) => {\r\n dispatch({type: ThemeSetting.SET_HEADER_HEIGHT, payload: headerHeight});\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ContextProvider;\r\n","import React from 'react';\r\nimport AppContextPropsType from '../../types/AppContextPropsType';\r\nimport defaultConfig from './ContextProvider/defaultConfig';\r\n\r\nexport default React.createContext(defaultConfig);\r\n","import {UserList} from '../../@crema/services/db/userList';\r\n\r\nexport const GET_USER_LIST = 'GET_USER_LIST';\r\n\r\nexport interface GetUserListActions {\r\n type: typeof GET_USER_LIST;\r\n payload: UserList;\r\n}\r\n\r\nexport type UserListActions = GetUserListActions;\r\n","import {Loc} from '../models/Loc';\r\n\r\n//export const UPDATE_LOC = 'UPDATE_LOC';\r\nexport const SET_LOC = 'SET_LOC';\r\n//export const GET_CURR_LOC = 'GET_CURR_LOC';\r\n\r\nexport interface SetLocActions {\r\n type: typeof SET_LOC;\r\n payload: Loc;\r\n}\r\n\r\n// export interface UpdateLocActions {\r\n// type: typeof UPDATE_LOC;\r\n// payload: Loc | null;\r\n// }\r\n\r\n// export interface GetCurrLocActions {\r\n// type: typeof GET_CURR_LOC;\r\n// payload: Loc | null;\r\n// }\r\n\r\nexport type CurrLocActions =\r\n | SetLocActions;\r\n // | UpdateLocActions\r\n // | GetCurrLocActions;\r\n","import {LocList} from '../../@crema/services/db/locList';\r\n\r\nexport const GET_LOC_LIST = 'GET_LOC_LIST';\r\n\r\nexport interface GetLocListActions {\r\n type: typeof GET_LOC_LIST;\r\n payload: LocList;\r\n}\r\n\r\nexport type LocListActions = GetLocListActions;\r\n","import enMessages from '../locales/en_US.json';\r\nimport {enUS} from '@material-ui/core/locale';\r\n\r\nconst EnLang = {\r\n messages: {\r\n ...enMessages,\r\n },\r\n muiLocale: enUS,\r\n locale: 'en-US',\r\n};\r\nexport default EnLang;\r\n","import zhMessages from '../locales/zh-Hans.json';\r\nimport {zhCN} from '@material-ui/core/locale';\r\n\r\nconst ZhLan = {\r\n messages: {\r\n ...zhMessages,\r\n },\r\n muiLocale: zhCN,\r\n locale: 'zh-Hans-CN',\r\n};\r\nexport default ZhLan;\r\n","import saMessages from '../locales/ar_SA.json';\r\n\r\nconst saLang = {\r\n messages: {\r\n ...saMessages,\r\n },\r\n locale: 'ar-SA',\r\n};\r\nexport default saLang;\r\n","import saMessages from '../locales/it_IT.json';\r\nimport {itIT} from '@material-ui/core/locale';\r\n\r\nconst saLang = {\r\n messages: {\r\n ...saMessages,\r\n },\r\n muiLocale: itIT,\r\n locale: 'it-IT',\r\n};\r\nexport default saLang;\r\n","import saMessages from '../locales/es_ES.json';\r\nimport {esES} from '@material-ui/core/locale';\r\n\r\nconst saLang = {\r\n messages: {\r\n ...saMessages,\r\n },\r\n muiLocale: esES,\r\n locale: 'es',\r\n};\r\nexport default saLang;\r\n","import enLang from './entries/en-US';\r\nimport zhLang from './entries/zh-Hans-CN';\r\nimport arLang from './entries/ar_SA';\r\nimport itLang from './entries/it_IT';\r\nimport esLang from './entries/es_ES';\r\nimport frLang from './entries/fr_FR';\r\n\r\nconst AppLocale: any = {\r\n en: enLang,\r\n zh: zhLang,\r\n ar: arLang,\r\n it: itLang,\r\n es: esLang,\r\n fr: frLang,\r\n};\r\n\r\nexport default AppLocale;\r\n","import saMessages from '../locales/fr_FR.json';\r\nimport {frFR} from '@material-ui/core/locale';\r\n\r\nconst saLang = {\r\n messages: {\r\n ...saMessages,\r\n },\r\n muiLocale: frFR,\r\n locale: 'fr-FR',\r\n};\r\nexport default saLang;\r\n","import React from 'react';\r\nimport {authRole} from '../../shared/constants/AppConst';\r\n\r\nexport const dashBoardConfigs = [\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/dashboards/e-commerce',\r\n component: React.lazy(() => import('./ECommerce')),\r\n },\r\n ],\r\n },\r\n];\r\n","import React from 'react';\r\n\r\nexport const errorPagesConfigs = [\r\n // {\r\n // auth: ['user'],\r\n // routes: [\r\n // {\r\n // path: '/error-pages/error-404',\r\n // component: React.lazy(() => import('./Error404')),\r\n // },\r\n // ],\r\n // },\r\n {\r\n auth: ['user'],\r\n routes: [\r\n {\r\n path: '/error-pages/error-500',\r\n component: React.lazy(() => import('./Error500')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: ['user'],\r\n routes: [\r\n {\r\n path: '/error-pages/maintenance',\r\n component: React.lazy(() => import('./Maintenance')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: ['user'],\r\n routes: [\r\n {\r\n path: '/error-pages/InvalidLink',\r\n component: React.lazy(() => import('./InvalidLink')),\r\n },\r\n ],\r\n },\r\n];\r\n","import React from 'react';\r\n\r\nexport const authRouteConfig = [\r\n // {\r\n // routes: [\r\n // {\r\n // path: '/signin',\r\n // component: React.lazy(() => import('./Signin')),\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // routes: [\r\n // {\r\n // path: '/signup',\r\n // component: React.lazy(() => import('./Signup')),\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // routes: [\r\n // {\r\n // path: '/confirm-signup',\r\n // component: React.lazy(() => import('./ConfirmSignupAwsCognito')),\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // routes: [\r\n // {\r\n // path: '/reset-password',\r\n // component: React.lazy(() => import('./ResetPasswordAwsCognito')),\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // routes: [\r\n // {\r\n // path: '/forget-password',\r\n // component: React.lazy(() => import('./ForgetPassword')),\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // routes: [\r\n // {\r\n // path: '/error-pages/error-404',\r\n // component: React.lazy(() => import('../errorPages/Error404/index')),\r\n // },\r\n // ],\r\n // },\r\n {\r\n routes: [\r\n {\r\n path: '/error-pages/invalidLink',\r\n component: React.lazy(() => import('../errorPages/InvalidLink/index')),\r\n },\r\n ],\r\n },\r\n {\r\n //homepage\r\n routes: [\r\n {\r\n path: '/home',\r\n component: React.lazy(() => import('./Home/index')),\r\n },\r\n ],\r\n },\r\n {\r\n //myOrder\r\n routes: [\r\n {\r\n path: '/order',\r\n component: React.lazy(() => import('./Home/Orders/index')),\r\n },\r\n ],\r\n },\r\n {\r\n routes: [\r\n {\r\n path: '/orderView',\r\n component: React.lazy(() => import('./Home/Orders/OrderDetails/index')),\r\n },\r\n ],\r\n },\r\n // {\r\n // //User Verification\r\n // routes: [\r\n // {\r\n // path: '/userInfo',\r\n // component: React.lazy(() => import('./UserPage/index')),\r\n // },\r\n // ],\r\n // },\r\n {\r\n //ComingSoon\r\n routes: [\r\n {\r\n path: '/comingsoon',\r\n component: React.lazy(() => import('./ComingSoon/index')),\r\n },\r\n ],\r\n },\r\n // {\r\n // //newOrder\r\n // routes: [\r\n // {\r\n // path: '/neworder',\r\n // component: React.lazy(() => import('./Home/OrderView/index')),\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // //failOrder\r\n // routes: [\r\n // {\r\n // path: '/failorder',\r\n // component: React.lazy(() => import('./Home/OrderView/failOrderView')),\r\n // },\r\n // ],\r\n // },\r\n];\r\n","import React from 'react';\r\nimport {authRole} from '../../shared/constants/AppConst';\r\n\r\nexport const ecommerceConfig = [\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/invoice-1',\r\n component: React.lazy(() => import('./Invoice1')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/invoice-2',\r\n component: React.lazy(() => import('./Invoice2')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/menu',\r\n component: React.lazy(() => import('./Products')), //From Products folder (haven't change folder name)\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/product_detail/:id?',\r\n component: React.lazy(() => import('./ProductDetail')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/customers',\r\n component: React.lazy(() => import('./Customers')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/checkout',\r\n component: React.lazy(() => import('./Checkout')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/cart',\r\n component: React.lazy(() => import('./Carts')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/ecommerce/confirmation',\r\n component: React.lazy(() => import('./Confirmation')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: ['user'],\r\n routes: [\r\n {\r\n path: '/ecommerce/neworder',\r\n component: React.lazy(() => import('./OrderView')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: ['user'],\r\n routes: [\r\n {\r\n path: '/ecommerce/failorder',\r\n component: React.lazy(() => import('./OrderView/failOrderView')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: ['user'],\r\n routes: [\r\n {\r\n path: '/ecommerce/payment',\r\n component: React.lazy(() => import('./PaymentGateway')),\r\n },\r\n ],\r\n },\r\n];\r\n","import React from 'react';\r\nimport {authRole} from '../../shared/constants/AppConst';\r\n\r\nexport const userPagesConfig = [\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/sign-in-1',\r\n component: React.lazy(() => import('./UserPages/Signin')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/sign-in-2',\r\n component: React.lazy(() => import('./StyledUserPages/Signin')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/sign-up-1',\r\n component: React.lazy(() => import('./UserPages/Signup')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/sign-up-2',\r\n component: React.lazy(() => import('./StyledUserPages/Signup')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/forgot-password-1',\r\n component: React.lazy(() => import('./UserPages/ForgetPassword')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/forgot-password-2',\r\n component: React.lazy(() => import('./StyledUserPages/ForgetPassword')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/reset-password-1',\r\n component: React.lazy(() => import('./UserPages/ResetPassword')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/reset-password-2',\r\n component: React.lazy(() => import('./StyledUserPages/ResetPassword')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/lock-1',\r\n component: React.lazy(() => import('./UserPages/UnlockScreen')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: authRole.user,\r\n routes: [\r\n {\r\n path: '/user/lock-2',\r\n component: React.lazy(() => import('./StyledUserPages/UnlockScreen')),\r\n },\r\n ],\r\n },\r\n];\r\n","import React from 'react';\r\nimport {Redirect} from 'react-router-dom';\r\n\r\nimport {createRoutes} from '../@crema/utility/Utils';\r\nimport {dashBoardConfigs} from './dashboard';\r\nimport {errorPagesConfigs} from './errorPages';\r\nimport {authRouteConfig} from './auth';\r\nimport {ecommerceConfig} from './ecommerce';\r\nimport {initialUrl, invalidUrl} from '../shared/constants/AppConst';\r\nimport {userPagesConfig} from './userPages';\r\n\r\nconst routeConfigs = [\r\n ...authRouteConfig,\r\n ...dashBoardConfigs,\r\n ...ecommerceConfig,\r\n ...userPagesConfig,\r\n ...errorPagesConfigs,\r\n];\r\n\r\nconst routes = [\r\n ...createRoutes(routeConfigs),\r\n {\r\n path: '/',\r\n exact: true, \r\n component: () => ,\r\n },\r\n {\r\n path: '/userInfo',\r\n exact: true, \r\n component: () => ,\r\n },\r\n {\r\n component: () => ,\r\n },\r\n];\r\n\r\nexport default routes;\r\n","import {createMuiTheme, useTheme} from '@material-ui/core/styles';\r\nimport {useMediaQuery} from '@material-ui/core';\r\nimport {CremaTheme} from '../../types/AppContextPropsType';\r\nimport {Breakpoint} from '@material-ui/core/styles/createBreakpoints';\r\nimport moment from 'moment';\r\nimport {useIntl} from 'react-intl';\r\nimport {\r\n FilterData,\r\n ProductData,\r\n} from '../../types/models/ecommerce/EcommerceApp';\r\n\r\ntype BreakpointOrNull = Breakpoint | null;\r\n\r\nexport const isBreakPointDown = (key: 'xs' | 'sm' | 'md' | 'lg' | 'xl') => {\r\n const defaultTheme = createMuiTheme();\r\n return defaultTheme.breakpoints.width(key) > window.innerWidth;\r\n};\r\n\r\nexport const useDownBreakPointChecker = (\r\n key: 'xs' | 'sm' | 'md' | 'lg' | 'xl',\r\n) => {\r\n return useMediaQuery((theme: CremaTheme) => theme.breakpoints.down(key));\r\n};\r\n\r\nexport const useBreakPointDown = (key: 'xs' | 'sm' | 'md' | 'lg' | 'xl') => {\r\n const theme = useTheme();\r\n return useMediaQuery(theme.breakpoints.down(key));\r\n};\r\n\r\nexport const useWidth = () => {\r\n const theme: CremaTheme = useTheme();\r\n const keys: Breakpoint[] = [...theme.breakpoints.keys].reverse();\r\n return (\r\n keys.reduce((output: BreakpointOrNull, key: Breakpoint) => {\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const matches = useMediaQuery(theme.breakpoints.up(key));\r\n return !output && matches ? key : output;\r\n }, null) || 'xs'\r\n );\r\n};\r\n\r\nexport const createRoutes = (routeConfigs: any[]) => {\r\n let allRoutes: any[] = [];\r\n routeConfigs.forEach(config => {\r\n allRoutes = [...allRoutes, ...setRoutes(config)];\r\n });\r\n return allRoutes;\r\n};\r\n\r\nexport const setRoutes = (config: any) => {\r\n let routes = [...config.routes];\r\n if (config.auth) {\r\n routes = routes.map(route => {\r\n let auth = route.auth\r\n ? [...config.auth, ...route.auth]\r\n : [...config.auth];\r\n return {...route, auth};\r\n });\r\n }\r\n\r\n return [...routes];\r\n};\r\nexport const getBreakPointsValue = (valueSet: any, breakpoint: string) => {\r\n if (typeof valueSet === 'number') return valueSet;\r\n switch (breakpoint) {\r\n case 'xs':\r\n return valueSet.xs;\r\n case 'sm':\r\n return valueSet.sm || valueSet.xs;\r\n case 'md':\r\n return valueSet.md || valueSet.sm || valueSet.xs;\r\n case 'lg':\r\n return valueSet.lg || valueSet.md || valueSet.sm || valueSet.xs;\r\n default:\r\n return (\r\n valueSet.xl || valueSet.lg || valueSet.md || valueSet.sm || valueSet.xs\r\n );\r\n }\r\n};\r\n\r\nexport const multiPropsFilter = (\r\n products: ProductData[],\r\n filters: FilterData,\r\n stringKey: string = 'title',\r\n) => {\r\n const filterKeys = Object.keys(filters);\r\n return products.filter(product => {\r\n return filterKeys.every(key => {\r\n // @ts-ignore\r\n if (!filters[key].length) return true;\r\n // Loops again if product[key] is an array (for material attribute).\r\n // @ts-ignore\r\n if (Array.isArray(product[key])) {\r\n // @ts-ignore\r\n return product[key].some(keyEle => filters[key].includes(keyEle));\r\n }\r\n // @ts-ignore\r\n console.log('key', key, filters[key], product[key]);\r\n if (key === stringKey) {\r\n // @ts-ignore\r\n return product[key].toLowerCase().includes(filters[key].toLowerCase());\r\n }\r\n // @ts-ignore\r\n return filters[key].includes(product[key]);\r\n });\r\n });\r\n};\r\nexport const getFileSize = (bytes: number) => {\r\n if (bytes === 0) return '0 Bytes';\r\n let k = 1024,\r\n dm = 2,\r\n sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\r\n i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n};\r\n\r\nexport const getCustomDateTime = (\r\n value = 0,\r\n unit = 'days',\r\n format = 'YYYY-MM-DD',\r\n): string => {\r\n if (value === 0) {\r\n return moment().format(format) as string;\r\n } else {\r\n // @ts-ignore\r\n return moment()\r\n .add(value, unit)\r\n .format(format) as string;\r\n }\r\n};\r\n\r\nexport const timeFromNow = (date: string) => {\r\n const timestamp = +moment(date).format('X');\r\n const newDate = moment.unix(timestamp);\r\n return moment(newDate).fromNow();\r\n};\r\n\r\n// 'intl' service singleton reference\r\nlet intl: any;\r\n\r\nexport function IntlGlobalProvider({children}: any) {\r\n intl = useIntl();\r\n // Keep the 'intl' service reference\r\n return children;\r\n}\r\n\r\nexport const appIntl = () => {\r\n return intl;\r\n};\r\nexport const checkPermission = (\r\n routeAuth: any | null | undefined,\r\n userRole: any | null | undefined,\r\n) => {\r\n if (routeAuth === null || routeAuth === undefined) {\r\n return true;\r\n }\r\n\r\n if (userRole && Array.isArray(userRole)) {\r\n return routeAuth.some((r: any) => userRole.indexOf(r) >= 0);\r\n }\r\n\r\n if (routeAuth.length === 0) {\r\n return !userRole || userRole.length === 0;\r\n }\r\n if (userRole && Array.isArray(userRole) && Array.isArray(routeAuth)) {\r\n return routeAuth.some(r => userRole.indexOf(r) >= 0);\r\n }\r\n return routeAuth.indexOf(userRole) >= 0;\r\n};\r\n","import {AuthUser} from '../models/AuthUser';\r\n\r\nexport const UPDATE_AUTH_USER = 'UPDATE_AUTH_USER';\r\nexport const SET_AUTH_TOKEN = 'SET_AUTH_TOKEN';\r\nexport const SIGNOUT_AUTH_SUCCESS = 'SIGNOUT_AUTH_SUCCESS';\r\n\r\nexport interface SetAuthTokenActions {\r\n type: typeof SET_AUTH_TOKEN;\r\n payload: string | null;\r\n}\r\n\r\nexport interface UpdateAuthUserActions {\r\n type: typeof UPDATE_AUTH_USER;\r\n payload: AuthUser | null;\r\n}\r\n\r\nexport interface SignoutAuthUserActions {\r\n type: typeof SIGNOUT_AUTH_SUCCESS;\r\n}\r\n\r\nexport type AuthActions =\r\n | UpdateAuthUserActions\r\n | SetAuthTokenActions\r\n | SignoutAuthUserActions;\r\n","import Api from '../../@crema/services/ApiConfig';\r\nimport {Dispatch} from 'redux';\r\nimport {AppActions} from '../../types';\r\nimport {\r\n ADD_CART_ITEM,\r\n GET_CUSTOMERS,\r\n GET_ECOMMERCE_LIST,\r\n SET_ECOMMERCE_LIST,\r\n GET_RECENT_ORDER,\r\n REMOVE_CART_ITEM,\r\n SET_FILTER_DATA,\r\n SET_PRODUCT_DATA,\r\n SET_PRODUCT_VIEW_TYPE,\r\n UPDATE_CART_ITEM,\r\n GET_MENU_ITEM,\r\n NEW_CSO_ORDER,\r\n SET_ORDER_DATA,\r\n SET_NEW_ORDER,\r\n GET_CINEMA_LIST,\r\n GET_PHONE_PREFIX,\r\n GET_ORDER_HISTORY,\r\n CONFIRM_CSO_ORDER_STATUS,\r\n GET_WEBSITE_STATUS,\r\n GET_REGION_LIST,\r\n CLEAR_CART_ITEM,\r\n GET_CONFIRM_ORDER_STATUS\r\n} from '../../types/actions/Ecommerce.action';\r\nimport {fetchError, fetchStart, fetchSuccess} from './Common';\r\nimport {\r\n CartItems,\r\n FilterData,\r\n ProductData,\r\n RecentOrders,\r\n} from '../../types/models/ecommerce/EcommerceApp';\r\nimport {VIEW_TYPE} from '../reducers/Ecommerce';\r\nimport axios from 'axios';\r\nimport moment from 'moment'; // to get Current Date Time\r\nimport {apiBaseUrl, phase} from '../../shared/constants/AppConst';\r\n\r\nexport const onGetEcommerceData = (filterData: FilterData) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/api/ecommerce/list', {\r\n params: {filterData},\r\n })\r\n .then(data => {\r\n if (data.status === 200) {\r\n //dispatch(fetchSuccess());\r\n dispatch({type: GET_ECOMMERCE_LIST, payload: data.data});\r\n dispatch(fetchSuccess());\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\n//added by apple\r\nexport const setEcommerceData = (data: ProductData) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: SET_ECOMMERCE_LIST, payload: data});\r\n };\r\n};\r\n\r\nexport const getProductDetail = (id: number | string) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/api/ecommerce/get', {\r\n params: {id: id},\r\n })\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: SET_PRODUCT_DATA, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const getCustomers = (search: string, page: number) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n Api.get('/api/ecommerce/customers', {\r\n params: {search, page},\r\n })\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({type: GET_CUSTOMERS, payload: data.data});\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const getCartItems = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n // Api.get('/api/cart/get')\r\n // .then((data) => {\r\n // if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n // dispatch({type: SET_CART_ITEMS, payload: data.data});\r\n // } else {\r\n // dispatch({\r\n // type: FETCH_ERROR,\r\n // payload: 'Something went wrong, Please try again!',\r\n // });\r\n // }\r\n // })\r\n // .catch((error) => {\r\n // dispatch(fetchError(error.message));\r\n // });\r\n };\r\n};\r\n\r\nexport const setViewType = (viewType: VIEW_TYPE) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: SET_PRODUCT_VIEW_TYPE, payload: viewType});\r\n };\r\n};\r\n\r\nexport const removeCartItem = (data: CartItems) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: REMOVE_CART_ITEM, payload: data});\r\n };\r\n};\r\n\r\nexport const clearCartItem = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n dispatch({type: CLEAR_CART_ITEM, payload: null});\r\n dispatch(fetchSuccess());\r\n };\r\n};\r\n\r\nexport const updateCartItem = (data: CartItems) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: UPDATE_CART_ITEM, payload: data});\r\n };\r\n};\r\n\r\nexport const addItemToCart = (data: ProductData, counter:number) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: ADD_CART_ITEM, payload: {data,counter} });\r\n };\r\n};\r\n\r\nexport const setCurrentProduct = (product: ProductData) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: SET_PRODUCT_DATA, payload: product});\r\n };\r\n};\r\n\r\nexport const setFilters = (filters: any) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: SET_FILTER_DATA, payload: filters});\r\n };\r\n};\r\n\r\n//Redux Thunk added by Apple\r\nconst API_URL = apiBaseUrl+'EasiCinemaSelfOrderWs/Service.asmx/GetCSOProductListByLocation';\r\n//const outletCode = localStorage.getItem('GSC_locid');\r\nconst operationDate = moment(new Date()).format('YYYY-MM-DD'); // get current date\r\nconst vkey = '4A117D2870914C36B600357A7519B5AC';\r\n//const outletCode = '268';\r\n//const operationDate = '2021-09-14';\r\n\r\nexport const onGetMenuItem = (type:any, outletCode: string) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n // axios.get('https://stagingheadoffice.gsc.com.my/selforderws-dev/api/product/retrieveProductDetailsByCategory?type='+type.toLowerCase())\r\n axios.get(`${API_URL}?outletCode=${outletCode}&operationDate=${operationDate}&vkey=${vkey}`)\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess()); \r\n dispatch({\r\n type: GET_MENU_ITEM, \r\n payload: data.data,\r\n });\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\n//Getter and Setter for OrderDetails\r\n// export const getRecentOrders = () => {\r\n// return (dispatch: Dispatch) => {\r\n// let data:any = JSON.parse(localStorage.getItem('lastOrder') || '{}');\r\n// dispatch({type: GET_RECENT_ORDER, payload: data});\r\n// };\r\n// };\r\n\r\n//getRecentOrders by API\r\n// export const getRecentOrders = () => {\r\n// return (dispatch: Dispatch) => {\r\n// dispatch(fetchStart());\r\n// Api.get('/api/ecommerce/orders', { })\r\n// //axios.post('https://stagingheadoffice.gsc.com.my/EasiCinemaSelfOrderWs/Service.asmx/ConfirmCSOOrderByLocation')\r\n// .then(data => {\r\n// if (data.status === 200) {\r\n// dispatch(fetchSuccess());\r\n// dispatch({type: GET_RECENT_ORDER, payload: data.data });\r\n// } else {\r\n// dispatch(fetchError('Something went wrong, Please try again!'));\r\n// }\r\n// })\r\n// .catch(error => {\r\n// dispatch(fetchError(error.message));\r\n// });\r\n// };\r\n// };\r\n\r\n//getRecentOrders from LocalStorage\r\nexport const getRecentOrders = () => {\r\n return (dispatch: Dispatch) => {\r\n let data:RecentOrders[] = JSON.parse(localStorage.getItem(phase+'_GSC_OrderList') ||'[]');\r\n let tempdata:RecentOrders[] = data; \r\n //If localStorage got Pending status, get data from DB(API), else show LocalStorage Data\r\n if(tempdata.some(item => item.Payment.PymtStatus === 'P') || tempdata.length === 0)\r\n {\r\n axios.post(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/GetCSOOrderHistoryByPhoneNickname', formGetCSOOrderHistoryByPhoneNicknameJSON())\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: GET_ORDER_HISTORY, \r\n payload: data.data,\r\n }); \r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchSuccess());\r\n dispatch(fetchError(error.message));\r\n });\r\n }\r\n else\r\n {\r\n dispatch({type: GET_RECENT_ORDER, payload: data});\r\n }\r\n };\r\n};\r\n\r\n//clear LocalStorage outdated orders\r\nexport const clearOutdatedOrders = () => {\r\n return (dispatch: Dispatch) => {\r\n let list:RecentOrders[] = JSON.parse(localStorage.getItem(phase+'_GSC_OrderList') ||'[]');\r\n //list = list.filter(data => data.Transaction.TrxnDateTime.match(moment(new Date()).format('YYYY-MM-DD')))\r\n list = list.slice(0,30);\r\n\r\n localStorage.setItem(phase+'_GSC_OrderList', JSON.stringify(list));\r\n //dispatch({type: GET_RECENT_ORDER, payload: data});\r\n dispatch(fetchSuccess())\r\n };\r\n};\r\n\r\n//once confirm order, confirmCSOOrders by API\r\n// export const confirmCSOOrders = (data: CartItems[], hall:string, showtime:any, outletCode:string, redirectToOrder: any) => {\r\n// return async (dispatch: Dispatch) => {\r\n// dispatch(fetchStart());\r\n// axios.post(apiBaseUrl+'EasiCinemaSelfOrderWs/Service.asmx/ConfirmCSOOrderByLocation', formConfirmCSOOrdersJSON(data, hall, showtime, outletCode))\r\n// .then(res => {\r\n// console.log(res); \r\n// if (res.status === 200) {\r\n// dispatch(fetchSuccess());\r\n// setOrderList(dispatch, res);\r\n// redirectToOrder();\r\n// }\r\n// })\r\n// .catch(error => {\r\n// dispatch(fetchSuccess());\r\n// //console.log('in catch:'+error.message);\r\n// const order :RecentOrders = formOrderStatusFail(error);\r\n// dispatch({type: SET_NEW_ORDER, payload:order});\r\n// redirectToOrder();\r\n// }) \r\n// };\r\n// };\r\n\r\n//once confirm order, confirmCSOOrders by API Phase 2\r\nexport const confirmCSOOrders = (data: CartItems[], hall:string, showtime:any, outletCode:string, setSubmitting:any, redirectToPayment:any, redirectToMenuList: any) => {\r\n return async (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n await axios.post(apiBaseUrl+'EasiCinemaSelfOrderWs/Service.asmx/ConfirmCSOOrderByLocationV2', formConfirmCSOOrdersJSON(data, hall, showtime, outletCode))\r\n .then(res => {\r\n if (res.status === 200) {\r\n setOrderStatus(dispatch, res, setSubmitting, redirectToPayment, redirectToMenuList);\r\n dispatch(fetchSuccess());\r\n //redirectToPayment();\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchSuccess());\r\n //console.log('in catch:'+error.message);\r\n const order :RecentOrders = formOrderStatusFail(error);\r\n dispatch({type: SET_NEW_ORDER, payload:order});\r\n //redirectToPayment();\r\n }) \r\n };\r\n};\r\n\r\n//Assign params into JSON for POST API ConfirmCSOOrderByLocation\r\nconst formConfirmCSOOrdersJSON = (data: CartItems[], hall:string, showtime:string, outletCode:string) => {\r\n let tmpCartItem: {'ProdCode': string; 'ProdName': string; 'ProdQty': number; 'ProdUPrc': number; 'ProdPrice': number;};\r\n let tmpCartItems: {'ProdCode': string; 'ProdName': string; 'ProdQty': number; 'ProdUPrc': number; 'ProdPrice': number;}[] = [];\r\n let tmpTotal: number = 0;\r\n\r\n let phoneNo: string = ('+'+localStorage.getItem(phase+'_GSC_countryCode') || '')+(localStorage.getItem(phase+'_GSC_mobileNo') || '');\r\n\r\n for(let count = 0; count < data.length; count ++)\r\n {\r\n tmpCartItem = \r\n {\r\n 'ProdCode': data[count].ProductCode,\r\n 'ProdName': data[count].Description,\r\n 'ProdQty': data[count].count,\r\n 'ProdUPrc': data[count].SalesAmount,\r\n 'ProdPrice': parseFloat((data[count].count * data[count].SalesAmount).toFixed(2)),\r\n };\r\n\r\n tmpCartItems = tmpCartItems.concat(tmpCartItem);\r\n tmpTotal = tmpTotal + (data[count].count * data[count].SalesAmount);\r\n }\r\n \r\n//let ISOshowtime = (showtime.toString() === ''? moment(new Date()).format('YYYY-MM-DDTHH:mm:ssZ') : showtime.toString());\r\n\r\n //Format the JSON\r\n const json = JSON.stringify\r\n ({ 'Request':{\r\n 'Header':{\r\n 'Ver':'1.0.0.1',\r\n 'ReqDt':moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // current date time\r\n 'Req':'ConfirmCSOOrderByLocationV2',\r\n 'Channel':'CSO',\r\n },\r\n 'Body':{\r\n 'Transaction':{\r\n 'TrxnOutletId': outletCode,\r\n 'TrxnDateTime':moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // current date time\r\n 'HallNo': hall, \r\n 'ShowTime':(showtime === ''? moment(new Date()).format('YYYY-MM-DD HH:mm:ss') : showtime),\r\n 'PhoneNo': phoneNo === null? '': phoneNo,\r\n 'Nickname':localStorage.getItem(phase+'_GSC_nickname') === null? '':localStorage.getItem(phase+'_GSC_nickname'),\r\n\r\n },\r\n 'Total':{\r\n 'TrxnAmt':parseFloat(tmpTotal.toFixed(2)),\r\n },\r\n 'Payment':{\r\n 'PymntCode':'',\r\n 'PymtDesc':'',\r\n 'PymntAmt':parseFloat(tmpTotal.toFixed(2)),\r\n },\r\n 'Detail': tmpCartItems\r\n }\r\n } \r\n });\r\n\r\n //DEBUG: record json pass to BE API in localhost to check the design\r\n console.log('formConfirmCSOOrdersJSON: '+ json);\r\n\r\n return json;\r\n}\r\n\r\nexport const setCurrentOrder = (order: RecentOrders) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: SET_ORDER_DATA, payload: order});\r\n };\r\n};\r\n\r\nexport const resetNewOrder = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n dispatch({type: SET_NEW_ORDER, payload: null});\r\n dispatch(fetchSuccess());\r\n };\r\n};\r\n\r\nconst formOrderStatusFail = (error: any) => {\r\n //PreDefine status fail\r\n const order: RecentOrders = \r\n { \r\n Status:\r\n {\r\n RespStatus:'Error',\r\n RespDesc:error.message,\r\n RespDateTime: moment(new Date()).format('YYYY-MM-DD HH:mm:ss'),\r\n },\r\n Transaction:\r\n {\r\n TrxnOutletId: '',\r\n TrxnNo: '',\r\n TrxnDateTime: '',\r\n HallNo: '',\r\n ShowTime: '',\r\n PhoneNo: '',\r\n Nickname: '',\r\n },\r\n Detail: [],\r\n Total:\r\n {\r\n TrxnAmt: 0,\r\n },\r\n Payment:\r\n {\r\n PymtCode: '',\r\n PymtDesc: '',\r\n PymtAmt: 0,\r\n PymtStatus: '',\r\n PymtStatusDesc: '',\r\n PymtDiscount: 0,\r\n },\r\n QRCode:'',\r\n };\r\n \r\n return order;\r\n};\r\n\r\nexport const setOrderList = async (dispatch: Dispatch, res:any) => {\r\n //return (dispatch: Dispatch) => {\r\n try {\r\n dispatch(fetchSuccess());\r\n dispatch({type: SET_NEW_ORDER, payload: null});\r\n dispatch({\r\n type: NEW_CSO_ORDER, \r\n payload: res.data, \r\n });\r\n } catch (err) {\r\n dispatch(fetchSuccess());\r\n }\r\n //};\r\n}\r\n\r\n//Phase 2 \r\nexport const setOrderStatus= async (dispatch: Dispatch, res:any, setSubmitting:any, redirectToPayment:any, redirectToMenuList:any) => {\r\n try {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: CONFIRM_CSO_ORDER_STATUS, \r\n payload:\r\n { \r\n data: res.data, \r\n setSubmitting: setSubmitting,\r\n redirectToPayment: redirectToPayment,\r\n redirectToMenuList: redirectToMenuList,\r\n }\r\n });\r\n } catch (err) {\r\n dispatch(fetchSuccess());\r\n }\r\n}\r\n\r\n//getRegionList from API\r\nexport const getRegionList = () => {\r\n return (dispatch: Dispatch) => {\r\n axios.get(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/GetAllMasterRegion')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: GET_REGION_LIST, \r\n payload: data.data,\r\n }); \r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\n//getCinemaList from API\r\nexport const getCinemaList = () => {\r\n return (dispatch: Dispatch) => {\r\n axios.get(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/GetCSOAllLocation')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: GET_CINEMA_LIST, \r\n payload: data.data,\r\n }); \r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\n//getCountryPhonePrefix from API\r\nexport const getCountryPhonePrefix = () => {\r\n return (dispatch: Dispatch) => {\r\n axios.get(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/GetCountryPhonePrefix')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: GET_PHONE_PREFIX, \r\n payload: data.data,\r\n }); \r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\n//getCSOOrderHistoryByPhoneNickname from API\r\nexport const getCSOOrderHistoryByPhoneNickname = () => {\r\n return (dispatch: Dispatch) => {\r\n axios.post(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/GetCSOOrderHistoryByPhoneNickname', formGetCSOOrderHistoryByPhoneNicknameJSON())\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: GET_ORDER_HISTORY, \r\n payload: data.data,\r\n }); \r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchSuccess());\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\n//Assign params into JSON for POST API getCSOOrderHistoryByPhoneNickname\r\nconst formGetCSOOrderHistoryByPhoneNicknameJSON = () => {\r\n\r\n let phoneNo: string = ('+'+localStorage.getItem(phase+'_GSC_countryCode') || '')+(localStorage.getItem(phase+'_GSC_mobileNo') || '');\r\n\r\n //Format the JSON\r\n const json = JSON.stringify\r\n ({ 'Request':{\r\n 'Header':{\r\n 'Ver':'1.0.0.1',\r\n 'ReqDt':moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // current date time\r\n 'Req':'CheckCSOOrderHistoryByLocation',\r\n 'Channel':'CSO',\r\n },\r\n 'Body':{\r\n 'PhoneNo': phoneNo === null? '': phoneNo,\r\n 'Nickname':localStorage.getItem(phase+'_GSC_nickname') === null? '':localStorage.getItem(phase+'_GSC_nickname'),\r\n }\r\n } \r\n });\r\n\r\n //DEBUG: record json pass to BE API in localhost to check the design\r\n console.log('formGetCSOOrderHistoryByPhoneNicknameJSON: '+ json);\r\n\r\n return json;\r\n}\r\n\r\n//checkCSOOrderHistoryByLocation from API\r\nexport const checkCSOOrderHistoryByLocation = () => {\r\n return (dispatch: Dispatch) => {\r\n axios.post(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/CheckCSOOrderHistoryByLocation', formCheckCSOOrderHistoryByLocationJSON())\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: NEW_CSO_ORDER, \r\n payload: data.data,\r\n }); \r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchSuccess());\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\n//Assign params into JSON for POST API getCSOOrderHistoryByPhoneNickname\r\nconst formCheckCSOOrderHistoryByLocationJSON = () => {\r\n let phoneNo: string = ('+'+localStorage.getItem(phase+'_GSC_countryCode') || '')+(localStorage.getItem(phase+'_GSC_mobileNo') || '');\r\n let idlist: {TrxnNo:string}[] = [];\r\n idlist = JSON.parse(localStorage.getItem(phase+'_GSC_PendingOrder') || '') || [];\r\n \r\n //Format the JSON\r\n const json = JSON.stringify\r\n ({ 'Request':{\r\n 'Header':{\r\n 'Ver':'1.0.0.1',\r\n 'ReqDt':moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // current date time\r\n 'Req':'CheckCSOOrderHistoryByLocation',\r\n 'Channel':'CSO',\r\n },\r\n 'Body':{\r\n 'PhoneNo': phoneNo === null? '': phoneNo,\r\n 'Nickname':localStorage.getItem(phase+'_GSC_nickname') === null? '':localStorage.getItem(phase+'_GSC_nickname'),\r\n 'TrxnOutletId': localStorage.getItem(phase+'_GSC_locid'),\r\n 'IdList': idlist, //Array List\r\n }\r\n } \r\n });\r\n\r\n //DEBUG: record json pass to BE API in localhost to check the design\r\n console.log('formGetCSOOrderHistoryByPhoneNicknameJSON: '+ json);\r\n\r\n return json;\r\n}\r\n\r\n//getWebsiteStatus from API\r\nexport const getWebsiteStatus = () => {\r\n return (dispatch: Dispatch) => {\r\n axios.get(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/GetCSOServiceStatus')\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n dispatch({\r\n type: GET_WEBSITE_STATUS, \r\n payload: data.data,\r\n }); \r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n};\r\n\r\nexport const getOrderStatus = () => {\r\n return (dispatch: Dispatch) => {\r\n dispatch(fetchStart());\r\n dispatch({type: GET_CONFIRM_ORDER_STATUS, payload: null});\r\n dispatch(fetchSuccess());\r\n };\r\n};\r\n\r\nexport const updatePaymentStatus = (booking: string, status: string, statusDesc: string) => {\r\n return (dispatch: Dispatch) => {\r\n axios.post(apiBaseUrl+'/EasiCinemaSelfOrderWs/Service.asmx/UpdatePaymentStatus', formUpdatePaymentStatusJSON(booking,status,statusDesc))\r\n .then(data => {\r\n if (data.status === 200) {\r\n dispatch(fetchSuccess());\r\n } else {\r\n dispatch(fetchError('Something went wrong, Please try again!'));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(fetchSuccess());\r\n dispatch(fetchError(error.message));\r\n });\r\n };\r\n}\r\n\r\n//Assign params into JSON for POST API UpdatePaymentStatus\r\nconst formUpdatePaymentStatusJSON = (bookingid: string, status: string, statusDesc: string) => {\r\n \r\n //Format the JSON\r\n const json = JSON.stringify\r\n ({ 'Request':{\r\n 'Header':{\r\n 'Ver':'1.0.0.1',\r\n 'ReqDt':moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // current date time\r\n 'Req':'UpdatePaymentStatus',\r\n 'Channel':'CSO',\r\n },\r\n 'Body':{\r\n 'TrxnOutletId': localStorage.getItem(phase+'_GSC_locid'),\r\n 'TrxnNo': bookingid, //booking id\r\n 'PaymentStatus': status,\r\n 'PaymentStatusDesc': statusDesc,\r\n }\r\n } \r\n });\r\n\r\n //DEBUG: record json pass to BE API in localhost to check the design\r\n console.log('formUpdatePaymentStatusJSON: '+ json);\r\n\r\n return json;\r\n}\r\n","import React from 'react';\r\nimport {Loader, MessageView} from '../../../@crema';\r\nimport {useSelector} from 'react-redux';\r\nimport {AppState} from '../../../redux/store';\r\n\r\ninterface InfoViewProps {}\r\n\r\nconst InfoView: React.FC = () => {\r\n const {error, loading, message} = useSelector(\r\n ({common}) => common,\r\n );\r\n\r\n const showMessage = () => {\r\n return ;\r\n };\r\n\r\n const showError = () => {\r\n return ;\r\n };\r\n\r\n return (\r\n <>\r\n {loading && }\r\n\r\n {message && showMessage()}\r\n {error && showError()}\r\n \r\n );\r\n};\r\n\r\nexport default InfoView;\r\n","import React, {ReactNode} from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport {isBreakPointDown} from '../../utility/Utils';\r\n\r\ninterface GridContainerProps {\r\n children: ReactNode;\r\n\r\n [x: string]: any;\r\n}\r\n\r\nconst GridContainer: React.FC = ({children, ...others}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default GridContainer;\r\n","//import jwtAxios from '../../@crema/services/auth/jwt-auth/jwt-api';\r\n//import {fetchError, fetchStart, fetchSuccess} from './Common';\r\n//import {AuthType} from '../../shared/constants/AppEnums';\r\n//import {defaultUser} from '../../shared/constants/AppConst';\r\n//import {Loc} from '../../types/models/Loc';\r\nimport {AppActions} from '../../types';\r\nimport {Dispatch} from 'redux';\r\nimport {\r\n SET_LOC,\r\n // UPDATE_LOC,\r\n //GET_CURR_LOC\r\n} from '../../types/actions/CurrLoc.actions';\r\n\r\nexport const setCurrLoc = (id: string, name: string, state: string) => {\r\n return (dispatch: Dispatch) => {\r\n dispatch({type: SET_LOC, payload:{locid: id, locname:name, locstate: state},});\r\n };\r\n};\r\n\r\n// const getLocObject = (loc: any): Loc => {\r\n// return (dispatch: Dispatch) => {\r\n// dispatch({type: SET_LOC, payload:{locid: id, locname:name},});\r\n// };\r\n\r\n// return {\r\n// locid: loc._locid,\r\n// locname: loc._locname,\r\n// };\r\n// };\r\n\r\n// export const onJWTAuthSignout = () => {\r\n// return (dispatch: Dispatch) => {\r\n// dispatch(fetchSuccess());\r\n// setTimeout(() => {\r\n// dispatch({type: SIGNOUT_AUTH_SUCCESS});\r\n// dispatch(fetchSuccess());\r\n// localStorage.removeItem('token');\r\n// }, 500);\r\n// };\r\n// };\r\n","//import {cartItems} from '../../@crema/services/db/ecommerce/ecommerceData';\r\nimport {\r\n CartItems,\r\n CustomersData,\r\n FilterData,\r\n ProductData,\r\n RecentOrders,\r\n //OrderDetails,\r\n //OrderDetail,\r\n CinemaList,\r\n PhonePrefixList,\r\n //OrderHistory,\r\n ConfirmOrderStatus,\r\n RegionList,\r\n} from '../../types/models/ecommerce/EcommerceApp';\r\nimport {\r\n ADD_CART_ITEM,\r\n GET_CUSTOMERS,\r\n GET_ECOMMERCE_LIST,\r\n //SET_ECOMMERCE_LIST,\r\n GET_RECENT_ORDER,\r\n REMOVE_CART_ITEM,\r\n SET_FILTER_DATA,\r\n SET_PRODUCT_DATA,\r\n SET_PRODUCT_VIEW_TYPE,\r\n UPDATE_CART_ITEM,\r\n GET_MENU_ITEM,\r\n NEW_CSO_ORDER,\r\n CONFIRM_CSO_ORDER_STATUS,\r\n SET_ORDER_DATA,\r\n SET_NEW_ORDER,\r\n GET_CINEMA_LIST,\r\n GET_PHONE_PREFIX,\r\n GET_ORDER_HISTORY,\r\n GET_WEBSITE_STATUS,\r\n GET_REGION_LIST,\r\n CLEAR_CART_ITEM,\r\n GET_CONFIRM_ORDER_STATUS,\r\n} from '../../types/actions/Ecommerce.action';\r\nimport {AppActions} from '../../types';\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport '../../shared/styles/vendors/react-confirm-alert.css'\r\nimport {maxOrder, maxItems, phase} from '../../shared/constants/AppConst';\r\n//import { stringify } from 'qs';\r\nexport enum VIEW_TYPE {\r\n LIST = 1,\r\n GRID = 2,\r\n}\r\n\r\nconst initialState: {\r\n ecommerceList: ProductData[];\r\n viewType: number;\r\n currentProduct: ProductData | null;\r\n orderCount: number;\r\n filterData: FilterData;\r\n cartItems: CartItems[];\r\n recentOrders: RecentOrders[];\r\n customers: CustomersData[];\r\n customerCount: number;\r\n //orderDetails: OrderDetails | null;\r\n currentOrder: RecentOrders | null;\r\n newOrder: RecentOrders | null;\r\n confirmOrderStatus: ConfirmOrderStatus | null;\r\n cinemaList: CinemaList [];\r\n phonePrefixList: PhonePrefixList [];\r\n //orderHistory: OrderHistory[];\r\n websiteStatus : string;\r\n regionList: RegionList [];\r\n} = {\r\n ecommerceList: [],\r\n viewType: VIEW_TYPE.LIST,\r\n currentProduct: null,\r\n orderCount: 0,\r\n filterData: {\r\n title: '',\r\n brand: [],\r\n ideaFor: [],\r\n discount: [],\r\n color: [],\r\n type: [],\r\n rating: [],\r\n },\r\n cartItems: [],\r\n recentOrders: [],\r\n customers: [],\r\n customerCount: 0,\r\n //orderDetails: null,\r\n currentOrder:null,\r\n newOrder:null,\r\n confirmOrderStatus:null,\r\n cinemaList: [],\r\n phonePrefixList: [],\r\n //orderHistory: [],\r\n websiteStatus: '',\r\n regionList: [],\r\n};\r\n\r\nconst Ecommerce = (state = initialState, action: AppActions) => {\r\n switch (action.type) {\r\n case GET_ECOMMERCE_LIST:\r\n return {\r\n ...state,\r\n ecommerceList: action.payload,\r\n };\r\n\r\n case SET_PRODUCT_VIEW_TYPE:\r\n return {\r\n ...state,\r\n viewType: action.payload,\r\n };\r\n\r\n case SET_FILTER_DATA:\r\n return {\r\n ...state,\r\n filterData: action.payload,\r\n };\r\n\r\n case SET_PRODUCT_DATA:\r\n return {\r\n ...state,\r\n currentProduct: action.payload,\r\n };\r\n\r\n case GET_RECENT_ORDER:\r\n return {\r\n ...state,\r\n recentOrders: action.payload,\r\n };\r\n\r\n case UPDATE_CART_ITEM:\r\n \r\n return {\r\n ...state,\r\n cartItems: state.cartItems.map(item =>\r\n item.ProductCode === action.payload.ProductCode ? action.payload : item,\r\n ),\r\n };\r\n\r\n case ADD_CART_ITEM:\r\n let cartItems: CartItems[] = [];\r\n const inCart = state.cartItems.some(item => +item.ProductCode === +action.payload.data.ProductCode);\r\n\r\n if (inCart) \r\n {\r\n cartItems = state.cartItems.map(item => \r\n {\r\n if (+item.ProductCode === +action.payload.data.ProductCode) \r\n {\r\n if ((item.count + action.payload.counter) <= maxItems){ //check the quantity of item\r\n item.count = +item.count + action.payload.counter;\r\n }\r\n else\r\n {\r\n item.count = maxItems;\r\n //alert('You can only add a maximum of 10 items to cart in single purchase'); \r\n confirmAlert({\r\n title: 'Hello. Cannot.',\r\n message: 'You can only order a maximum of '+maxItems+' of the particular concession item in a single transaction.',\r\n buttons: [\r\n {\r\n label: 'Ok',\r\n onClick: () => {}\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n return item;\r\n });\r\n\r\n return {\r\n ...state,\r\n cartItems: cartItems,\r\n };\r\n } else {\r\n //check if the carts have more than 10 orders\r\n if(state.cartItems.length < maxOrder){\r\n const cartData: CartItems = {\r\n Seq: action.payload.data.Seq,\r\n ProductCode: action.payload.data.ProductCode,\r\n Description: action.payload.data.Description,\r\n Quantity: action.payload.data.Quantity,\r\n SalesAmount: action.payload.data.SalesAmount,\r\n hlbDiscountFlag: action.payload.data.hlbDiscountFlag,\r\n ImageUrl: action.payload.data.ImageUrl,\r\n DetailDescription: action.payload.data.DetailDescription,\r\n IsSoldOut: action.payload.data.IsSoldOut,\r\n SoldOutMessage: action.payload.data.SoldOutMessage,\r\n Limit_By_Tkt_Qty: action.payload.data.Limit_By_Tkt_Qty,\r\n // Taxes: {\r\n // Type: action.payload.Taxes.Type,\r\n // Code: action.payload.Taxes.Code,\r\n // Id: action.payload.Taxes.Id,\r\n // Rate:action.payload.Taxes.Rate,\r\n // Enabled: action.payload.Taxes.Enabled,\r\n // Inclusive:action.payload.Taxes.Inclusive,\r\n // },\r\n count: action.payload.counter,\r\n };\r\n cartItems = state.cartItems.concat(cartData);\r\n }else {\r\n cartItems = state.cartItems;\r\n confirmAlert({\r\n title: 'Hello. Cannot.',\r\n message:'You can only check out a maximum of '+maxOrder+' orders each time.',\r\n buttons: [\r\n {\r\n label: 'Ok',\r\n onClick: () => {}\r\n }\r\n ]\r\n });\r\n }\r\n\r\n return {\r\n ...state,\r\n cartItems: cartItems,\r\n };\r\n }\r\n\r\n case REMOVE_CART_ITEM:\r\n return {\r\n ...state,\r\n cartItems: state.cartItems.filter(\r\n item => item.ProductCode !== action.payload.ProductCode,\r\n ),\r\n };\r\n\r\n case CLEAR_CART_ITEM:\r\n return {\r\n ...state,\r\n cartItems: [],\r\n };\r\n\r\n case GET_CUSTOMERS:\r\n return {\r\n ...state,\r\n customers: action.payload.customers,\r\n customerCount: action.payload.customerCount,\r\n };\r\n\r\n case GET_MENU_ITEM:\r\n\r\n let tmpChild:ProductData[] = [];\r\n //To get ChildData only\r\n for(var countParents=0; countParents trxnNo)\r\n {\r\n trxnNo = parseInt(trxnNoList[count].TrxnNo);\r\n }\r\n }\r\n }\r\n\r\n //If status return ok\r\n if(action.payload.Response.Body.Status.RespStatus === '000')\r\n {\r\n datalist = action.payload.Response.Body.HistoryDetail;\r\n // find the object with latest TrxnNo\r\n if(trxnNo !== 0)\r\n {\r\n tmpOrder = datalist.find(data => data.Transaction.TrxnNo.match(trxnNo.toString()) || null ) || null;\r\n }else\r\n {\r\n tmpOrder = datalist[0];\r\n }\r\n\r\n if(tmpOrder !== null)\r\n {\r\n const data: RecentOrders = \r\n { \r\n Status: action.payload.Response.Body.Status,\r\n Transaction: tmpOrder.Transaction,\r\n Detail: tmpOrder.Detail,\r\n Total: tmpOrder.Total,\r\n Payment: tmpOrder.Payment,\r\n QRCode: tmpOrder.QRCode,\r\n };\r\n\r\n //Set currentOrder to new Order\r\n newOrderData = data;\r\n }\r\n else\r\n {\r\n newOrderData = datalist[0];\r\n }\r\n if(localStorage.getItem(phase+'_GSC_OrderList') === null)\r\n {\r\n newOrderList = newOrderList.concat(datalist);\r\n //save to localstorage'\r\n localStorage.setItem(phase+'_GSC_OrderList', JSON.stringify(newOrderList));\r\n }\r\n else\r\n {\r\n //get current localStorage OrderList\r\n let oldOrderList: RecentOrders[] = [];\r\n oldOrderList = JSON.parse(localStorage.getItem(phase+'_GSC_OrderList') || '') || [];\r\n\r\n //if same record, filter/remove oldOrderList data \r\n datalist.forEach( input =>\r\n {\r\n oldOrderList = oldOrderList.filter(data => data.Transaction.TrxnNo !== input.Transaction.TrxnNo);\r\n })\r\n\r\n //Add new data\r\n newOrderList = newOrderList.concat(datalist , oldOrderList); //bind old and new data list, put new record at top\r\n\r\n //Reorder list\r\n //newOrderList.sort();\r\n newOrderList.sort((x, y) => +new Date(x.Transaction.TrxnDateTime) - +new Date(y.Transaction.TrxnDateTime)); //ASC by TrxnDateTime\r\n newOrderList.reverse(); //Reverse it to DESC\r\n\r\n //Clear data if more than 30 records\r\n newOrderList = newOrderList.slice(0,30);\r\n\r\n //save to localstorage\r\n localStorage.setItem(phase+'_GSC_OrderList', JSON.stringify(newOrderList));\r\n\r\n //if successfully add record to GSC_OrderList and Payment Status successful, clear GSC_PendingOrder\r\n let pendOrderList: {TrxnNo:string}[] = [];\r\n pendOrderList = JSON.parse(localStorage.getItem(phase+'_GSC_PendingOrder') || '') || [];\r\n\r\n //Reform new GSC_PendingOrder list\r\n newOrderList.forEach( input => \r\n {\r\n const duplicate = pendOrderList.some(data => +data.TrxnNo === +input.Transaction.TrxnNo);\r\n if(duplicate && input.Payment.PymtStatus !== 'P')\r\n {\r\n pendOrderList = pendOrderList.filter(data => data.TrxnNo !== input.Transaction.TrxnNo);\r\n //save new filtered list in localstorage\r\n localStorage.setItem(phase+'_GSC_PendingOrder', JSON.stringify(pendOrderList));\r\n }\r\n } )\r\n }\r\n\r\n }else //if Status return false\r\n {\r\n const data: RecentOrders = \r\n { \r\n Status:action.payload.Response.Body.Status,\r\n Transaction:\r\n {\r\n TrxnOutletId: '',\r\n TrxnNo: '',\r\n TrxnDateTime: '',\r\n HallNo: '',\r\n ShowTime: '',\r\n PhoneNo: '',\r\n Nickname: '',\r\n },\r\n Detail: [],\r\n Total:\r\n {\r\n TrxnAmt: 0,\r\n },\r\n Payment:\r\n {\r\n PymtCode: '',\r\n PymtDesc: '',\r\n PymtAmt: 0,\r\n PymtStatus: '',\r\n PymtStatusDesc: '',\r\n PymtDiscount: 0,\r\n },\r\n QRCode:'',\r\n };\r\n\r\n //Set currentOrder to new Order\r\n newOrderData = data;\r\n }\r\n\r\n return {\r\n ...state,\r\n newOrder: newOrderData,\r\n //cartItems: [], //Clear CartItems\r\n };\r\n\r\n case CONFIRM_CSO_ORDER_STATUS:\r\n //let OrderList: ConfirmOrderStatus[] = [];\r\n let neworder: RecentOrders | null;\r\n //let pendingOrderList: {TrxnNo: string}[] = [];\r\n let currOrderStatus: ConfirmOrderStatus | null;\r\n\r\n //If status return ok\r\n if(action.payload.data.Response.Body.Status.RespStatus === '000')\r\n {\r\n const data: ConfirmOrderStatus = \r\n { \r\n Status:action.payload.data.Response.Body.Status,\r\n BookingId: action.payload.data.Response.Body.BookingId,\r\n Emall_req: action.payload.data.Response.Body.Emall_req,\r\n };\r\n \r\n //Set currentOrder \r\n currOrderStatus = data;\r\n neworder = null;\r\n\r\n //show Alert\r\n confirmAlert({\r\n title: 'Are you sure you want to confirm your order?',\r\n //message: 'Are you sure to confirm your order?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {\r\n action.payload.redirectToPayment(data.Emall_req, data.BookingId);\r\n action.payload.setSubmitting(true);\r\n },\r\n },\r\n {\r\n label: 'Cancel',\r\n onClick: () => {\r\n action.payload.redirectToMenuList(data.BookingId);\r\n action.payload.setSubmitting(false);\r\n },\r\n },\r\n ],\r\n closeOnClickOutside: false,\r\n });\r\n\r\n //setSubmitting\r\n \r\n }else //if Status return false\r\n { \r\n const data: ConfirmOrderStatus = \r\n { \r\n Status:action.payload.data.Response.Body.Status,\r\n BookingId: '',\r\n Emall_req: '',\r\n };\r\n\r\n //Set currentOrder\r\n currOrderStatus = data;\r\n\r\n const newdata: RecentOrders = \r\n { \r\n Status:action.payload.data.Response.Body.Status,\r\n Transaction:\r\n {\r\n TrxnOutletId: '',\r\n TrxnNo: '',\r\n TrxnDateTime: '',\r\n HallNo: '',\r\n ShowTime: '',\r\n PhoneNo: '',\r\n Nickname: '',\r\n },\r\n Detail: [],\r\n Total:\r\n {\r\n TrxnAmt: 0,\r\n },\r\n Payment:\r\n {\r\n PymtCode: '',\r\n PymtDesc: '',\r\n PymtAmt: 0,\r\n PymtStatus: '',\r\n PymtStatusDesc: '',\r\n PymtDiscount: 0, \r\n },\r\n QRCode:'',\r\n };\r\n\r\n //Set currentOrder to new Order\r\n neworder = newdata;\r\n\r\n //Alert for fail\r\n confirmAlert({\r\n title: action.payload.data.Response.Body.Status.RespDesc ,\r\n //message: 'Please try again later or contact our customer service.',\r\n buttons: [\r\n {\r\n label: 'OK',\r\n onClick: () => {\r\n action.payload.setSubmitting(false);\r\n },\r\n }\r\n ],\r\n closeOnClickOutside: false,\r\n });\r\n }\r\n \r\n return {\r\n ...state,\r\n confirmOrderStatus: currOrderStatus,\r\n newOrder: neworder,\r\n //cartItems: [], //Clear CartItems\r\n };\r\n\r\n case SET_NEW_ORDER:\r\n return {\r\n ...state,\r\n newOrder: action.payload,\r\n };\r\n \r\n case SET_ORDER_DATA:\r\n return {\r\n ...state,\r\n currentOrder: action.payload,\r\n };\r\n\r\n case GET_CINEMA_LIST:\r\n let tmpCinemaList: CinemaList[] = [];\r\n for(let loccount=0; loccount +item.OutletId === +action.payload.Response.Body.Location[loccount].OutletId))\r\n {\r\n tmpCinemaList =\r\n [\r\n ...tmpCinemaList,\r\n {\r\n OutletId: action.payload.Response.Body.Location[loccount].OutletId,\r\n OutletName: action.payload.Response.Body.Location[loccount].OutletName,\r\n Region: action.payload.Response.Body.Location[loccount].Region,\r\n Address: action.payload.Response.Body.Location[loccount].Address,\r\n StateCode: action.payload.Response.Body.Location[loccount].StateCode,\r\n StateDesc: action.payload.Response.Body.Location[loccount].StateDesc,\r\n Epay_Enabled: action.payload.Response.Body.Location[loccount].Epay_Enabled,\r\n Epay_Hidden: action.payload.Response.Body.Location[loccount].Epay_Hidden,\r\n }\r\n ]\r\n }\r\n } \r\n return {\r\n ...state,\r\n cinemaList: tmpCinemaList,\r\n };\r\n\r\n case GET_PHONE_PREFIX:\r\n let tmpPhonePrefixList: PhonePrefixList[] = [];\r\n for(let codecount=0; codecount +item.CountryCode === +action.payload.Response.Body.Phone[codecount].CountryCode))\r\n {\r\n tmpPhonePrefixList =\r\n [\r\n ...tmpPhonePrefixList,\r\n {\r\n CountryCode: action.payload.Response.Body.Phone[codecount].CountryCode,\r\n Prefix: action.payload.Response.Body.Phone[codecount].Prefix,\r\n }\r\n ]\r\n }\r\n } \r\n return {\r\n ...state,\r\n phonePrefixList: tmpPhonePrefixList,\r\n };\r\n\r\n case GET_ORDER_HISTORY:\r\n\r\n let tmpOrderList : RecentOrders[];\r\n tmpOrderList = action.payload.Response.Body.HistoryDetail;\r\n\r\n if(localStorage.getItem(phase+'_GSC_PendingOrder')!==null)\r\n {\r\n //if successfully add record to GSC_OrderList and Payment Status successful, clear GSC_PendingOrder\r\n let pendOrderList: {TrxnNo:string}[] = [];\r\n pendOrderList = JSON.parse(localStorage.getItem(phase+'_GSC_PendingOrder') || '') || [];\r\n\r\n //Reform new GSC_PendingOrder list\r\n tmpOrderList.forEach( input => \r\n {\r\n const duplicate = pendOrderList.some(data => +data.TrxnNo === +input.Transaction.TrxnNo);\r\n if(duplicate && input.Payment.PymtStatus !== 'P')\r\n {\r\n pendOrderList = pendOrderList.filter(data => data.TrxnNo !== input.Transaction.TrxnNo);\r\n //save new filtered list in localstorage\r\n localStorage.setItem(phase+'_GSC_PendingOrder', JSON.stringify(pendOrderList));\r\n }\r\n } )\r\n\r\n //if Pending Order List is 0, then clear refresh count\r\n if(pendOrderList.length === 0)\r\n {\r\n localStorage.removeItem(phase+'_GSC_RefreshCount');\r\n }\r\n }\r\n else\r\n {\r\n localStorage.removeItem(phase+'_GSC_RefreshCount');\r\n }\r\n\r\n localStorage.removeItem(phase+'_GSC_OrderList');\r\n localStorage.setItem(phase+'_GSC_OrderList', JSON.stringify(tmpOrderList));\r\n\r\n return {\r\n ...state,\r\n recentOrders: tmpOrderList,\r\n };\r\n\r\n //Get Website Status C : ComingSoon; M: Maintenance;O: Operation \r\n case GET_WEBSITE_STATUS:\r\n return {\r\n ...state,\r\n websiteStatus: action.payload.Response.Body.ServiceStatus,\r\n };\r\n \r\n //Get Region List\r\n case GET_REGION_LIST:\r\n return {\r\n ...state,\r\n regionList: action.payload.Response.Body.Region,\r\n };\r\n\r\n case GET_CONFIRM_ORDER_STATUS:\r\n return {\r\n ...state,\r\n confirmOrderStatus: state.confirmOrderStatus,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default Ecommerce;\r\n","import {makeStyles} from '@material-ui/core';\r\nimport {CremaTheme} from '../../../../types/AppContextPropsType';\r\n\r\nconst useStyles = makeStyles((theme: CremaTheme) => ({\r\n tableCell: {\r\n fontSize: 13,\r\n padding: 11,\r\n whiteSpace: 'nowrap',\r\n '&:first-child': {\r\n paddingLeft: 20,\r\n },\r\n '&:last-child': {\r\n paddingRight: 20,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n '&:first-child': {\r\n paddingLeft: 10,\r\n },\r\n '&:last-child': {\r\n paddingRight: 10,\r\n },\r\n },\r\n },\r\n whiteSpace: {\r\n whiteSpace: 'nowrap',\r\n },\r\n anchar: {\r\n color: theme.palette.primary.main,\r\n borderBottom: `1px solid ${theme.palette.primary.main}`,\r\n display: 'inline-block',\r\n },\r\n badgeRoot: {\r\n padding: '3px 5px',\r\n borderRadius: 4,\r\n fontSize: 14,\r\n display: 'inline-block',\r\n },\r\n boxDisplay: {\r\n display: '',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'flex',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: '30px',\r\n },\r\n },\r\n countDisplay: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: 80,\r\n height: 40,\r\n fontSize: 16,\r\n [theme.breakpoints.down('sm')]: {\r\n width: 80,\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: 50,\r\n height: 30,\r\n fontSize: 12,\r\n },\r\n },\r\n padding: {\r\n padding: 12,\r\n [theme.breakpoints.down('md')]: {\r\n padding: 6,\r\n }, \r\n },\r\n\r\n}));\r\nexport default useStyles;\r\n","import createBreakpoints from '@material-ui/core/styles/createBreakpoints';\r\nimport {\r\n FooterType,\r\n HeaderType,\r\n LayoutType,\r\n NavStyle,\r\n RouteTransition,\r\n ThemeMode,\r\n ThemeStyle,\r\n ThemeStyleRadius,\r\n} from '../../../shared/constants/AppEnums';\r\n\r\nconst breakpoints = createBreakpoints({});\r\nconst cardRadius = ThemeStyleRadius.STANDARD;\r\nconst defaultConfig: any = {\r\n theme: {\r\n spacing: 4,\r\n direction: 'ltr', //ltr, rtl\r\n palette: {\r\n type: ThemeMode.DARK,\r\n background: {\r\n paper: '#414042', //#FFFFFF //3d3d3d //5C5C5C\r\n default: '#000000',//'#EEF7F4',//FBFFEC apple yellow\r\n },\r\n primary: {\r\n main: '#fff200',//F7DC6F //f7f728 //ffee00\r\n contrastText: '#000000',\r\n },\r\n secondary: {\r\n main: '#DE3163',\r\n // contrastText: '#000000',\r\n },\r\n sidebar: {\r\n bgColor: '#313541',\r\n textColor: '#808183',\r\n },\r\n gray: {\r\n 50: '#fafafa',\r\n 100: '#f7fafc',\r\n 200: '#edf2f7',\r\n 300: '#E0E0E0',\r\n 400: '#c5c6cb',\r\n 500: '#A8A8A8',\r\n 600: '#666666',\r\n 700: '#4a5568',\r\n 800: '#201e21',\r\n 900: '#1a202c',\r\n A100: '#d5d5d5',\r\n A200: '#aaaaaa',\r\n A400: '#303030',\r\n A700: '#616161',\r\n },\r\n text: {\r\n primary: '#fff', //#495057\r\n secondary: '#d0d0d0',//#74788d\r\n disabled: '#d0d0d0',//#909098\r\n hint: '#aeafb8',//#aeafb8\r\n white: '#fff',//#fff\r\n },\r\n },\r\n status: {\r\n danger: 'orange',\r\n },\r\n divider: 'rgba(0, 0, 0, 0.12)',\r\n typography: {\r\n fontFamily: ['Montserrat', 'sans-serif'].join(','), //Montserrat\r\n },\r\n overrides: {\r\n MuiTypography: {\r\n h1: {\r\n fontSize: 22,\r\n },\r\n h2: {\r\n fontSize: 20,\r\n },\r\n h3: {\r\n fontSize: 18,\r\n },\r\n h4: {\r\n fontSize: 16,\r\n },\r\n h5: {\r\n fontSize: 14,\r\n },\r\n h6: {\r\n fontSize: 14,\r\n },\r\n subtitle1: {\r\n fontSize: 14,\r\n },\r\n subtitle2: {\r\n fontSize: 16,\r\n },\r\n body1: {\r\n fontSize: 14,\r\n },\r\n body2: {\r\n fontSize: 12,\r\n },\r\n },\r\n MuiToggleButton: {\r\n root: {\r\n borderRadius: cardRadius,\r\n },\r\n },\r\n MuiCardLg: {\r\n root: {\r\n borderRadius:\r\n cardRadius === ThemeStyleRadius.STANDARD\r\n ? ThemeStyleRadius.STANDARD\r\n : ThemeStyleRadius.MODERN + 20,\r\n },\r\n },\r\n MuiCard: {\r\n root: {\r\n borderRadius: cardRadius,\r\n boxShadow: '0px 5px 6px rgba(0, 0, 0, 0.04)',\r\n '& .MuiCardContent-root:last-child': {\r\n paddingBottom: 16,\r\n },\r\n },\r\n },\r\n MuiButton: {\r\n root: {\r\n borderRadius: cardRadius,\r\n boxShadow: '0px 5px 6px rgba(0, 0, 0, 0.04)',\r\n [breakpoints.down('md')]: {\r\n paddingTop: '8px !important',\r\n paddingBottom: '8px !important',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n themeStyle: ThemeStyle.STANDARD,\r\n themeMode: ThemeMode.DARK,\r\n navStyle: NavStyle.STANDARD,\r\n layoutType: LayoutType.FULL_WIDTH,\r\n footerType: FooterType.FLUID,\r\n headerType: HeaderType.DARK,\r\n rtAnim: RouteTransition.NONE,\r\n footer: false,\r\n notice: true,\r\n noticeHeight: 0,\r\n headerHeight: 0,\r\n locale: {\r\n languageId: 'english',\r\n locale: 'en',\r\n name: 'English',\r\n icon: 'us',\r\n },\r\n rtlLocale: ['ar'],\r\n};\r\nexport default defaultConfig;\r\n","import axios from 'axios';\r\n\r\nexport default axios.create({\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n },\r\n});\r\n","import {Metrics} from '../models/dashboards/Metrics';\r\nimport {Analytics} from '../models/dashboards/Analytics';\r\nimport {CRM} from '../models/dashboards/CRM';\r\nimport {Crypto} from '../models/dashboards/Crypto';\r\nimport {Widgets} from '../models/dashboards/Widgets';\r\nimport {Academy} from '../models/dashboards/Academy';\r\nimport {HealthCare} from '../models/dashboards/HealthCare';\r\nimport {Ecommerce} from '../models/dashboards/Ecommerce';\r\n\r\nexport const GET_ACADEMY_DATA = 'GET_ACADEMY_DATA';\r\nexport const GET_ECOMMERCE_DATA = 'GET_ECOMMERCE_DATA';\r\nexport const GET_HEALTH_CARE_DATA = 'GET_HEALTH_CARE_DATA';\r\nexport const GET_ANALYTICS_DATA = 'GET_ANALYTICS_DATA';\r\nexport const GET_CRM_DATA = 'GET_CRM_DATA';\r\nexport const GET_CRYPTO_DATA = 'GET_CRYPTO_DATA';\r\nexport const GET_METRICS_DATA = 'GET_METRICS_DATA';\r\nexport const GET_WIDGETS_DATA = 'GET_WIDGETS_DATA';\r\n\r\nexport interface GetAnalyticsAction {\r\n type: typeof GET_ANALYTICS_DATA;\r\n payload: Analytics;\r\n}\r\nexport interface GetECommerceAction {\r\n type: typeof GET_ECOMMERCE_DATA;\r\n payload: Ecommerce;\r\n}\r\nexport interface GetHeathCareAction {\r\n type: typeof GET_HEALTH_CARE_DATA;\r\n payload: HealthCare;\r\n}\r\n\r\nexport interface GetAcademyAction {\r\n type: typeof GET_ACADEMY_DATA;\r\n payload: Academy;\r\n}\r\n\r\nexport interface GetCRMAction {\r\n type: typeof GET_CRM_DATA;\r\n payload: CRM;\r\n}\r\n\r\nexport interface GetCryptosAction {\r\n type: typeof GET_CRYPTO_DATA;\r\n payload: Crypto;\r\n}\r\n\r\nexport interface GetMetricsAction {\r\n type: typeof GET_METRICS_DATA;\r\n payload: Metrics;\r\n}\r\n\r\nexport interface GetWidgetsAction {\r\n type: typeof GET_WIDGETS_DATA;\r\n payload: Widgets;\r\n}\r\n\r\nexport type DashboardActionTypes =\r\n | GetECommerceAction\r\n | GetHeathCareAction\r\n | GetAcademyAction\r\n | GetAnalyticsAction\r\n | GetCRMAction\r\n | GetCryptosAction\r\n | GetMetricsAction\r\n | GetWidgetsAction;\r\n","import {\r\n CommonActionTypes,\r\n FETCH_ERROR,\r\n FETCH_START,\r\n FETCH_SUCCESS,\r\n HIDE_MESSAGE,\r\n SHOW_MESSAGE,\r\n TOGGLE_APP_DRAWER,\r\n} from '../../types/actions/Common.action';\r\n\r\nexport const fetchStart = (): CommonActionTypes => ({type: FETCH_START});\r\n\r\nexport const fetchSuccess = (): CommonActionTypes => ({type: FETCH_SUCCESS});\r\n\r\nexport const fetchError = (error: string): CommonActionTypes => ({\r\n type: FETCH_ERROR,\r\n error,\r\n});\r\n\r\nexport const showMessage = (message: string): CommonActionTypes => ({\r\n type: SHOW_MESSAGE,\r\n message,\r\n});\r\n\r\nexport const onToggleAppDrawer = (): CommonActionTypes => ({\r\n type: TOGGLE_APP_DRAWER,\r\n});\r\n\r\nexport const hideMessage = (): CommonActionTypes => ({type: HIDE_MESSAGE});\r\n"],"sourceRoot":""}