{"version":3,"sources":["actions/sessionActions.js","utils/getInitials.js","theme/palette.js","theme/typography.js","theme/overrides/MuiChip.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiInputBase.js","theme/overrides/MuiLinearProgress.js","theme/overrides/MuiListItemIcon.js","theme/overrides/MuiTableHead.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiCardActions.js","theme/overrides/MuiCardContent.js","theme/overrides/MuiCardHeader.js","theme/overrides/MuiOutlinedInput.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableRow.js","theme/overrides/MuiToggleButton.js","theme/overrides/MuiTypography.js","theme/index.js","reducers/sessionReducer.js","reducers/notifierReducer.js","views/Management/requests/UsersRequests.js","views/Management/actions/UsersActions.js","views/Management/reducers/UsersReducer.js","views/Management/requests/OperatorsRequests.js","views/Management/actions/OperatorsActions.js","views/Management/reducers/OperatorsReducer.js","views/Management/requests/SettingsRequests.js","views/Management/actions/SettingsActions.js","views/Management/reducers/SettingsReducer.js","views/Dashboard/requests/DashboardInspectRequests.js","views/Dashboard/actions/DashboardInspectActions.js","views/Dashboard/reducers/DashboardInspectReducer.js","components/Map/actions/MapActions.js","components/Map/reducers/MapReducer.js","views/PagerDutyIncidents/requests/PagerDutyIncidentsRequests.js","views/PagerDutyIncidents/actions/PagerDutyIncidentsActions.js","views/PagerDutyIncidents/reducers/PagerDutyIncidentsReducer.js","reducers/index.js","layouts/Auth/components/Topbar/Topbar.js","layouts/Auth/Auth.js","layouts/Error/Error.js","components/NotificationHub/NotificationHub.js","layouts/Dashboard/components/NavBar/navigationConfig.js","layouts/Dashboard/components/NavBar/NavBar.js","layouts/Dashboard/components/TopBar/TopBar.js","utils/axios.js","layouts/Dashboard/Dashboard.js","layouts/Dashboard/components/ChatBar/ChatBar.js","views/DashboardAnalytics/components/EarningsSegmentation/components/Chart/Chart.js","views/DashboardAnalytics/components/EarningsSegmentation/EarningsSegmentation.js","views/DashboardAnalytics/components/FinancialStats/components/Chart/Chart.js","views/DashboardAnalytics/components/FinancialStats/FinancialStats.js","views/DashboardAnalytics/components/Header/Header.js","views/DashboardAnalytics/components/MostProfitableProducts/components/CircularProgress/CircularProgress.js","views/DashboardAnalytics/components/MostProfitableProducts/MostProfitableProducts.js","views/DashboardAnalytics/components/Overview/Overview.js","views/DashboardAnalytics/components/TopReferrals/TopReferrals.js","views/DashboardAnalytics/components/CustomerActivity/CustomerActivity.js","views/DashboardAnalytics/components/LatestOrders/LatestOrders.js","views/DashboardAnalytics/DashboardAnalytics.js","views/DashboardDefault/components/Header/Header.js","views/DashboardDefault/components/LatestProjects/LatestProjects.js","views/DashboardDefault/components/NewProjects/NewProjects.js","views/DashboardDefault/components/RoiPerCustomer/RoiPerCustomer.js","views/DashboardDefault/components/TeamTasks/components/TaskItem/TaskItem.js","views/DashboardDefault/components/TeamTasks/TeamTasks.js","views/DashboardDefault/components/TodaysMoney/TodaysMoney.js","views/DashboardDefault/components/SystemHealth/SystemHealth.js","views/DashboardDefault/components/RealTime/components/Chart/Chart.js","views/DashboardDefault/components/RealTime/RealTime.js","views/DashboardDefault/components/PerformanceOverTime/components/Chart/Chart.js","views/DashboardDefault/components/PerformanceOverTime/PerformanceOverTime.js","views/DashboardDefault/DashboardDefault.js","views/Overview/components/Header/Header.js","views/Overview/components/Statistics/Statistics.js","views/Overview/components/Notifications/Notifications.js","views/Overview/components/Projects/Projects.js","views/Home/Home.js","views/Overview/components/Todos/Todos.js","views/Overview/Overview.js","views/Presentation/components/FAQ/FAQ.js","views/Presentation/components/Header/Header.js","views/Presentation/components/PluginsSupport/PluginsSupport.js","views/Presentation/components/SourceFiles/SourceFiles.js","views/Presentation/components/UserFlows/UserFlows.js","views/Presentation/Presentation.js","views/Management/components/Users/components/Card/Card.js","views/Management/components/Users/components/UsersDataTable/UsersDataTable.js","components/ModalDialog/components/DialogTitle.js","components/ModalDialog/components/DialogContent.js","components/ModalDialog/ModalDialog.js","views/Management/components/Users/components/AddEditUserDialog/components/AddEditUserForm/AddEditUserForm.js","views/Management/components/Users/components/AddEditUserDialog/AddEditUserDialog.js","views/Management/components/Users/components/DeleteUserDialog/DeleteUserDialog.js","views/Management/components/Users/Users.js","views/Management/components/Operators/components/OperatorCard/OperatorCard.js","views/Management/components/Operators/components/OperatorsList/OperatorsList.js","views/Management/components/Operators/components/AddOperatorDialog/components/AddOperatorForm/AddOperatorForm.js","views/Management/components/Operators/components/AddOperatorDialog/AddOperatorDialog.js","views/Management/components/Operators/Operators.js","views/Management/components/OperatorDetails/components/Overview/components/Details/Details.js","views/Management/components/OperatorDetails/components/Overview/components/Picture/Picture.js","views/Management/components/OperatorDetails/components/Overview/Overview.js","views/Management/components/OperatorDetails/components/Projects/components/ProjectsDataTable/components/ActionsButton/ActionsButton.js","views/Management/components/OperatorDetails/components/Projects/components/ProjectsDataTable/ProjectsDataTable.js","views/Management/components/OperatorDetails/components/Projects/components/AddProjectDialog/components/AddProjectForm/AddProjectForm.js","views/Management/components/OperatorDetails/components/Projects/components/AddProjectDialog/AddProjectDialog.js","views/Management/components/OperatorDetails/components/Projects/Projects.js","views/Management/components/OperatorDetails/components/Users/components/UsersDataTable/UsersDataTable.js","views/Management/components/OperatorDetails/components/Users/Users.js","views/Management/components/OperatorDetails/OperatorDetails.js","views/Management/components/Settings/components/General/components/GeneralForm/GeneralForm.js","views/Management/components/Settings/components/General/General.js","views/Management/components/Settings/components/Notifications/Notifications.js","views/Management/components/Settings/components/Security/Security.js","views/Management/components/Settings/Settings.js","views/Management/components/Settings/components/Subscription/Subscription.js","views/Dashboard/components/Inspect/components/OptionsButton/OptionsButton.js","views/Dashboard/components/Inspect/DashboardInspect.js","views/PagerDutyIncidents/components/components/PagerDutyIncidentsTable.js","components/DatePicker/DateTimePicker.js","views/PagerDutyIncidents/components/components/PagerDutyIncidentDialogForm.js","views/PagerDutyIncidents/components/components/PagerDutyIncidentDialog.js","views/PagerDutyIncidents/components/components/PagerDutyDeleteIncidentDialog.js","views/PagerDutyIncidents/components/PagerDutyIncidents.js","routes.js","components/Notifier/Notifier.js","mixins/chartjs.js","mixins/moment.js","mixins/validate.js","utils/mock.js","mock/accountMock.js","mock/calendarMock.js","mock/chatMock.js","mock/customerMock.js","mock/mailMock.js","mock/projectMock.js","mock/socialFeedMock.js","mock/userMock.js","mock/invoiceMock.js","mock/kanbanMock.js","mock/taskMock.js","mock/orderMock.js","mock/dashboardMock.js","App.js","store/configureStore.js","serviceWorker.js","index.js","components/SelectField/SelectField.js","components/DataTable/DataTable.js","components/AddPost/AddPost.js","components/Alert/Alert.js","components/CodeBlock/CodeBlock.js","components/CookiesNotification/CookiesNotification.js","components/FilesDropzone/FilesDropzone.js","components/GenericMoreButton/GenericMoreButton.js","components/GoogleAnalytics/GoogleAnalytics.js","components/Markdown/Markdown.js","components/Navigation/components/NavigationListItem/NavigationListItem.js","components/Navigation/Navigation.js","components/NotificationsPopover/components/NotificationList/NotificationList.js","components/NotificationsPopover/components/EmptyList/EmptyList.js","components/NotificationsPopover/NotificationsPopover.js","components/Page/Page.js","components/Paginate/Paginate.js","components/PostCard/components/CommentBubble/CommentBubble.js","components/PostCard/components/CommentForm/CommentForm.js","components/PostCard/components/Reactions/Reactions.js","components/PostCard/PostCard.js","components/PricingModal/PricingModal.js","components/ProjectCard/ProjectCard.js","components/ReviewStars/ReviewStars.js","components/RichEditor/components/EditorToolbar/EditorToolbar.js","components/RichEditor/utils/block.js","components/ScrollReset/ScrollReset.js","components/RichEditor/RichEditor.js","components/SearchBar/components/Filter/Filter.js","components/SearchBar/components/Search/Search.js","components/SearchBar/SearchBar.js","components/StackAvatars/StackAvatars.js","components/StatusBullet/StatusBullet.js","components/TableEditBar/TableEditBar.js","components/Loading/Loading.js","components/Header/Header.js","components/DatePicker/Calendar.js","components/FilePicker/FilePicker.js","components/PowerBIDashboard/PowerBIDashboard.js","components/FiltersDrawer/FiltersDrawer.js","components/DatePicker/DatePicker.js","actions/notifierActions.js","configuration/configuration.js","components/Label/Label.js","components/TableauDashboard/TableauDashboard.js","utils/AxiosRequest.js","components/Checkbox/Checkbox.js","utils/useRouter.js","components/AuthGuard/AuthGuard.js","utils/gradients.js"],"names":["SESSION_LOGIN","SESSION_LOGOUT","SET_NOTIFICATIONS","USER_INFO","SET_LOADING","REDIRECT_TO_ERROR","onLogin","type","onRedirectToError","value","link","getUserInfo","token","dispatch","a","AxiosRequest","method","url","config","API_URL","headers","Authorization","then","response","data","user","login","email","password","localStorage","setItem","TOKEN_KEY","Error","message","logout","removeItem","RedirectToError","recover","CompleteRegistration","rpassword","ResetPassword","FetchNotifications","hasLoading","notifications","NotificationMarkAsRead","id","SetLoading","isLoading","UploadFile","file","formData","FormData","append","ShowFile","blob","filename","decodeURIComponent","split","newBlob","Blob","window","navigator","msSaveOrOpenBlob","URL","createObjectURL","document","createElement","href","download","body","appendChild","click","setTimeout","removeChild","revokeObjectURL","DownloadFile","filePath","responseType","name","replace","slice","map","v","toUpperCase","join","white","black","primary","contrastText","dark","colors","blue","main","light","secondary","A400","error","red","text","blueGrey","icon","background","default","paper","divider","grey","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","styleOverrides","root","backgroundColor","deletable","input","opacity","borderRadius","overflow","colorPrimary","minWidth","MuiButton","contained","boxShadow","MuiCardActions","padding","MuiCardContent","MuiCardHeader","MuiChip","MuiIconButton","MuiInputBase","MuiLinearProgress","MuiListItemIcon","MuiOutlinedInput","notchedOutline","borderColor","MuiPaper","elevation1","MuiTableHead","MuiTableCell","typography","borderBottom","MuiTableRow","MuiToggleButton","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","MuiTypography","gutterBottom","marginBottom","theme","createTheme","components","overrides","getItem","initialState","loggedIn","loadingCount","decoded","jwt","currentDate","Date","getTime","exp","sessionReducer","state","action","actionTypes","role","defaultState","GetUsersRequest","params","GetRolesRequest","GetOperatorProjectsRequest","operatorIds","GetUserRequest","userId","ResendConfirmationEmailRequest","DeactivateUserRequest","DeleteUserRequest","GET_USERS","GET_USERS_STATS","TOGGLE_ADD_EDIT_USER_DIALOG","TOGGLE_DELETE_USER_DIALOG","GET_ROLES","GET_OPERATORS","GET_OPERATOR_PROJECTS","SET_FORM_STATE","GET_USER","GetUsers","users","catch","enqueueSnackbar","options","variant","GetUsersStats","usersStats","ToggleAddEditUserDialog","openAddEditUserDialog","openAddEditUserDialogId","onToggleAddEditUserDialog","ToggleDeleteUserDialog","openDeleteUserDialog","openDeleteUserDialogId","onToggleDeleteUserDialog","SetFormState","formState","onSetFormState","roles","operators","operatorProjects","isValid","values","touched","errors","usersReducer","GetOperatorRequest","operatorId","UpdateImageRequest","operator","DeleteProjectRequest","projectId","UpdateOperatorRequest","TOGGLE_ADD_OPERATOR_DIALOG","NAVIGATE_DETAILS","GET_OPERATOR","TOGGLE_ADD_PROJECT_DIALOG","GetOperators","ToggleAddOperatorDialog","openAddEditOperatorDialog","openAddOperatorDialog","NavigateDetails","detailsOperatorId","onNavigateDetails","GetOperator","UpdateImage","ToggleAddProjectDialog","openAddEditProjectDialog","openAddProjectDialog","operatorsReducer","GetOperatorsRequest","UpdateSettingsRequest","ChangePasswordRequest","settingsReducer","DashboardInspectRequest","dashboardId","DASHBOARD_INSPECT","dashboard","reportsReducer","UPDATE_COORDINATES","ADD_MAP","UPDATE_TOPOLOGY","UPDATE_LEGEND","UPDATE_POPUP","UPDATE_OVERLAYS","lat","lon","zoom","maps","mapUpdated","undefined","zoomToUpdate","AddNewMap","mapAlreadyExists","find","el","newAddMaps","filter","push","coordinates","CenterLatitude","CenterLongitude","topology","twoG","threeG","fourG","legend","legendElements","title","updateEnd","UpdateCoordinates","newUpdateMaps","item","newCoordinates","UpdateTopology","newTopologyMaps","newTopology","UpdateLegend","newLegendMaps","newLegend","UpdatePopup","newMaps","control","activePopup","UpdateOverlays","activeLayers","MapReducer","CreateIncidentRequest","incidentForm","EditIncidentRequest","DeleteIncidentRequest","GetIncidentRequest","incidentId","GET_PAGERDUTY_INCIDENTS_UPDATE","GET_PAGERDUTY_INCIDENTS_ACK_UPDATE","GET_PAGERDUTY_INCIDENTS_TABLE","TOGGLE_INCIDENT_TRACKER_DIALOG","TOGGLE_DELETE_INCIDENT_DIALOG","GET_INCIDENT","GET_DROPDOWNS","onToggleIncidentTrackerDialog","visible","incidentClosed","GetPagerDutyIncidentsTable","incidentsTableData","ToggleIncidentTrackerDialog","ToggleDeleteIncidentDialog","onToggleDeleteIncidentDialog","incidentsLastUpdate","incidentsAckLastUpdate","dropdowns","submit","pagerDutyIncidentsReducer","deleteIncidentDialogVisibility","selectedIncidentId","incidentTrackerDialogVisibility","isIncidentClosed","selectedIncidentSubmitter","incidentSubmitter","projectsDropdown","sowDropdown","layersDropdown","typeDropdown","detailedTypeDropdown","currentQueueDropdown","incident","rootReducer","combineReducers","session","notifierReducer","ENQUEUE_SNACKBAR","key","notification","CLOSE_SNACKBAR","dismissAll","dismissed","REMOVE_SNACKBAR","dashboardInspectReducer","mapReducer","useStyles","makeStyles","Topbar","props","className","rest","classes","AppBar","clsx","Toolbar","to","alt","src","style","maxHeight","content","height","paddingTop","breakpoints","up","Auth","route","fallback","LinearProgress","renderRoutes","routes","startSignalRConnection","connection","origin","start","err","NotificationHub","useRef","useDispatch","NotificationRecieved","info","actions","Math","random","useEffect","current","urlRoot","connectionHub","HubConnectionBuilder","withUrl","build","on","onclose","stop","pages","HomeIcon","ListIcon","DashboardIcon","children","SupervisorAccountIcon","target","DesktopMacIcon","SettingsIcon","overflowY","spacing","profile","display","flexDirection","alignItems","minHeight","avatar","width","marginTop","navigation","NavBar","openMobile","onMobileClose","router","useRouter","useSelector","location","pathname","projects","management","navigationConfig","hangfire","hangfireindex","findIndex","splice","managementIndex","navbarContent","Avatar","component","RouterLink","getInitials","firstname","lastname","Typography","Divider","list","includes","_","intersection","length","userRole","userProjects","Hidden","lgUp","Drawer","anchor","onClose","open","lgDown","Paper","elevation","square","flexGrow","search","flexBasis","searchIcon","marginRight","searchInput","searchPopper","zIndex","appBar","searchPopperContent","trialButton","marginLeft","green","trialIcon","notificationsButton","notificationsBadge","orange","logoutButton","logoutIcon","TopBar","onOpenNavBarMobile","history","notificationsRef","useState","pricingModalOpen","setPricingModalOpen","openNotifications","setOpenNotifications","shallowEqual","IconButton","onClick","ref","size","Badge","badgeContent","i","readed","badge","Button","anchorEl","instance","axios","create","drawer","listItemText","lastActivity","whiteSpace","fab","position","bottom","right","topBar","container","flex","navBar","Dashboard","openNavBarMobile","setOpenNavBarMobile","paddingBottom","chartContainer","chart","statsContainer","statsItem","justifyContent","borderRight","inner","dates","calendarTodayIcon","Header","moment","subtract","startDate","setStartDate","endDate","setEndDate","selectEdge","setSelectEdge","calendarDate","setCalendarDate","handleCalendarOpen","edge","Boolean","Grid","lg","xs","ButtonGroup","format","DatePicker","maxDate","onAccept","date","isAfter","isBefore","onChange","defaultProps","circle1","stroke","fill","strokeWidth","circle2","animation","strokeDasharray","details","image","flexShrink","subscriptions","fontWeightMedium","price","conversion","conversionStats","arrowForwardIcon","textAlign","down","valueContainer","label","fontWeightBold","progressContainer","startDateButton","endDateButton","author","tags","flexWrap","backgroundImage","gradients","critical","indicator","borderWidth","borderStyle","viewButton","progress","margin","indigo","itemDivider","borderBottomColor","buttons","summaryButton","barChartIcon","titleWrapper","header","left","arrowIcon","addIcon","done","textDecoration","maxWidth","statistics","todos","md","Home","statsInner","align","mediaContainer","media","stats","TodaysMoney","Card","nameCell","primaryButton","errorButton","UsersDataTable","_resendConfirmationEmail","ResendConfirmationEmail","_deactivateUser","DeactivateUser","_renderActions","tableMeta","rowData","Tooltip","DataTable","columns","viewColumns","filterType","customBodyRender","sortBy","val","index","Label","sort","empty","updateValue","rowsPerPage","tableBodyMaxHeight","tableBodyCellMaxWidth","selectableRows","expandableRows","DialogTitle","withStyles","closeButton","top","disableTypography","DialogContent","MuiDialogContent","ModalDialog","cancelLabel","confirmLabel","hasConfirm","onConfirmClicked","isDisabled","confirmColor","modal","autoScrollBodyContent","dialogProps","Dialog","fullWidth","disableEscapeKeyDown","DialogActions","disabled","schema","presence","allowEmpty","roleId","fields","submitButton","AddEditUserForm","isEdit","setFormState","hasOperatorIdsChanged","usePrevious","validate","handleChange","event","checked","hasError","field","TextField","helperText","SelectField","hintText","menuItems","isMultiSelect","projectIds","AddEditUserDialog","alignContent","applyButton","onApply","getData","useCallback","userData","CreateUser","DeleteUserDialog","Users","_addUser","module","view","sm","online","active","client","registered","results","description","detailsButton","deleteButton","OperatorCard","deleteOperator","navigateDetails","CardHeader","CardContent","gridList","Projects","AddOperatorForm","AddOperatorDialog","Operators","_addOperator","OperatorsList","saveButton","Details","CardActions","UpdateOperator","textAlgin","removeButton","addButton","Picture","inputFile","updateOperator","accept","files","reader","FileReader","addEventListener","result","readAsDataURL","deliverables","members","Overview","xl","ActionsButton","moreRef","openMenu","setOpenMenu","anchorOrigin","vertical","horizontal","menu","transformOrigin","MenuItem","ListItemIcon","ListItemText","memo","ProjectsDataTable","_deleteProject","DeleteProject","AddProjectForm","AddProjectDialog","project","projectList","tabs","alert","OperatorDetails","tab","setTab","t","Tabs","scrollButtons","Tab","userList","GeneralForm","General","oldpassword","newpassword","confirmnewpassword","equality","Security","overview","product","productImage","notice","Settings","OptionsButton","exportPdf","fullScreen","DashboardInspect","match","pageTitle","headerHidden","handle","useFullScreenHandle","_getDashboard","_fullScreen","enter","hidden","ShowExportPDFDialog","TableauDashboard","reportId","serverId","accessToken","fontStyle","cellWidth","customHeader","fontFamily","customFilter","PagerDutyIncidentsTable","_getTableColumns","searchable","sortThirdClickReset","_tableMeta","_updateValue","customHeadLabelRender","_columnMeta","noWrap","filterOptions","renderValue","isNull","toString","logic","filters","filterList","column","FormLabel","FormGroup","row","keyboardInput","statusIndex","isClosed","_getTableColumnsWithActions","searchPlaceholder","DateTimePicker","minutesStep","setOpen","onOpen","renderInput","p","e","inputFormat","ampm","inputVariant","internalId","status","priority","urgency","createdOn","stakeholder","resolvedOn","secondsToFirstAck","secondsToResolve","escalationPolicyId","serviceId","alarmRef","severity","noBorder","border","PagerDutyIncidentDialogForm","allDisabled","_hasError","_handleChange","GetIncident","now","useMemo","newTouched","each","keys","fullMessages","Alert","InputLabelProps","shrink","escalationPolicy","service","multiline","rows","titleTypographyProps","Stack","toISOString","defaultValue","PagerDutyIncidentDialog","form","EditIncident","PagerDutyDeleteIncidentDialog","PagerDutyIncidents","React","anchorRef","_onExportClick","handleMenuItemClick","handleClose","contains","isUndefined","agreeButton","startIcon","prevOpen","Popper","sx","transition","disablePortal","TransitionProps","placement","Grow","ClickAwayListener","onClickAway","MenuList","autoFocusItem","option","reason","path","exact","AuthGuard","DashboardLayout","AuthLayout","lazy","ErrorLayout","displayed","Notifier","store","useSnackbar","closeSnackbar","forEach","myKey","onExited","removeSnackbar","Chart","helpers","extend","elements","Rectangle","prototype","draw","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","cornerRadius","base","x","y","barSize","min","abs","halfStroke","borderLeft","borderTop","beginPath","fillStyle","strokeStyle","lineWidth","corners","startCorner","indexOf","cornerAt","corner","moveTo","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","updateLocale","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","yy","validators","regex","RegExp","pattern","test","AxiosMockAdapter","delayResponse","mock","onGet","reply","canHire","country","firstName","isPublic","lastName","phone","timezone","payout","visitors","watching","uuid","currency","updated_at","deadline","add","created_at","subscription","proposalsLeft","templatesLeft","invitesLeft","adsLeft","hasAnalytics","hasEmailAlerts","settings","draft","events","desc","end","allDay","conversations","otherUser","messages","sender","authUser","contentType","unread","groups","connections","group","customers","spent","rating","summary","zipCode","address1","address2","iban","autoCC","verified","invoices","vat","balance","emails","paymentMethod","logs","IP","seen","favorited","labels","subject","receiver","start_date","end_date","bio","brief","mimeType","activities","subject_type","action_type","action_desc","subscribers","cover","common_connections","posts","liked","likes","comments","reviews","reviewer","pricePerHour","hours","common","invoice","due_date","issue_date","customer","company","nzbn","address","products","subtotal","taxes","total","lists","tasks","orders","payment","order","promoCode","city","items","cuantity","billing","referrals","initials","cyan","earnings","createBrowserHistory","basename","process","preloadedState","middlewares","thunkMiddleware","middlewareEnhancer","composeWithDevTools","applyMiddleware","enhancers","composedEnhancers","compose","createStore","configureStore","interceptor","App","StyledEngineProvider","injectFirst","ThemeProvider","maxSnack","autoHideDuration","LocalizationProvider","dateAdapter","DateAdapter","hostname","ReactDOM","render","getElementById","serviceWorker","ready","registration","unregister","chips","chip","formControlStyle","customRenderValue","setLabelWidth","InputLabelRef","offsetWidth","htmlFor","multiple","inputProps","selected","showDownload","showPrint","outerTheme","actionColumnWidth","adaptV4Theme","MUIDataTable","MUIDataTableHead","MUIDataTableHeadCell","MUIDataTableHeadRow","MUIDataTableBody","MUIDataTableBodyRow","MUIDataTablePagination","MUIDataTableViewCol","MUIDataTableSearch","MUIDataTableToolbar","MUIDataTableFilter","MUIDataTableFilterList","getMuiTheme","rowsPerPageOptions","print","responsive","onRowSelectionChange","currentRowsSelected","allRowsSelected","rowsSelected","onRowSelection","dt","fileInput","shape","success","lightBlue","warning","paddingLeft","icons","forwardRef","Collapse","in","displayName","trimCode","codeLines","trim","shift","pop","indexOfFirstChar","output","line","substr","CodeBlock","async","source","language","Component","Prism","outline","CookiesNotification","Cookies","get","Link","underline","set","dropZone","cursor","dragActive","GenericMoreButton","Menu","REACT_APP_GA_MEASUREMENT_ID","CustomRouterLink","itemLeaf","buttonLeaf","fontWeightRegular","expandIcon","NavigationListItem","depth","Icon","openProp","ListItem","disableGutters","o","activeClassName","NavigationList","List","reduce","page","matchPath","reduceChildRoutes","Navigation","listItem","avatarBlue","avatarGreen","avatarOrange","avatarRed","NotificationList","avatars","disablePadding","ListItemAvatar","primaryTypographyProps","addedDate","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","EmptyList","NotificationsPopover","Popover","GA_MEASUREMENT_ID","Page","gtag","page_path","page_name","Helmet","listStyle","userSelect","activeLink","break","breakLink","next","nextLink","pageLink","previous","previousLink","Paginate","pageCount","pageRangeDisplayed","onPageChange","activeLinkClassName","breakClassName","breakLabel","breakLinkClassName","containerClassName","disabledClassName","marginPagesDisplayed","nextClassName","nextLabel","nextLinkClassName","pageClassName","pageLinkClassName","previousClassName","previousLabel","previousLinkClassName","subContainerClassName","bubble","time","likeButton","likedButton","shareButton","shareIcon","subheader","accessTimeIcon","mediaArea","backgroundPosition","transitions","easing","sharp","duration","leavingScreen","transform","recommended","contact","startButton","PricingModal","subtitle","learnMoreButton","ProjectCard","setLiked","fromNow","colo","tag","starIcon","starFilledIcon","amber","starBorderIcon","ReviewStars","starCount","starNodes","starNode","activeButton","alpha","FormatQuoteIcon","FormatListBulletedIcon","FormatListNumberedIcon","CodeIcon","FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon","FormatBoldIcon","FormatItalicIcon","FormatUnderlined","newBlockRenderMap","Map","unstyled","element","paragraph","ScrollReset","DefaultDraftBlockRenderMap","merge","editorContainer","textAlignLeft","textAlignCenter","textAlignRight","textAlignJustify","scrollTo","buttonIcon","contentSection","contentSectionHeader","contentSectionContent","formGroup","fieldGroup","minAmount","maxAmount","radioGroup","searchButton","filterButton","filterIcon","more","StackAvatars","limit","avatarNodes","small","medium","large","StatusBullet","rootClassName","backdrop","Loading","Backdrop","CircularProgress","iconButton","selectedDate","handleDateChange","useSate","selectedStateDate","setSelectedDate","CalendarPicker","PowerBIDashboard","embedConfig","embedUrl","tokenType","models","TokenType","Aad","panes","expanded","BackgroundType","Default","cssClassName","getEmbeddedComponent","embeddedReport","report","emptyLabel","rounded","finalStyle","viz","showExportPDFDialog","dispose","containerDiv","hideToolbar","onFirstVizSizeKnown","innerHeight","setAttribute","tableau","Viz","_initViz","interceptors","request","use","configuration","Promise","reject","statusCode","errorObject","isString","MaterialCheckbox","onCheck","labelPlacement","labelStyle","muiName","Checkbox","useContext","__RouterContext","propTypes","PropTypes","node","array","isRequired","buildGradient"],"mappings":"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","file":"static/js/main.2ff71e31.chunk.js","sourcesContent":["import AxiosRequest from 'utils/AxiosRequest';\r\nimport config from '../configuration/configuration.js';\r\n\r\nexport const SESSION_LOGIN = 'SESSION_LOGIN';\r\nexport const SESSION_LOGOUT = 'SESSION_LOGOUT';\r\nexport const SET_NOTIFICATIONS = 'SET_NOTIFICATIONS';\r\nexport const USER_INFO = 'USER_INFO';\r\nexport const SET_LOADING = 'SET_LOADING';\r\nexport const REDIRECT_TO_ERROR = 'REDIRECT_TO_ERROR';\r\n\r\nconst onSetNotifications = (value) => ({\r\n\ttype: SET_NOTIFICATIONS,\r\n\tnotifications: value\r\n});\r\n\r\nconst onLogin = () => ({\r\n\ttype: SESSION_LOGIN,\r\n});\r\n\r\nconst onGetUserInfo = (value) => ({\r\n\ttype: USER_INFO,\r\n\tuser: value\r\n});\r\n\r\nconst onSetLoading = (value) => ({\r\n\ttype: SET_LOADING,\r\n\tisLoading: value\r\n});\r\n\r\nconst onRedirectToError = (value) => ({\r\n\ttype: REDIRECT_TO_ERROR,\r\n\tlink: value\r\n});\r\n\r\nexport const getUserInfo = (token) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: `${config.API_URL}account/GetUserInfo`,\r\n\t\t\t\theaders: { Authorization: `Bearer ${token}` }\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(onGetUserInfo(response.data));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const login = (email, password) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/login`,\r\n\t\t\tdata: { email, password }\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onRedirectToError());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t\tdispatch(onLogin());\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const logout = () => (dispatch) => {\r\n\tlocalStorage.removeItem(config.TOKEN_KEY);\r\n\tdispatch({\r\n\t\ttype: SESSION_LOGOUT,\r\n\t});\r\n};\r\n\r\nexport const RedirectToError = (link) => (dispatch) => {\r\n\tdispatch(onRedirectToError(link));\r\n};\r\n\r\nexport const recover = (email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/recover`,\r\n\t\t\tdata: {\r\n\t\t\t\temail\r\n\t\t\t}\r\n\t\t}).then(response => response);\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const CompleteRegistration = (password, rpassword, token, email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/completeRegistration`,\r\n\t\t\tdata: {\r\n\t\t\t\tpassword,\r\n\t\t\t\trpassword,\r\n\t\t\t\ttoken,\r\n\t\t\t\tuser: email\r\n\t\t\t}\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onLogin());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const ResetPassword = (password, rpassword, token, email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/recoverconfirmation`,\r\n\t\t\tdata: {\r\n\t\t\t\tpassword,\r\n\t\t\t\trpassword,\r\n\t\t\t\ttoken,\r\n\t\t\t\tuser: email\r\n\t\t\t}\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onLogin());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const FetchNotifications = () => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: `${config.API_URL}Notification/Notifications`,\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(onSetNotifications(response.data));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const NotificationMarkAsRead = (id) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'PUT',\r\n\t\t\t\turl: `${config.API_URL}Notification/MarkAsRead/${id}`,\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(FetchNotifications());\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const SetLoading = (isLoading) => dispatch => {\r\n\tdispatch(onSetLoading(isLoading));\r\n};\r\n\r\nexport const UploadFile = (file) => {\r\n\tconst formData = new FormData();\r\n\tformData.append('file', file);\r\n\treturn AxiosRequest({\r\n\t\tmethod: 'POST',\r\n\t\turl: `${config.API_URL}File/Upload`,\r\n\t\tdata: formData,\r\n\t\theaders: {\r\n\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst ShowFile = (response) => {\r\n\tconst blob = response.data;\r\n\tconst filename = decodeURIComponent(response.headers['content-disposition'].split('\\'')[2]);\r\n\t// It is necessary to create a new blob object with mime-type\r\n\t// explicitly set otherwise only Chrome works like it should\r\n\tconst newBlob = new Blob([blob], { type: 'application/force-download' });\r\n\r\n\t// IE doesn't allow using a blob object directly as link href\r\n\t// instead it is necessary to use msSaveOrOpenBlob\r\n\tif (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n\t\twindow.navigator.msSaveOrOpenBlob(newBlob);\r\n\t\treturn;\r\n\t}\r\n\r\n\t// For other browsers:\r\n\t// Create a link pointing to the ObjectURL containing the blob.\r\n\tconst data = window.URL.createObjectURL(newBlob);\r\n\tconst link = document.createElement('a');\r\n\tlink.href = data;\r\n\tlink.download = filename;\r\n\tdocument.body.appendChild(link);\r\n\tlink.click();\r\n\tsetTimeout(() => {\r\n\t\t// For Firefox it is necessary to delay revoking the ObjectURL\r\n\t\tdocument.body.removeChild(link);\r\n\t\twindow.URL.revokeObjectURL(data);\r\n\t}, 100);\r\n};\r\n\r\nexport const DownloadFile = (filePath) => async dispatch => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: `${config.API_URL}File/Download?file=${filePath}`,\r\n\t\t\t\tresponseType: 'blob'\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tShowFile(response);\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n","export default (name = '') => name\r\n\t.replace(/\\s+/, ' ')\r\n\t.split(' ')\r\n\t.slice(0, 2)\r\n\t.map((v) => v && v[0].toUpperCase())\r\n\t.join('');\r\n","import { colors } from '@mui/material';\r\n\r\nconst white = '#FFFFFF';\r\nconst black = '#000000';\r\n\r\nexport default {\r\n\tblack,\r\n\twhite,\r\n\tprimary: {\r\n\t\tcontrastText: white,\r\n\t\tdark: colors.blue[900],\r\n\t\tmain: colors.blue[800],\r\n\t\tlight: colors.blue[100],\r\n\t},\r\n\tsecondary: {\r\n\t\tcontrastText: white,\r\n\t\tdark: colors.blue[900],\r\n\t\tmain: colors.blue.A400,\r\n\t\tlight: colors.blue.A400,\r\n\t},\r\n\terror: {\r\n\t\tcontrastText: white,\r\n\t\tdark: colors.red[900],\r\n\t\tmain: colors.red[600],\r\n\t\tlight: colors.red[400],\r\n\t},\r\n\ttext: {\r\n\t\tprimary: colors.blueGrey[900],\r\n\t\tsecondary: colors.blueGrey[600],\r\n\t\tlink: colors.blue[600],\r\n\t},\r\n\tlink: colors.blue[800],\r\n\ticon: colors.blueGrey[600],\r\n\tbackground: {\r\n\t\tdefault: '#F4F6F8',\r\n\t\tpaper: white,\r\n\t},\r\n\tdivider: colors.grey[200],\r\n};\r\n","import palette from './palette';\r\n\r\nexport default {\r\n\th1: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '35px',\r\n\t\tletterSpacing: '-0.24px',\r\n\t\tlineHeight: '40px',\r\n\t},\r\n\th2: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '29px',\r\n\t\tletterSpacing: '-0.24px',\r\n\t\tlineHeight: '32px',\r\n\t},\r\n\th3: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '24px',\r\n\t\tletterSpacing: '-0.06px',\r\n\t\tlineHeight: '28px',\r\n\t},\r\n\th4: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '20px',\r\n\t\tletterSpacing: '-0.06px',\r\n\t\tlineHeight: '24px',\r\n\t},\r\n\th5: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '16px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '20px',\r\n\t},\r\n\th6: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '14px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '20px',\r\n\t},\r\n\tsubtitle1: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontSize: '16px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '25px',\r\n\t},\r\n\tsubtitle2: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontWeight: 400,\r\n\t\tfontSize: '14px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '21px',\r\n\t},\r\n\tbody1: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontSize: '14px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '21px',\r\n\t},\r\n\tbody2: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontSize: '12px',\r\n\t\tletterSpacing: '-0.04px',\r\n\t\tlineHeight: '18px',\r\n\t},\r\n\tbutton: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontSize: '14px',\r\n\t},\r\n\tcaption: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontSize: '11px',\r\n\t\tletterSpacing: '0.33px',\r\n\t\tlineHeight: '13px',\r\n\t},\r\n\toverline: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontSize: '11px',\r\n\t\tfontWeight: 500,\r\n\t\tletterSpacing: '0.33px',\r\n\t\tlineHeight: '13px',\r\n\t\ttextTransform: 'uppercase',\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t\tcolor: colors.blueGrey[900],\r\n\t\t},\r\n\t\tdeletable: {\r\n\t\t\t'&:focus': {\r\n\t\t\t\tbackgroundColor: colors.blueGrey[100],\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\troot: {\r\n\t\tcolor: palette.icon,\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.03)',\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {},\r\n\t\tinput: {\r\n\t\t\t'&::placeholder': {\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tcolor: palette.text.secondary,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tborderRadius: 3,\r\n\t\t\toverflow: 'hidden',\r\n\t\t},\r\n\t\tcolorPrimary: {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tcolor: palette.icon,\r\n\t\t\tminWidth: 32,\r\n\t\t},\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tbackgroundColor: colors.grey[50],\r\n\t\t},\r\n\t},\r\n};\r\n","import MuiButton from './MuiButton';\r\nimport MuiCardActions from './MuiCardActions';\r\nimport MuiCardContent from './MuiCardContent';\r\nimport MuiCardHeader from './MuiCardHeader';\r\nimport MuiChip from './MuiChip';\r\nimport MuiIconButton from './MuiIconButton';\r\nimport MuiInputBase from './MuiInputBase';\r\nimport MuiLinearProgress from './MuiLinearProgress';\r\nimport MuiListItemIcon from './MuiListItemIcon';\r\nimport MuiOutlinedInput from './MuiOutlinedInput';\r\nimport MuiPaper from './MuiPaper';\r\nimport MuiTableHead from './MuiTableHead';\r\nimport MuiTableCell from './MuiTableCell';\r\nimport MuiTableRow from './MuiTableRow';\r\nimport MuiToggleButton from './MuiToggleButton';\r\nimport MuiTypography from './MuiTypography';\r\n\r\nexport default {\r\n\tMuiButton,\r\n\tMuiCardActions,\r\n\tMuiCardContent,\r\n\tMuiCardHeader,\r\n\tMuiChip,\r\n\tMuiIconButton,\r\n\tMuiInputBase,\r\n\tMuiLinearProgress,\r\n\tMuiListItemIcon,\r\n\tMuiOutlinedInput,\r\n\tMuiPaper,\r\n\tMuiTableHead,\r\n\tMuiTableCell,\r\n\tMuiTableRow,\r\n\tMuiToggleButton,\r\n\tMuiTypography,\r\n};\r\n","export default {\r\n\tcontained: {\r\n\t\tboxShadow:\r\n\t\t\t'0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)',\r\n\t\tbackgroundColor: '#FFFFFF',\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tpadding: '16px 24px',\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tpadding: '24px'\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tpadding: '16px 24px',\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {},\r\n\t\tnotchedOutline: {\r\n\t\t\tborderColor: 'rgba(0,0,0,0.15)',\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {},\r\n\t\televation1: {\r\n\t\t\tboxShadow:\r\n\t\t\t\t'0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)',\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\nimport typography from '../typography';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\t...typography.body1,\r\n\t\t\tborderBottom: `1px solid ${palette.divider}`,\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\t'&$selected': {\r\n\t\t\t\tbackgroundColor: palette.background.default,\r\n\t\t\t},\r\n\t\t\t'&$hover': {\r\n\t\t\t\t'&:hover': {\r\n\t\t\t\t\tbackgroundColor: palette.background.default,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nimport palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tcolor: palette.icon,\r\n\t\t\t'&:hover': {\r\n\t\t\t\tbackgroundColor: colors.grey[100],\r\n\t\t\t},\r\n\t\t\t'&$selected': {\r\n\t\t\t\tbackgroundColor: colors.grey[50],\r\n\t\t\t\tcolor: palette.primary.main,\r\n\t\t\t\t'&:hover': {\r\n\t\t\t\t\tbackgroundColor: colors.grey[100],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t'&:first-child': {\r\n\t\t\t\tborderTopLeftRadius: 4,\r\n\t\t\t\tborderBottomLeftRadius: 4,\r\n\t\t\t},\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tborderTopRightRadius: 4,\r\n\t\t\t\tborderBottomRightRadius: 4,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\tgutterBottom: {\r\n\t\t\tmarginBottom: '8px',\r\n\t\t},\r\n\t},\r\n};\r\n","import { createTheme } from '@mui/material';\r\n\r\nimport palette from './palette';\r\nimport typography from './typography';\r\nimport overrides from './overrides';\r\n\r\nconst theme = createTheme({\r\n\tpalette,\r\n\ttypography,\r\n\tcomponents: overrides,\r\n});\r\n\r\nexport default theme;\r\n","import jwt from 'jwt-decode';\r\nimport * as actionTypes from 'actions';\r\nimport config from 'configuration/configuration.js';\r\n\r\nconst token = localStorage.getItem(config.TOKEN_KEY);\r\nlet initialState = {\r\n\tloggedIn: false,\r\n\tuser: {\r\n\t},\r\n\tnotifications: [],\r\n\tisLoading: false,\r\n\tloadingCount: 0,\r\n};\r\n\r\nif (token) {\r\n\tconst decoded = jwt(token);\r\n\tconst currentDate = new Date().getTime() / 1000;\r\n\tif (decoded.exp > currentDate) {\r\n\t\tinitialState = { ...initialState, loggedIn: true, user: { ...decoded } };\r\n\t}\r\n}\r\n\r\nconst sessionReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase actionTypes.REDIRECT_TO_ERROR: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlink: action.link\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SESSION_LOGIN: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tloggedIn: true\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.USER_INFO: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tuser: { ...state.user, ...action.user }\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SESSION_LOGOUT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tloggedIn: false,\r\n\t\t\t\t\t\t\tuser: {\r\n\t\t\t\t\t\t\t\trole: 'Client',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SET_NOTIFICATIONS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: action.notifications || [],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SET_LOADING: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\t\t\t\tloadingCount: action.isLoading ? state.loadingCount++ : state.loadingCount--,\r\n\t\t\t\t\t\t\tisLoading: state.loadingCount > 0,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default sessionReducer;\r\n","import { ENQUEUE_SNACKBAR, CLOSE_SNACKBAR, REMOVE_SNACKBAR } from 'actions';\r\n\r\nconst defaultState = {\r\n\tnotifications: [],\r\n};\r\n\r\nexport default (state = defaultState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase ENQUEUE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: [\r\n\t\t\t\t\t\t\t\t...state.notifications,\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkey: action.key,\r\n\t\t\t\t\t\t\t\t\t...action.notification,\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tcase CLOSE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: state.notifications.map(notification => (\r\n\t\t\t\t\t\t\t\t(action.dismissAll || notification.key === action.key)\r\n\t\t\t\t\t\t\t\t\t? { ...notification, dismissed: true }\r\n\t\t\t\t\t\t\t\t\t: { ...notification }\r\n\t\t\t\t\t\t\t)),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tcase REMOVE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: state.notifications.filter(\r\n\t\t\t\t\t\t\t\tnotification => notification.key !== action.key,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn state;\r\n\t}\r\n};\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetUsersRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetUsers`,\r\n\tparams: { role }\r\n});\r\n\r\nexport const GetUsersStatsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetUsersStats`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetRolesRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetRoles`,\r\n\tparams: { role }\r\n});\r\n\r\nexport const GetOperatorsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetOperators`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetOperatorProjectsRequest = (operatorIds) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetOperatorProjects`,\r\n\tparams: { operatorIds }\r\n});\r\n\r\nexport const CreateUserRequest = (user) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/CreateUser`,\r\n\tdata: user\r\n});\r\n\r\nexport const EditUserRequest = (user) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/EditUser`,\r\n\tdata: user\r\n});\r\n\r\nexport const GetUserRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetUserById`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const ResendConfirmationEmailRequest = (userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/ResendConfirmationEmail`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const DeactivateUserRequest = (userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/DeactivateUser`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const DeleteUserRequest = (userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/DeleteUser`,\r\n\tparams: { userId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetUsersRequest,\r\n\tGetUsersStatsRequest,\r\n\tGetRolesRequest,\r\n\tGetOperatorsRequest,\r\n\tGetOperatorProjectsRequest,\r\n\tCreateUserRequest,\r\n\tGetUserRequest,\r\n\tEditUserRequest,\r\n\tResendConfirmationEmailRequest,\r\n\tDeactivateUserRequest,\r\n\tDeleteUserRequest\r\n} from '../requests/UsersRequests.js';\r\n\r\nexport const GET_USERS = 'GET_USERS';\r\nexport const GET_USERS_STATS = 'GET_USERS_STATS';\r\nexport const TOGGLE_ADD_EDIT_USER_DIALOG = 'TOGGLE_ADD_EDIT_USER_DIALOG';\r\nexport const TOGGLE_DELETE_USER_DIALOG = 'TOGGLE_DELETE_USER_DIALOG';\r\nexport const GET_ROLES = 'GET_ROLES';\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const GET_OPERATOR_PROJECTS = 'GET_OPERATOR_PROJECTS';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_USER = 'GET_USER';\r\n\r\nconst onGetUsers = (value) => ({\r\n\ttype: GET_USERS,\r\n\tusers: value\r\n});\r\n\r\nconst onGetUsersStats = (value) => ({\r\n\ttype: GET_USERS_STATS,\r\n\tusersStats: value\r\n});\r\n\r\nconst onToggleAddEditUserDialog = (openAddEditUserDialog, openAddEditUserDialogId) => ({\r\n\ttype: TOGGLE_ADD_EDIT_USER_DIALOG,\r\n\topenAddEditUserDialog,\r\n\topenAddEditUserDialogId\r\n});\r\n\r\nconst onToggleDeleteUserDialog = (openDeleteUserDialog, openDeleteUserDialogId) => ({\r\n\ttype: TOGGLE_DELETE_USER_DIALOG,\r\n\topenDeleteUserDialog,\r\n\topenDeleteUserDialogId\r\n});\r\n\r\nconst onGetRoles = (value) => ({\r\n\ttype: GET_ROLES,\r\n\troles: value\r\n});\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onGetOperatorProjects = (value) => ({\r\n\ttype: GET_OPERATOR_PROJECTS,\r\n\toperatorProjects: value\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetUser = (value) => ({\r\n\ttype: GET_USER,\r\n\tuser: value\r\n});\r\n\r\nexport const GetUsers = (role) => async (dispatch) => {\r\n\tawait GetUsersRequest(role).then(response => {\r\n\t\tdispatch(onGetUsers(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetUsersStats = () => async (dispatch) => {\r\n\tawait GetUsersStatsRequest().then(response => {\r\n\t\tdispatch(onGetUsersStats(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddEditUserDialog = (openAddEditUserDialog, openAddEditUserDialogId) => (dispatch) => {\r\n\tdispatch(onToggleAddEditUserDialog(openAddEditUserDialog, openAddEditUserDialogId));\r\n};\r\n\r\nexport const ToggleDeleteUserDialog = (openDeleteUserDialog, openDeleteUserDialogId) => (dispatch) => {\r\n\tdispatch(onToggleDeleteUserDialog(openDeleteUserDialog, openDeleteUserDialogId));\r\n};\r\n\r\nexport const GetRoles = (role) => async (dispatch) => {\r\n\tawait GetRolesRequest(role).then(response => {\r\n\t\tdispatch(onGetRoles(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetOperators = () => async (dispatch) => {\r\n\tawait GetOperatorsRequest().then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetOperatorProjects = (operatorIds) => async (dispatch) => {\r\n\tawait GetOperatorProjectsRequest(operatorIds).then(response => {\r\n\t\tdispatch(onGetOperatorProjects(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const CreateUser = (userData, role) => async (dispatch) => {\r\n\tawait CreateUserRequest(userData).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New user created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t\tdispatch(ToggleAddEditUserDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const EditUser = (userData, role) => async (dispatch) => {\r\n\tawait EditUserRequest(userData).then(response => {\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t\tdispatch(ToggleAddEditUserDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetUser = (userId) => async (dispatch) => {\r\n\tawait GetUserRequest(userId).then(response => {\r\n\t\tdispatch(onGetUser(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ResendConfirmationEmail = (userId) => async (dispatch) => {\r\n\tawait ResendConfirmationEmailRequest(userId).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Confirmation email sent!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeactivateUser = (userId, role) => async (dispatch) => {\r\n\tawait DeactivateUserRequest(userId).then(response => {\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteUser = (userId, role) => async (dispatch) => {\r\n\tawait DeleteUserRequest(userId).then(response => {\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t\tdispatch(ToggleDeleteUserDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tGET_USERS,\r\n\tGET_USERS_STATS,\r\n\tTOGGLE_ADD_EDIT_USER_DIALOG,\r\n\tTOGGLE_DELETE_USER_DIALOG,\r\n\tGET_ROLES,\r\n\tGET_OPERATORS,\r\n\tGET_OPERATOR_PROJECTS,\r\n\tSET_FORM_STATE,\r\n\tGET_USER\r\n} from '../actions/UsersActions.js';\r\n\r\nconst initialState = {\r\n\tusers: [],\r\n\tusersStats: {},\r\n\topenAddEditUserDialog: false,\r\n\topenAddEditUserDialogId: null,\r\n\topenDeleteUserDialog: false,\r\n\topenDeleteUserDialogId: null,\r\n\troles: [],\r\n\toperators: [],\r\n\toperatorProjects: [],\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t}\r\n};\r\n\r\nconst usersReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_USERS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tusers: action.users\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_USERS_STATS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tusersStats: action.usersStats\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_EDIT_USER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddEditUserDialog: action.openAddEditUserDialog,\r\n\t\t\t\t\t\t\topenAddEditUserDialogId: action.openAddEditUserDialogId,\r\n\t\t\t\t\t\t\tformState: initialState.formState,\r\n\t\t\t\t\t\t\troles: [],\r\n\t\t\t\t\t\t\toperators: [],\r\n\t\t\t\t\t\t\toperatorProjects: [],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_DELETE_USER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenDeleteUserDialog: action.openDeleteUserDialog,\r\n\t\t\t\t\t\t\topenDeleteUserDialogId: action.openDeleteUserDialogId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_ROLES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\troles: action.roles\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPERATOR_PROJECTS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperatorProjects: action.operatorProjects\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_USER: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.user }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default usersReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOperatorsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Operators/GetOperators`,\r\n\tparams: {}\r\n});\r\n\r\nexport const CreateOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/CreateOperator`,\r\n\tdata: operator\r\n});\r\n\r\nexport const DeleteOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'DELETE',\r\n\turl: `${config.API_URL}Operators/DeleteOperator`,\r\n\tdata: operator\r\n});\r\n\r\nexport const GetOperatorRequest = (operatorId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Operators/GetOperator`,\r\n\tparams: { operatorId }\r\n});\r\n\r\nexport const UpdateImageRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/UpdateImage`,\r\n\tdata: operator\r\n});\r\n\r\nexport const DeleteProjectRequest = (projectId) => AxiosRequest({\r\n\tmethod: 'DELETE',\r\n\turl: `${config.API_URL}Operators/DeleteProject`,\r\n\tparams: { projectId }\r\n});\r\n\r\nexport const CreateProjectRequest = (project) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/CreateProject`,\r\n\tdata: project\r\n});\r\n\r\nexport const UpdateOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/UpdateOperator`,\r\n\tdata: operator\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetOperatorsRequest,\r\n\tCreateOperatorRequest,\r\n\tDeleteOperatorRequest,\r\n\tGetOperatorRequest,\r\n\tUpdateImageRequest,\r\n\tDeleteProjectRequest,\r\n\tCreateProjectRequest,\r\n\tUpdateOperatorRequest\r\n} from '../requests/OperatorsRequests.js';\r\n\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const TOGGLE_ADD_OPERATOR_DIALOG = 'TOGGLE_ADD_OPERATOR_DIALOG';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const NAVIGATE_DETAILS = 'NAVIGATE_DETAILS';\r\nexport const GET_OPERATOR = 'GET_OPERATOR';\r\nexport const TOGGLE_ADD_PROJECT_DIALOG = 'TOGGLE_ADD_PROJECT_DIALOG';\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onToggleAddOperatorDialog = (openAddOperatorDialog) => ({\r\n\ttype: TOGGLE_ADD_OPERATOR_DIALOG,\r\n\topenAddOperatorDialog,\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onNavigateDetails = (value) => ({\r\n\ttype: NAVIGATE_DETAILS,\r\n\tdetailsOperatorId: value\r\n});\r\n\r\nconst onGetOperator = (value) => ({\r\n\ttype: GET_OPERATOR,\r\n\toperator: value\r\n});\r\n\r\nconst onToggleAddProjectDialog = (openAddProjectDialog) => ({\r\n\ttype: TOGGLE_ADD_PROJECT_DIALOG,\r\n\topenAddProjectDialog,\r\n});\r\n\r\nexport const GetOperators = () => async (dispatch) => {\r\n\tawait GetOperatorsRequest().then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddOperatorDialog = (openAddEditOperatorDialog) => (dispatch) => {\r\n\tdispatch(onToggleAddOperatorDialog(openAddEditOperatorDialog));\r\n};\r\n\r\nexport const CreateOperator = (data) => async (dispatch) => {\r\n\tawait CreateOperatorRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New operator created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetOperators());\r\n\t\tdispatch(ToggleAddOperatorDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteOperator = (data) => async (dispatch) => {\r\n\tawait DeleteOperatorRequest(data).then(response => {\r\n\t\tdispatch(GetOperators());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const NavigateDetails = (value) => (dispatch) => {\r\n\tdispatch(onNavigateDetails(value));\r\n};\r\n\r\nexport const GetOperator = (operatorId) => async (dispatch) => {\r\n\tawait GetOperatorRequest(operatorId).then(response => {\r\n\t\tdispatch(onGetOperator(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UpdateImage = (operator) => async (dispatch) => {\r\n\tawait UpdateImageRequest(operator).then(response => {\r\n\t\tdispatch(GetOperator(operator.id));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteProject = (projectId, operatorId) => async (dispatch) => {\r\n\tawait DeleteProjectRequest(projectId).then(response => {\r\n\t\tdispatch(GetOperator(operatorId));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddProjectDialog = (openAddEditProjectDialog) => (dispatch) => {\r\n\tdispatch(onToggleAddProjectDialog(openAddEditProjectDialog));\r\n};\r\n\r\nexport const CreateProject = (data) => async (dispatch) => {\r\n\tawait CreateProjectRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New project created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetOperator(data.operatorId));\r\n\t\tdispatch(ToggleAddProjectDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UpdateOperator = (operator) => async (dispatch) => {\r\n\tawait UpdateOperatorRequest(operator).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Operator updated!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tTOGGLE_ADD_OPERATOR_DIALOG,\r\n\tGET_OPERATORS,\r\n\tSET_FORM_STATE,\r\n\tNAVIGATE_DETAILS,\r\n\tGET_OPERATOR,\r\n\tTOGGLE_ADD_PROJECT_DIALOG\r\n} from '../actions/OperatorsActions.js';\r\n\r\nconst initialState = {\r\n\toperators: [],\r\n\topenAddOperatorDialog: false,\r\n\tdetailsOperatorId: null,\r\n\toperator: {},\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t},\r\n\topenAddProjectDialog: false,\r\n};\r\n\r\nconst operatorsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_OPERATOR_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddOperatorDialog: action.openAddOperatorDialog,\r\n\t\t\t\t\t\t\tformState: initialState.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase NAVIGATE_DETAILS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdetailsOperatorId: action.detailsOperatorId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPERATOR: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperator: action.operator,\r\n\t\t\t\t\t\t\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.operator }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_PROJECT_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddProjectDialog: action.openAddProjectDialog,\r\n\t\t\t\t\t\t\tformState: initialState.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default operatorsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOperatorsRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Account/GetUserOperators`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const UpdateSettingsRequest = (data) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Account/UpdateSettings`,\r\n\tdata\r\n});\r\n\r\nexport const ChangePasswordRequest = (data) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Account/ChangePassword`,\r\n\tdata\r\n});\r\n","import { enqueueSnackbar, getUserInfo } from 'actions';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport {\r\n\tGetOperatorsRequest,\r\n\tUpdateSettingsRequest,\r\n\tChangePasswordRequest\r\n} from '../requests/SettingsRequests.js';\r\n\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const GetOperators = (userId) => async (dispatch) => {\r\n\tawait GetOperatorsRequest(userId).then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const UpdateSettings = (data) => async (dispatch) => {\r\n\tawait UpdateSettingsRequest(data).then(response => {\r\n\t\tdispatch(getUserInfo(localStorage.getItem(config.TOKEN_KEY)));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ChangePassword = (data) => async (dispatch) => {\r\n\tawait ChangePasswordRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Password changed!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tGET_OPERATORS,\r\n\tSET_FORM_STATE\r\n} from '../actions/SettingsActions.js';\r\n\r\nconst initialState = {\r\n\toperators: [],\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t}\r\n};\r\n\r\nconst settingsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default settingsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const DashboardInspectRequest = (dashboardId, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Dashboard/Inspect`,\r\n\tparams: { dashboardId, userId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tDashboardInspectRequest,\r\n} from '../requests/DashboardInspectRequests.js';\r\n\r\nexport const DASHBOARD_INSPECT = 'DASHBOARD_INSPECT';\r\n\r\nconst onDashboardInspect = (value) => ({\r\n\ttype: DASHBOARD_INSPECT,\r\n\tdashboard: value\r\n});\r\n\r\nexport const DashboardInspect = (dashboardId, userId) => async dispatch => {\r\n\tawait DashboardInspectRequest(dashboardId, userId).then(response => {\r\n\t\tdispatch(onDashboardInspect(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tDASHBOARD_INSPECT\r\n} from '../actions/DashboardInspectActions.js';\r\n\r\nconst initialState = {\r\n\tdashboard: {\r\n\t}\r\n};\r\n\r\nconst reportsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase DASHBOARD_INSPECT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdashboard: action.dashboard\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default reportsReducer;\r\n","export const UPDATE_COORDINATES = 'UPDATE_COORDINATES';\r\nexport const ADD_MAP = 'ADD_MAP';\r\nexport const UPDATE_TOPOLOGY = 'UPDATE_TOPOLOGY';\r\nexport const UPDATE_LEGEND = 'UPDATE_LEGEND';\r\nexport const UPDATE_POPUP = 'UPDATE_POPUP';\r\nexport const UPDATE_OVERLAYS = 'UPDATE_OVERLAYS';\r\n\r\nexport const onAddMap = (value) => ({\r\n\ttype: ADD_MAP,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateCoordinates = (value) => ({\r\n\ttype: UPDATE_COORDINATES,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateTopology = (value) => ({\r\n\ttype: UPDATE_TOPOLOGY,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateLegend = (value) => ({\r\n\ttype: UPDATE_LEGEND,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdatePopup = (value) => ({\r\n\ttype: UPDATE_POPUP,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateOverlays = (value) => ({\r\n\ttype: UPDATE_OVERLAYS,\r\n\tvalue\r\n});\r\n","import * as actionTypes from '../actions/MapActions.js';\r\n\r\n// 36.746675\r\n// -6.375104\r\nconst initialState = {\r\n\tlat: 38.741647270880264,\r\n\tlon: -9.204503840513995,\r\n\tzoom: 6,\r\n\tmaps: [],\r\n\tmapUpdated: undefined,\r\n\tzoomToUpdate: 9\r\n};\r\n\r\nconst AddNewMap = (state, action) => {\r\n\tconst mapAlreadyExists = state.maps.find((el) => el.id === action.value.id) !== undefined;\r\n\t// make a copy of the existing array\r\n\tlet newAddMaps = state.maps.slice();\r\n\r\n\tif (mapAlreadyExists) {\r\n\t\tnewAddMaps = newAddMaps.filter(map => map.id !== action.value.id);\r\n\t\tnewAddMaps.push({\r\n\t\t\t...action.value,\r\n\t\t\tcoordinates: {\r\n\t\t\t\tCenterLatitude: state.lat,\r\n\t\t\t\tCenterLongitude: state.lon,\r\n\t\t\t\tzoom: state.zoom\r\n\t\t\t},\r\n\t\t\ttopology: { twoG: [], threeG: [], fourG: [] },\r\n\t\t\tlegend: { legendElements: [], title: '' },\r\n\t\t\tupdateEnd: false\r\n\t\t});\r\n\t} else {\r\n\t\t// modify the COPY, not the original\r\n\t\tnewAddMaps.push({\r\n\t\t\t...action.value,\r\n\t\t\tcoordinates: {\r\n\t\t\t\tCenterLatitude: state.lat,\r\n\t\t\t\tCenterLongitude: state.lon,\r\n\t\t\t\tzoom: state.zoom\r\n\t\t\t},\r\n\t\t\ttopology: { twoG: [], threeG: [], fourG: [] },\r\n\t\t\tlegend: { legendElements: [], title: '' },\r\n\t\t\tupdateEnd: false\r\n\t\t});\r\n\t}\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newAddMaps\r\n\t};\r\n};\r\n\r\nconst UpdateCoordinates = (state, action) => {\r\n\tconst newUpdateMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tcoordinates: action.value.newCoordinates,\r\n\t\t\tupdateEnd: false\r\n\t\t};\r\n\t});\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newUpdateMaps,\r\n\t\tmapUpdated: action.value.id,\r\n\t};\r\n};\r\n\r\nconst UpdateTopology = (state, action) => {\r\n\tconst newTopologyMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\ttopology: action.value.newTopology,\r\n\t\t\tupdateEnd: true\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newTopologyMaps,\r\n\t\tmapUpdated: action.value.id,\r\n\t};\r\n};\r\n\r\nconst UpdateLegend = (state, action) => {\r\n\t// console.log('update legend', action.value.id)\r\n\tconst newLegendMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tlegend: action.value.newLegend,\r\n\t\t\tupdateEnd: true\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newLegendMaps,\r\n\t\tmapUpdated: action.value.id,\r\n\t};\r\n};\r\n\r\nconst UpdatePopup = (state, action) => {\r\n\tconst newMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tcontrol: {\r\n\t\t\t\t...item.control,\r\n\t\t\t\tstate: {\r\n\t\t\t\t\t...item.control.state,\r\n\t\t\t\t\tactivePopup: [...action.value.activePopup]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newMaps,\r\n\t\tmapUpdated: null,\r\n\t};\r\n};\r\n\r\nconst UpdateOverlays = (state, action) => {\r\n\tconst newMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tcontrol: {\r\n\t\t\t\t...item.control,\r\n\t\t\t\tstate: {\r\n\t\t\t\t\t...item.control.state,\r\n\t\t\t\t\tactiveLayers: [...action.value.activeLayers]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newMaps,\r\n\t\tmapUpdated: null,\r\n\t};\r\n};\r\n\r\nconst MapReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase actionTypes.ADD_MAP:\r\n\t\t\t\t\t\treturn AddNewMap(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_COORDINATES:\r\n\t\t\t\t\t\treturn UpdateCoordinates(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_TOPOLOGY:\r\n\t\t\t\t\t\treturn UpdateTopology(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_LEGEND:\r\n\t\t\t\t\t\treturn UpdateLegend(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_POPUP:\r\n\t\t\t\t\t\treturn UpdatePopup(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_OVERLAYS:\r\n\t\t\t\t\t\treturn UpdateOverlays(state, action);\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn state;\r\n\t}\r\n};\r\n\r\nexport default MapReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const PagerDutyIncidentsUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/GetPagerDutyIncidentsLastUpdate`\r\n});\r\n\r\nexport const PagerDutyIncidentsAckUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/GetPagerDutyIncidentsAckLastUpdate`\r\n});\r\n\r\nexport const PagerDutyIncidentsTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/GetPagerDutyIncidentsTable`\r\n});\r\n\r\nexport const DownloadPagerDutyIncidentsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/DownloadPagerDutyIncidents`\r\n});\r\n\r\nexport const DownloadCurrentWeekIncidentsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/DownloadCurrentWeekIncidents`\r\n});\r\n\r\nexport const GetDropdownsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/GetDropdowns`\r\n});\r\n\r\nexport const GetAllDropdownsRequest = (incidentId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/GetAllDropdowns`,\r\n\tparams: { incidentId }\r\n});\r\n\r\nexport const CreateIncidentRequest = (incidentForm) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}PagerDutyIncidents/CreateIncident`,\r\n\tdata: incidentForm\r\n});\r\n\r\nexport const EditIncidentRequest = (incidentForm) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}PagerDutyIncidents/EditIncident`,\r\n\tdata: incidentForm\r\n});\r\n\r\nexport const DeleteIncidentRequest = (id) => AxiosRequest({\r\n\tmethod: 'DELETE',\r\n\turl: `${config.API_URL}PagerDutyIncidents/DeleteIncident`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const GetIncidentRequest = (incidentId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}PagerDutyIncidents/GetIncident`,\r\n\tparams: { incidentId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tPagerDutyIncidentsUpdateRequest,\r\n\tPagerDutyIncidentsAckUpdateRequest,\r\n\tPagerDutyIncidentsTableRequest,\r\n\tDownloadPagerDutyIncidentsRequest,\r\n\tDownloadCurrentWeekIncidentsRequest,\r\n\tGetDropdownsRequest,\r\n\tCreateIncidentRequest,\r\n\tEditIncidentRequest,\r\n\tDeleteIncidentRequest,\r\n\tGetIncidentRequest\r\n} from '../requests/PagerDutyIncidentsRequests.js';\r\n\r\nexport const GET_PAGERDUTY_INCIDENTS_UPDATE = 'GET_PAGERDUTY_INCIDENTS_UPDATE';\r\nexport const GET_PAGERDUTY_INCIDENTS_ACK_UPDATE = 'GET_PAGERDUTY_INCIDENTS_ACK_UPDATE';\r\nexport const GET_PAGERDUTY_INCIDENTS_TABLE = 'GET_PAGERDUTY_INCIDENTS_TABLE';\r\nexport const TOGGLE_INCIDENT_TRACKER_DIALOG = 'TOGGLE_INCIDENT_TRACKER_DIALOG';\r\nexport const TOGGLE_DELETE_INCIDENT_DIALOG = 'TOGGLE_DELETE_INCIDENT_DIALOG';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_INCIDENT = 'GET_INCIDENT';\r\nexport const GET_DROPDOWNS = 'GET_DROPDOWNS';\r\nexport const GET_ALL_DROPDOWNS = 'GET_ALL_DROPDOWNS';\r\n\r\nconst onGetPagerDutyIncidentsUpdate = (value) => ({\r\n\ttype: GET_PAGERDUTY_INCIDENTS_UPDATE,\r\n\tincidentsLastUpdate: value\r\n});\r\n\r\nexport const GetPagerDutyIncidentsUpdate = () => async (dispatch) => {\r\n\tawait PagerDutyIncidentsUpdateRequest().then(response => {\r\n\t\tdispatch(onGetPagerDutyIncidentsUpdate(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst onGetPagerDutyIncidentsAckUpdate = (value) => ({\r\n\ttype: GET_PAGERDUTY_INCIDENTS_ACK_UPDATE,\r\n\tincidentsAckLastUpdate: value\r\n});\r\n\r\nconst onToggleIncidentTrackerDialog = (visible, incidentId, incidentClosed) => ({\r\n\ttype: TOGGLE_INCIDENT_TRACKER_DIALOG,\r\n\tvisible,\r\n\tincidentId,\r\n\tincidentClosed\r\n});\r\n\r\nconst onToggleDeleteIncidentDialog = (visible, incidentId) => ({\r\n\ttype: TOGGLE_DELETE_INCIDENT_DIALOG,\r\n\tvisible,\r\n\tincidentId\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetPagerDutyIncidentsTable = (value) => ({\r\n\ttype: GET_PAGERDUTY_INCIDENTS_TABLE,\r\n\tincidentsTableData: value\r\n});\r\n\r\nconst onGetIncident = (value) => ({\r\n\ttype: GET_INCIDENT,\r\n\tincident: value\r\n});\r\n\r\nconst onGetDropdowns = (value) => ({\r\n\ttype: GET_DROPDOWNS,\r\n\tdropdowns: value\r\n});\r\n\r\nexport const GetDropdowns = () => async (dispatch) => {\r\n\tawait GetDropdownsRequest().then(response => {\r\n\t\tdispatch(onGetDropdowns(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetIncident = (incidentId) => async (dispatch) => {\r\n\tawait GetIncidentRequest(incidentId).then(response => {\r\n\t\tdispatch(onGetIncident(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetPagerDutyIncidentsTable = () => async (dispatch) => {\r\n\tawait PagerDutyIncidentsTableRequest().then(response => {\r\n\t\tdispatch(onGetPagerDutyIncidentsTable(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const CreateIncident = (incidentForm) => async (dispatch) => {\r\n\tconst form = {\r\n\t\t...incidentForm,\r\n\t\tcreatedOn: new Date(incidentForm.createdOn).toISOString(),\r\n\t};\r\n\tawait CreateIncidentRequest(form).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Incident successfully created.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetPagerDutyIncidentsTable());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const EditIncident = (incidentForm) => async (dispatch) => {\r\n\tawait EditIncidentRequest(incidentForm).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Incident successfully edited.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetPagerDutyIncidentsTable());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteIncident = (id) => async (dispatch) => {\r\n\tawait DeleteIncidentRequest(id).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Incident successfully deleted.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetPagerDutyIncidentsTable());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const ToggleIncidentTrackerDialog = (visible, incidentId, incidentClosed = false) => (dispatch) => {\r\n\tdispatch(onToggleIncidentTrackerDialog(visible, incidentId, incidentClosed));\r\n};\r\n\r\nexport const ToggleDeleteIncidentDialog = (visible, incidentId) => (dispatch) => {\r\n\tdispatch(onToggleDeleteIncidentDialog(visible, incidentId));\r\n};\r\n\r\nexport const GetPagerDutyIncidentsAckUpdate = () => async (dispatch) => {\r\n\tawait PagerDutyIncidentsAckUpdateRequest().then(response => {\r\n\t\tdispatch(onGetPagerDutyIncidentsAckUpdate(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DownloadPagerDutyIncidents = () => async (dispatch) => {\r\n\tawait DownloadPagerDutyIncidentsRequest().then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DownloadCurrentWeekIncidents = () => async (dispatch) => {\r\n\tawait DownloadCurrentWeekIncidentsRequest().then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tGET_PAGERDUTY_INCIDENTS_UPDATE,\r\n\tGET_PAGERDUTY_INCIDENTS_ACK_UPDATE,\r\n\tGET_PAGERDUTY_INCIDENTS_TABLE,\r\n\tTOGGLE_INCIDENT_TRACKER_DIALOG,\r\n\tTOGGLE_DELETE_INCIDENT_DIALOG,\r\n\tGET_DROPDOWNS,\r\n\tGET_INCIDENT,\r\n\tSET_FORM_STATE\r\n} from '../actions/PagerDutyIncidentsActions.js';\r\n\r\nconst initialState = {\r\n\tincidentsLastUpdate: '',\r\n\tincidentsAckLastUpdate: '',\r\n\tincidentsTableData: [],\r\n\tdropdowns: [],\r\n\tformState: {\r\n\t\tvalues: {},\r\n\t\tisValid: false,\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t\tsubmit: false\r\n\t}\r\n};\r\n\r\nconst pagerDutyIncidentsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase TOGGLE_DELETE_INCIDENT_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdeleteIncidentDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\tselectedIncidentId: action.incidentId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_INCIDENT_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tincidentTrackerDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\tselectedIncidentId: action.incidentId,\r\n\t\t\t\t\t\t\tisIncidentClosed: action.incidentClosed,\r\n\t\t\t\t\t\t\tselectedIncidentSubmitter: action.incidentSubmitter,\r\n\t\t\t\t\t\t\tformState: initialState.formState,\r\n\t\t\t\t\t\t\tdropdowns: initialState.dropdowns,\r\n\t\t\t\t\t\t\tprojectsDropdown: initialState.projectsDropdown,\r\n\t\t\t\t\t\t\tsowDropdown: initialState.sowDropdown,\r\n\t\t\t\t\t\t\tlayersDropdown: initialState.layersDropdown,\r\n\t\t\t\t\t\t\ttypeDropdown: initialState.typeDropdown,\r\n\t\t\t\t\t\t\tdetailedTypeDropdown: initialState.detailedTypeDropdown,\r\n\t\t\t\t\t\t\tcurrentQueueDropdown: initialState.currentQueueDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DROPDOWNS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdropdowns: action.dropdowns\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_INCIDENT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.incident }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_PAGERDUTY_INCIDENTS_UPDATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tincidentsLastUpdate: action.incidentsLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_PAGERDUTY_INCIDENTS_ACK_UPDATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tincidentsAckLastUpdate: action.incidentsAckLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_PAGERDUTY_INCIDENTS_TABLE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tincidentsTableData: action.incidentsTableData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default pagerDutyIncidentsReducer;\r\n","import { combineReducers } from 'redux';\r\n\r\nimport sessionReducer from './sessionReducer';\r\nimport notifierReducer from './notifierReducer';\r\nimport usersReducer from '../views/Management/reducers/UsersReducer';\r\nimport operatorsReducer from '../views/Management/reducers/OperatorsReducer';\r\nimport settingsReducer from '../views/Management/reducers/SettingsReducer';\r\nimport dashboardInspectReducer from '../views/Dashboard/reducers/DashboardInspectReducer';\r\nimport mapReducer from '../components/Map/reducers/MapReducer';\r\nimport pagerDutyIncidentsReducer from '../views/PagerDutyIncidents/reducers/PagerDutyIncidentsReducer';\r\n\r\nconst rootReducer = combineReducers({\r\n\tsession: sessionReducer,\r\n\tusersReducer,\r\n\tnotifierReducer,\r\n\toperatorsReducer,\r\n\tsettingsReducer,\r\n\tdashboardInspectReducer,\r\n\tmapReducer,\r\n\tpagerDutyIncidentsReducer\r\n});\r\n\r\nexport default rootReducer;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { AppBar, Toolbar } from '@mui/material';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tboxShadow: 'none',\r\n\t},\r\n}));\r\n\r\nconst Topbar = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\"Logo\"\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nTopbar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Topbar;\r\n","import React, { Fragment, Suspense } from 'react';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { LinearProgress } from '@mui/material';\r\n\r\nimport { Topbar } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tcontent: {\r\n\t\theight: '100%',\r\n\t\tpaddingTop: 56,\r\n\t\t[theme.breakpoints.up('sm')]: {\r\n\t\t\tpaddingTop: 64,\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Auth = (props) => {\r\n\tconst { route } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t}>\r\n\t\t\t\t\t{renderRoutes(route.routes)}\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nAuth.propTypes = {\r\n\troute: PropTypes.object,\r\n};\r\n\r\nexport default Auth;\r\n","import React, { Suspense } from 'react';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { LinearProgress } from '@mui/material';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t},\r\n}));\r\n\r\nconst Error = (props) => {\r\n\tconst { route } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t}>\r\n\t\t\t\t{renderRoutes(route.routes)}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nError.propTypes = {\r\n\troute: PropTypes.object,\r\n};\r\n\r\nexport default Error;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport {\r\n\tHubConnectionBuilder,\r\n} from '@aspnet/signalr'; // version 1.0.4\r\n\r\n// action for user authentication and receiving the access_token\r\nimport * as actions from '../../actions';\r\nimport config from '../../configuration/configuration.js';\r\n\r\nconst startSignalRConnection = (connection, origin) => {\r\n\tif (origin !== undefined) {\r\n\t\tconnection.start()\r\n\t\t\t.then(() => {\r\n\t\t\t})\r\n\t\t\t.catch(err => {\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nconst NotificationHub = () => {\r\n\tconst connection = useRef(null);\r\n\tconst dispatch = useDispatch();\r\n\tconst enqueueSnackbar = (...args) => dispatch(actions.enqueueSnackbar(...args));\r\n\r\n\tconst NotificationRecieved = (info) => {\r\n\t\tenqueueSnackbar({\r\n\t\t\tmessage: info.title,\r\n\t\t\toptions: {\r\n\t\t\t\tkey: new Date().getTime() + Math.random(),\r\n\t\t\t\tvariant: info.variant,\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(actions.FetchNotifications());\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\t// register signalR after the user logged in\r\n\t\tif (connection.current === null && localStorage.getItem(config.TOKEN_KEY)) {\r\n\t\t\tconst urlRoot = config.API_URL;\r\n\t\t\tconst connectionHub = `${urlRoot}notificationhub?token=${localStorage.getItem(config.TOKEN_KEY)}`;\r\n\r\n\t\t\t// create the connection instance\r\n\t\t\tconnection.current = new HubConnectionBuilder()\r\n\t\t\t\t.withUrl(connectionHub)\r\n\t\t\t\t.build();\r\n\r\n\t\t\t// event handlers, you can use these to dispatch actions to update your Redux store\r\n\t\t\tconnection.current.on('NewNotification', NotificationRecieved);\r\n\r\n\t\t\t// re-establish the connection if connection dropped\r\n\t\t\tconnection.current.onclose((error) => setTimeout(startSignalRConnection(connection.current, error), 5000));\r\n\r\n\t\t\tdispatch(actions.FetchNotifications());\r\n\t\t\tstartSignalRConnection(connection.current, 'setup');\r\n\t\t}\r\n\r\n\t\treturn (() => {\r\n\t\t\tif (connection.current) {\r\n\t\t\t\tconnection.current.stop();\r\n\t\t\t}\r\n\t\t});\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\tnull\r\n\t);\r\n};\r\n\r\nexport default NotificationHub;\r\n","/* eslint-disable react/no-multi-comp */\r\n/* eslint-disable react/display-name */\r\nimport SupervisorAccountIcon from '@mui/icons-material/SupervisorAccount';\r\nimport DashboardIcon from '@mui/icons-material/DashboardOutlined';\r\nimport HomeIcon from '@mui/icons-material/HomeOutlined';\r\nimport SettingsIcon from '@mui/icons-material/SettingsOutlined';\r\nimport DesktopMacIcon from '@mui/icons-material/DesktopMac';\r\nimport ListIcon from '@mui/icons-material/List';\r\n\r\nimport config from '../../../../configuration/configuration.js';\r\n\r\nexport default [\r\n\t{\r\n\t\ttitle: '',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Home',\r\n\t\t\t\thref: '/home',\r\n\t\t\t\ticon: HomeIcon,\r\n\t\t\t\t// roles: ['Administrator', ...]\r\n\t\t\t\t// projects: ['Operations'],\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: 'Menu',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'PagerDuty Incidents',\r\n\t\t\t\thref: '/pagerDutyIncidents',\r\n\t\t\t\ticon: ListIcon,\r\n\t\t\t\t// roles: ['Administrator', ...]\r\n\t\t\t\t// projects: ['Operations'],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Dashboards',\r\n\t\t\t\thref: '/dashboards',\r\n\t\t\t\ticon: DashboardIcon,\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Executive Summary',\r\n\t\t\t\t\t\thref: '/dashboards/executiveSummary',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Alarms',\r\n\t\t\t\t\t\thref: '/dashboards/alarms',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Incidents',\r\n\t\t\t\t\t\thref: '/dashboards/incidents',\r\n\t\t\t\t\t\tchildren: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttitle: 'Overall',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/incidents/overall',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttitle: 'Monthly',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/incidents/monthly',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttitle: 'Weekly',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/incidents/weekly',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: 'Management',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Manage',\r\n\t\t\t\thref: '/management',\r\n\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\ticon: SupervisorAccountIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Operators',\r\n\t\t\t\t\t\thref: '/management/operators',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Users',\r\n\t\t\t\t\t\thref: '/management/users',\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Hangfire',\r\n\t\t\t\thref: `${config.API_URL}hangfire?access_token={token}`,\r\n\t\t\t\ttarget: '_blank',\r\n\t\t\t\troles: ['Administrator'],\r\n\t\t\t\ticon: DesktopMacIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Settings',\r\n\t\t\t\thref: '/management/settings',\r\n\t\t\t\ticon: SettingsIcon\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport _ from 'underscore';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Drawer, Divider, Paper, Avatar, Typography, Hidden } from '@mui/material';\r\n\r\nimport FolderIcon from '@mui/icons-material/FolderOutlined';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport getInitials from 'utils/getInitials';\r\nimport { Navigation } from 'components';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport navigationConfig from './navigationConfig';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\toverflowY: 'auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n\tprofile: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\talignItems: 'center',\r\n\t\tminHeight: 'fit-content',\r\n\t},\r\n\tavatar: {\r\n\t\twidth: 60,\r\n\t\theight: 60,\r\n\t},\r\n\tname: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n\tnavigation: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst NavBar = (props) => {\r\n\tconst { openMobile, onMobileClose, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (openMobile) {\r\n\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\tonMobileClose && onMobileClose();\r\n\t\t}\r\n\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [router.location.pathname]);\r\n\r\n\tif (user.projects) {\r\n\t\t/* const projectsMenu = {\r\n\t\t\ttitle: 'Pages',\r\n\t\t\tpages: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: 'Projects',\r\n\t\t\t\t\thref: '/projects',\r\n\t\t\t\t\ticon: FolderIcon,\r\n\t\t\t\t\tchildren: user.projects.map(item => ({\r\n\t\t\t\t\t\ttitle: item,\r\n\t\t\t\t\t\thref: '/',\r\n\t\t\t\t\t})),\r\n\t\t\t\t},\r\n\t\t\t]\r\n\t\t}; */\r\n\r\n\t\t// replace hangfire token\r\n\t\tconst management = navigationConfig.find(item => item.title === 'Management');\r\n\t\tconst hangfire = management.pages.find(item => item.title === 'Hangfire');\r\n\t\thangfire.href = hangfire.href.replace('{token}', localStorage.getItem(config.TOKEN_KEY));\r\n\r\n\t\tconst hangfireindex = management.pages.findIndex(item => item.title === 'Hangfire');\r\n\t\tmanagement.pages.splice(hangfireindex, 1, hangfire);\r\n\r\n\t\tconst managementIndex = navigationConfig.findIndex(item => item.title === 'Management');\r\n\t\tnavigationConfig.splice(managementIndex, 1, management);\r\n\r\n\t\t// projects menu\r\n\t\t/* const index = navigationConfig.findIndex(item => item.title === 'Pages');\r\n\t\tif (index !== 1) {\r\n\t\t\tnavigationConfig.splice(1, 0, projectsMenu);\r\n\t\t} */\r\n\t}\r\n\r\n\tconst navbarContent = (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{getInitials(user.firstname)}\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{getInitials(user.lastname)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{user.firstname}\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{user.lastname}\r\n\t\t\t\t\r\n\t\t\t\t{user.operator}\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{navbarContent}\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{navbarContent}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonMobileClose: PropTypes.func,\r\n\topenMobile: PropTypes.bool,\r\n};\r\n\r\nexport default NavBar;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch, shallowEqual } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAppBar,\r\n\tBadge,\r\n\tButton,\r\n\tIconButton,\r\n\tToolbar,\r\n\tHidden,\r\n\tInput,\r\n\tcolors,\r\n\tPopper,\r\n\tPaper,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tClickAwayListener,\r\n} from '@mui/material';\r\nimport LockIcon from '@mui/icons-material/LockOutlined';\r\nimport NotificationsIcon from '@mui/icons-material/NotificationsOutlined';\r\nimport InputIcon from '@mui/icons-material/Input';\r\nimport MenuIcon from '@mui/icons-material/Menu';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport { PricingModal, NotificationsPopover } from 'components';\r\nimport * as actions from 'actions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tboxShadow: 'none',\r\n\t},\r\n\tflexGrow: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tsearch: {\r\n\t\tbackgroundColor: 'rgba(255,255,255, 0.1)',\r\n\t\tborderRadius: 4,\r\n\t\tflexBasis: 300,\r\n\t\theight: 36,\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tsearchIcon: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t\tcolor: 'inherit',\r\n\t},\r\n\tsearchInput: {\r\n\t\tflexGrow: 1,\r\n\t\tcolor: 'inherit',\r\n\t\t'& input::placeholder': {\r\n\t\t\topacity: 1,\r\n\t\t\tcolor: 'inherit',\r\n\t\t},\r\n\t},\r\n\tsearchPopper: {\r\n\t\tzIndex: theme.zIndex.appBar + 100,\r\n\t},\r\n\tsearchPopperContent: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\ttrialButton: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n\ttrialIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tnotificationsButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tnotificationsBadge: {\r\n\t\tbackgroundColor: colors.orange[600],\r\n\t},\r\n\tlogoutButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tlogoutIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst TopBar = (props) => {\r\n\tconst { onOpenNavBarMobile, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst { history } = useRouter();\r\n\tconst searchRef = useRef(null);\r\n\tconst dispatch = useDispatch();\r\n\tconst notificationsRef = useRef(null);\r\n\tconst [pricingModalOpen, setPricingModalOpen] = useState(false);\r\n\tconst [openSearchPopover, setOpenSearchPopover] = useState(false);\r\n\tconst [searchValue, setSearchValue] = useState('');\r\n\tconst [openNotifications, setOpenNotifications] = useState(false);\r\n\r\n\tconst notifications = useSelector((state) => state.session.notifications, shallowEqual);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst handleLogout = () => {\r\n\t\tdispatch(actions.logout());\r\n\t\thistory.push('/auth/login');\r\n\t};\r\n\r\n\tconst handlePricingOpen = () => {\r\n\t\tsetPricingModalOpen(true);\r\n\t};\r\n\r\n\tconst handlePricingClose = () => {\r\n\t\tsetPricingModalOpen(false);\r\n\t};\r\n\r\n\tconst handleNotificationsOpen = () => {\r\n\t\tsetOpenNotifications(true);\r\n\t};\r\n\r\n\tconst handleNotificationsClose = () => {\r\n\t\tsetOpenNotifications(false);\r\n\t};\r\n\r\n\tconst handleSearchChange = (event) => {\r\n\t\tsetSearchValue(event.target.value);\r\n\r\n\t\tif (event.target.value) {\r\n\t\t\tif (!openSearchPopover) {\r\n\t\t\t\tsetOpenSearchPopover(true);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tsetOpenSearchPopover(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleSearchPopverClose = () => {\r\n\t\tsetOpenSearchPopover(false);\r\n\t};\r\n\r\n\tconst popularSearches = [\r\n\t\t'Devias React Dashboard',\r\n\t\t'Devias',\r\n\t\t'Admin Pannel',\r\n\t\t'Project',\r\n\t\t'Pages',\r\n\t];\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\"Logo\"\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t{/* \r\n\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{popularSearches.map((search) => (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
*/}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t !i.readed).length}\r\n\t\t\t\t\t\t\tclasses={{ badge: classes.notificationsBadge }}\r\n\t\t\t\t\t\t\tvariant=\"dot\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tSign out\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nTopBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonOpenNavBarMobile: PropTypes.func,\r\n};\r\n\r\nexport default TopBar;\r\n","import axios from 'axios';\r\n\r\nconst instance = axios.create();\r\n\r\nexport default instance;\r\n","import React, { Suspense, useState, useEffect } from 'react';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { LinearProgress } from '@mui/material';\r\n\r\nimport NotificationHub from 'components/NotificationHub/NotificationHub.js';\r\nimport { NavBar, TopBar, /* ChatBar */ } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\twidth: '100%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\toverflow: 'hidden',\r\n\t},\r\n\ttopBar: {\r\n\t\tzIndex: 2,\r\n\t\tposition: 'relative',\r\n\t},\r\n\tcontainer: {\r\n\t\tdisplay: 'flex',\r\n\t\tflex: '1 1 auto',\r\n\t\toverflow: 'hidden',\r\n\t},\r\n\tnavBar: {\r\n\t\tzIndex: 3,\r\n\t\twidth: 256,\r\n\t\tminWidth: 256,\r\n\t\tflex: '0 0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\toverflowY: 'auto',\r\n\t\tflex: '1 1 auto',\r\n\t},\r\n}));\r\n\r\nconst Dashboard = (props) => {\r\n\tconst { route } = props;\r\n\tconst classes = useStyles();\r\n\r\n\tconst [openNavBarMobile, setOpenNavBarMobile] = useState(false);\r\n\r\n\tconst handleNavBarMobileOpen = () => {\r\n\t\tsetOpenNavBarMobile(true);\r\n\t};\r\n\r\n\tconst handleNavBarMobileClose = () => {\r\n\t\tsetOpenNavBarMobile(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t}>\r\n\t\t\t\t\t\t{renderRoutes(route.routes)}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t{/* */}\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nDashboard.propTypes = {\r\n\troute: PropTypes.object,\r\n};\r\n\r\nexport default Dashboard;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tDrawer,\r\n\tList,\r\n\tListItem,\r\n\tListItemAvatar,\r\n\tListItemText,\r\n\tListSubheader,\r\n\tTypography,\r\n\tFab,\r\n\tBadge,\r\n} from '@mui/material';\r\nimport PeopleIcon from '@mui/icons-material/PeopleOutline';\r\n\r\nimport axios from 'utils/axios';\r\nimport { StatusBullet } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tdrawer: {\r\n\t\twidth: 280,\r\n\t},\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\tlist: {\r\n\t\tpadding: theme.spacing(1, 3),\r\n\t},\r\n\tlistItemText: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tlastActivity: {\r\n\t\twhiteSpace: 'nowrap',\r\n\t},\r\n\tfab: {\r\n\t\tposition: 'fixed',\r\n\t\tbottom: 32,\r\n\t\tright: 32,\r\n\t\tzIndex: theme.zIndex.drawer - 100,\r\n\t},\r\n}));\r\n\r\nconst ChatBar = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchData = () => {\r\n\t\t\taxios.get('/api/chat/activity').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetData(response.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchData();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst handleOpen = () => {\r\n\t\tsetOpen(true);\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tif (!data) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst onlineConnections = data.connections.filter(\r\n\t\t(connection) => connection.active\r\n\t).length;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{data.groups.map((group) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{group.name}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{data.connections\r\n\t\t\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t\t\t(connection) => group.id === connection.group\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t.map((connection) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{connection.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t{connection.active ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconnection.lastActivity\r\n\t\t\t\t\t\t\t\t\t\t\t\t).fromNow()}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nChatBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default ChatBar;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { Doughnut } from 'react-chartjs-2';\r\nimport { makeStyles, useTheme } from '@mui/styles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tposition: 'relative',\r\n\t},\r\n}));\r\n\r\nconst Chart = (props) => {\r\n\tconst { data: dataProp, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst theme = useTheme();\r\n\r\n\tconst data = {\r\n\t\tdatasets: [\r\n\t\t\t{\r\n\t\t\t\tdata: [],\r\n\t\t\t\tbackgroundColor: [],\r\n\t\t\t\tborderWidth: 8,\r\n\t\t\t\tborderColor: theme.palette.white,\r\n\t\t\t\thoverBorderColor: theme.palette.white,\r\n\t\t\t},\r\n\t\t],\r\n\t\tlabels: [],\r\n\t};\r\n\r\n\t// eslint-disable-next-line no-restricted-syntax\r\n\tfor (const item of dataProp) {\r\n\t\tdata.datasets[0].data.push(item.value);\r\n\t\tdata.datasets[0].backgroundColor.push(item.color);\r\n\t\tdata.labels.push(item.label);\r\n\t}\r\n\r\n\tconst options = {\r\n\t\tresponsive: true,\r\n\t\tmaintainAspectRatio: false,\r\n\t\tanimation: false,\r\n\t\tcutoutPercentage: 80,\r\n\t\tlegend: {\r\n\t\t\tdisplay: false,\r\n\t\t},\r\n\t\tlayout: {\r\n\t\t\tpadding: 0,\r\n\t\t},\r\n\t\ttooltips: {\r\n\t\t\tenabled: true,\r\n\t\t\tmode: 'index',\r\n\t\t\tintersect: false,\r\n\t\t\tcaretSize: 10,\r\n\t\t\tyPadding: 20,\r\n\t\t\txPadding: 20,\r\n\t\t\tborderWidth: 1,\r\n\t\t\tborderColor: theme.palette.divider,\r\n\t\t\tbackgroundColor: theme.palette.white,\r\n\t\t\ttitleFontColor: theme.palette.text.primary,\r\n\t\t\tbodyFontColor: theme.palette.text.secondary,\r\n\t\t\tfooterFontColor: theme.palette.text.secondary,\r\n\t\t\tcallbacks: {\r\n\t\t\t\tlabel(tooltipItem, items) {\r\n\t\t\t\t\tconst label = items.labels[tooltipItem.index];\r\n\t\t\t\t\tconst value = items.datasets[0].data[tooltipItem.index];\r\n\r\n\t\t\t\t\treturn `${label}: ${value}%`;\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nChart.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Chart;\r\n","import React, { useState, useEffect } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tDivider,\r\n\tTypography,\r\n} from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\nimport { GenericMoreButton } from 'components';\r\nimport { Chart } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t\t'&:last-child': {\r\n\t\t\tpaddingBottom: 0,\r\n\t\t},\r\n\t},\r\n\tchartContainer: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tchart: {\r\n\t\theight: 281,\r\n\t},\r\n\tstatsContainer: {\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tstatsItem: {\r\n\t\tflexGrow: 1,\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\tjustifyContent: 'center',\r\n\t\tpadding: theme.spacing(3, 2),\r\n\t\t'&:not(:last-of-type)': {\r\n\t\t\tborderRight: `1px solid ${theme.palette.divider}`,\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst EarningsSegmentation = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [earnings, setEarnings] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchEarnings = () => {\r\n\t\t\taxios.get('/api/dashboard/earnings').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetEarnings(response.data.earnings);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchEarnings();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t}\r\n\t\t\t\ttitle=\"Earnings Segmentation\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{earnings.map((earning) => (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{earning.label}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{earning.value}\r\n\t\t\t\t\t\t\t\t%\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t))}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nEarningsSegmentation.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default EarningsSegmentation;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { Bar } from 'react-chartjs-2';\r\nimport { makeStyles, useTheme } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tposition: 'relative',\r\n\t},\r\n}));\r\n\r\nconst Chart = (props) => {\r\n\tconst { data: dataProp, labels, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst theme = useTheme();\r\n\r\n\tconst data = {\r\n\t\tdatasets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This year',\r\n\t\t\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t\t\tdata: dataProp.thisYear,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last year',\r\n\t\t\t\tbackgroundColor: colors.grey[200],\r\n\t\t\t\tdata: dataProp.lastYear,\r\n\t\t\t},\r\n\t\t],\r\n\t\tlabels,\r\n\t};\r\n\r\n\tconst options = {\r\n\t\tresponsive: true,\r\n\t\tmaintainAspectRatio: false,\r\n\t\tanimation: false,\r\n\t\tcornerRadius: 20,\r\n\t\tlegend: {\r\n\t\t\tdisplay: false,\r\n\t\t},\r\n\t\tlayout: {\r\n\t\t\tpadding: 0,\r\n\t\t},\r\n\t\tscales: {\r\n\t\t\txAxes: [\r\n\t\t\t\t{\r\n\t\t\t\t\tbarThickness: 12,\r\n\t\t\t\t\tmaxBarThickness: 10,\r\n\t\t\t\t\tbarPercentage: 0.5,\r\n\t\t\t\t\tcategoryPercentage: 0.5,\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tdrawBorder: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tticks: {\r\n\t\t\t\t\t\tpadding: 20,\r\n\t\t\t\t\t\tfontColor: theme.palette.text.secondary,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tyAxes: [\r\n\t\t\t\t{\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\tborderDash: [2],\r\n\t\t\t\t\t\tborderDashOffset: [2],\r\n\t\t\t\t\t\tcolor: theme.palette.divider,\r\n\t\t\t\t\t\tdrawBorder: false,\r\n\t\t\t\t\t\tzeroLineBorderDash: [2],\r\n\t\t\t\t\t\tzeroLineBorderDashOffset: [2],\r\n\t\t\t\t\t\tzeroLineColor: theme.palette.divider,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tticks: {\r\n\t\t\t\t\t\tpadding: 20,\r\n\t\t\t\t\t\tfontColor: theme.palette.text.secondary,\r\n\t\t\t\t\t\tbeginAtZero: true,\r\n\t\t\t\t\t\tmin: 0,\r\n\t\t\t\t\t\tmaxTicksLimit: 5,\r\n\t\t\t\t\t\tcallback: (value) => (value > 0 ? `${value}K` : value),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\ttooltips: {\r\n\t\t\tenabled: true,\r\n\t\t\tmode: 'index',\r\n\t\t\tintersect: false,\r\n\t\t\tcaretSize: 10,\r\n\t\t\tyPadding: 20,\r\n\t\t\txPadding: 20,\r\n\t\t\tborderWidth: 1,\r\n\t\t\tborderColor: theme.palette.divider,\r\n\t\t\tbackgroundColor: theme.palette.white,\r\n\t\t\ttitleFontColor: theme.palette.text.primary,\r\n\t\t\tbodyFontColor: theme.palette.text.secondary,\r\n\t\t\tfooterFontColor: theme.palette.text.secondary,\r\n\t\t\tcallbacks: {\r\n\t\t\t\ttitle: () => {},\r\n\t\t\t\tlabel: (tooltipItem) => {\r\n\t\t\t\t\tlet label = `This year: ${tooltipItem.yLabel}`;\r\n\r\n\t\t\t\t\tif (tooltipItem.yLabel > 0) {\r\n\t\t\t\t\t\tlabel += 'K';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn label;\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nChart.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.object.isRequired,\r\n\tlabels: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Chart;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, CardHeader, CardContent, Divider } from '@mui/material';\r\n\r\nimport { GenericMoreButton } from 'components';\r\nimport { Chart } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tchart: {\r\n\t\tpadding: theme.spacing(4, 2, 0, 2),\r\n\t\theight: 400,\r\n\t},\r\n}));\r\n\r\nconst FinancialStats = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tthisYear: [18, 16, 5, 8, 3, 14, 14, 16, 17, 19, 18, 20],\r\n\t\tlastYear: [12, 11, 4, 6, 2, 9, 9, 10, 11, 12, 13, 13],\r\n\t};\r\n\r\n\tconst labels = [\r\n\t\t'Jan',\r\n\t\t'Feb',\r\n\t\t'Mar',\r\n\t\t'Apr',\r\n\t\t'May',\r\n\t\t'Jun',\r\n\t\t'Jul',\r\n\t\t'Aug',\r\n\t\t'Sep',\r\n\t\t'Oct',\r\n\t\t'Nov',\r\n\t\t'Dec',\r\n\t];\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t}\r\n\t\t\t\ttitle=\"Financial Stats\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nFinancialStats.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default FinancialStats;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid, Button, ButtonGroup } from '@mui/material';\r\nimport { DatePicker } from '@mui/lab';\r\nimport CalendarTodayIcon from '@mui/icons-material/CalendarTodayOutlined';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdates: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tcalendarTodayIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [startDate, setStartDate] = useState(moment().subtract(7, 'days'));\r\n\tconst [endDate, setEndDate] = useState(moment());\r\n\tconst [selectEdge, setSelectEdge] = useState(null);\r\n\tconst [calendarDate, setCalendarDate] = useState(moment());\r\n\r\n\tconst handleCalendarOpen = (edge) => {\r\n\t\tsetSelectEdge(edge);\r\n\t};\r\n\r\n\tconst handleCalendarChange = (date) => {\r\n\t\tsetCalendarDate(date);\r\n\t};\r\n\r\n\tconst handleCalendarClose = () => {\r\n\t\tsetCalendarDate(moment());\r\n\t\tsetSelectEdge(null);\r\n\t};\r\n\r\n\tconst handleCalendarAccept = (date) => {\r\n\t\tsetCalendarDate(moment());\r\n\r\n\t\tif (selectEdge === 'start') {\r\n\t\t\tsetStartDate(date);\r\n\r\n\t\t\tif (moment(date).isAfter(endDate)) {\r\n\t\t\t\tsetEndDate(date);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tsetEndDate(date);\r\n\r\n\t\t\tif (moment(date).isBefore(startDate)) {\r\n\t\t\t\tsetStartDate(date);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsetSelectEdge(null);\r\n\t};\r\n\r\n\tconst open = Boolean(selectEdge);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tAnalytics\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tFinance Overview\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nHeader.defaultProps = {};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 56,\r\n\t\theight: 56,\r\n\t},\r\n\tcircle1: {\r\n\t\tstroke: 'rgba(0,0,0,0.05)',\r\n\t\tfill: 'none',\r\n\t\tstrokeWidth: 4,\r\n\t},\r\n\tcircle2: {\r\n\t\tstroke: theme.palette.primary.main,\r\n\t\tfill: 'none',\r\n\t\tstrokeWidth: 4,\r\n\t\tanimation: '$progress 1s ease-out forwards',\r\n\t},\r\n\t'@keyframes progress': {\r\n\t\t'0%': {\r\n\t\t\tstrokeDasharray: '0 100',\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst CircularProgress = (props) => {\r\n\tconst { value, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCircularProgress.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tvalue: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default CircularProgress;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardActions,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tDivider,\r\n\tTable,\r\n\tTableRow,\r\n\tTableCell,\r\n\tTypography,\r\n\tButton,\r\n\tcolors,\r\n\tTableBody,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\n\r\nimport axios from 'utils/axios';\r\nimport { GenericMoreButton } from 'components';\r\nimport CircularProgress from './components/CircularProgress';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t\t'&:last-child': {\r\n\t\t\tpaddingBottom: 0,\r\n\t\t},\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\timage: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t\tflexShrink: 0,\r\n\t\theight: 56,\r\n\t\twidth: 56,\r\n\t},\r\n\tsubscriptions: {\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n\tprice: {\r\n\t\twhiteSpace: 'nowrap',\r\n\t},\r\n\tvalue: {\r\n\t\tcolor: colors.green[600],\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n\tconversion: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tconversionStats: {\r\n\t\twhiteSpace: 'nowrap',\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst MostProfitableProducts = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [products, setProducts] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchProducts = () => {\r\n\t\t\taxios.get('/api/dashboard/profitable-products').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetProducts(response.data.products);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchProducts();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t}\r\n\t\t\t\ttitle=\"Most Profitable Products\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{products.map((product) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{product.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tproduct.subscriptions\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tActive\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tPrice\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{product.currency}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{product.price}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t\t\t\tmonthly\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{product.progress}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t%\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tConversion Rate\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSee all\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nMostProfitableProducts.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default MostProfitableProducts;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Grid, colors } from '@mui/material';\r\n\r\nimport { Label } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\titem: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\ttextAlign: 'center',\r\n\t\t[theme.breakpoints.up('md')]: {\r\n\t\t\t'&:not(:last-of-type)': {\r\n\t\t\t\tborderRight: `1px solid ${theme.palette.divider}`,\r\n\t\t\t},\r\n\t\t},\r\n\t\t[theme.breakpoints.down('md')]: {\r\n\t\t\t'&:not(:last-of-type)': {\r\n\t\t\t\tborderBottom: `1px solid ${theme.palette.divider}`,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tvalueContainer: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n\tlabel: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst Overview = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tincome: '854,355.00',\r\n\t\texpanses: '373,250.50',\r\n\t\tprofit: '123,532.00',\r\n\t\tsubscriptions: '26,000',\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tTotal Income\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t{data.income}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t+25%\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tTotal Expanses\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t{data.expanses}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t+12%\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tNet Profit\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{data.profit}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t-20%\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tActive Subscriptions\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{data.subscriptions}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nOverview.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Overview;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tList,\r\n\tListItem,\r\n\tListItemAvatar,\r\n\tListItemText,\r\n\tTypography,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\n\r\nimport axios from 'utils/axios';\r\nimport { GenericMoreButton } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tcontent: {\r\n\t\tflexGrow: 1,\r\n\t\tpadding: 0,\r\n\t},\r\n\tavatar: {\r\n\t\tfontSize: 14,\r\n\t\tfontWeight: theme.typography.fontWeightBold,\r\n\t\tcolor: theme.palette.white,\r\n\t},\r\n\tactions: {\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst TopReferrals = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [referrals, setReferrals] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchReferrals = () => {\r\n\t\t\taxios.get('/api/dashboard/top-referrals').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetReferrals(response.data.referrals);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchReferrals();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t} title=\"Top Referrals\" />\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{referrals.map((referral, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{referral.initials}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{referral.value}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSee all\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nTopReferrals.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default TopReferrals;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tDivider,\r\n\tList,\r\n\tListItem,\r\n\tListItemAvatar,\r\n\tListItemText,\r\n\tAvatar,\r\n\tTypography,\r\n\tLink,\r\n} from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\nimport getInitials from 'utils/getInitials';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tstatsContainer: {\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tstatsItem: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tflexGrow: 1,\r\n\t\t'&:first-of-type': {\r\n\t\t\tborderRight: `1px solid ${theme.palette.divider}`,\r\n\t\t},\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tdate: {\r\n\t\twhiteSpace: 'nowrap',\r\n\t},\r\n}));\r\n\r\nconst CustomerActivity = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [customers, setCustomers] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchCustomers = () => {\r\n\t\t\taxios.get('/api/dashboard/customer-activity').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetCustomers(response.data.customers);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchCustomers();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tRegistered\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t15,245\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tOnline\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t357\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{customers.map((customer, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{getInitials(customer.author.name)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{customer.author.name}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tsecondary={(\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{customer.description}\r\n\t\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t\t|\r\n\t\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t\t{customer.type === 'payment' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tSee invoice\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{moment(customer.created_at).fromNow()}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCustomerActivity.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default CustomerActivity;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tTable,\r\n\tTableBody,\r\n\tTableCell,\r\n\tTableHead,\r\n\tTableRow,\r\n\tTableSortLabel,\r\n\tTooltip,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\n\r\nimport axios from 'utils/axios';\r\nimport { Label, GenericMoreButton } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tprogressContainer: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n\tactions: {\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst labelColors = {\r\n\tcomplete: colors.green[600],\r\n\tpending: colors.orange[600],\r\n\trejected: colors.red[600],\r\n};\r\n\r\nconst LatestOrders = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [orders, setOrders] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchOrders = () => {\r\n\t\t\taxios.get('/api/dashboard/latest-orders').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetOrders(response.data.orders);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchOrders();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t} title=\"Latest Orders\" />\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{orders && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tDate\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tCustomer\r\n\t\t\t\t\t\t\t\t\t\tItems\r\n\t\t\t\t\t\t\t\t\t\tTotal\r\n\t\t\t\t\t\t\t\t\t\tStatus\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tActions\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{orders.map((order) => (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{order.ref}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{order.customer.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{order.items}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{order.currency}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{order.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{order.status}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tView\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSee all\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nLatestOrders.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default LatestOrders;\r\n","import React from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { Page } from 'components';\r\nimport {\r\n\tHeader,\r\n\tOverview,\r\n\tFinancialStats,\r\n\tEarningsSegmentation,\r\n\tTopReferrals,\r\n\tMostProfitableProducts,\r\n\tCustomerActivity,\r\n\tLatestOrders,\r\n} from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\t'& > *': {\r\n\t\t\theight: '100%',\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst DashboardAnalytics = () => {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default DashboardAnalytics;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdates: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tstartDateButton: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tendDateButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tcalendarTodayIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tname: 'Shen Zhi',\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\tHome\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tGood Morning,\r\n\t\t\t\t{' '}\r\n\t\t\t\t{data.name}\r\n\t\t\t\r\n\t\t\tHere's what's happening\r\n\t\t
\r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nHeader.defaultProps = {};\r\n\r\nexport default Header;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tButton,\r\n\tTable,\r\n\tTableBody,\r\n\tTableCell,\r\n\tTableHead,\r\n\tTableRow,\r\n\tTableSortLabel,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\n\r\nimport axios from 'utils/axios';\r\nimport getInitials from 'utils/getInitials';\r\nimport { Label, GenericMoreButton } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 900,\r\n\t},\r\n\tauthor: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\ttags: {\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tactions: {\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst LatestProjects = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [projects, setProjects] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchProjects = () => {\r\n\t\t\taxios.get('/api/dashboard/latest-projects').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetProjects(response.data.projects);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchProjects();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t}\r\n\t\t\t\ttitle=\"Latest projects\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tName\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tOwner\r\n\t\t\t\t\t\t\t\t\tAmount\r\n\t\t\t\t\t\t\t\t\tTags\r\n\t\t\t\t\t\t\t\t\tActions\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{projects.map((project) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{project.title}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{getInitials(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tproject.author.name\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{project.author.name}\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{project.currency}\r\n\t\t\t\t\t\t\t\t\t\t\t{project.price}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t{project.tags.map((tag) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tag.text}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tView\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSee all\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nLatestProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default LatestProjects;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Avatar, colors } from '@mui/material';\r\nimport FolderOpenIcon from '@mui/icons-material/FolderOpenOutlined';\r\n\r\nimport { Label } from 'components';\r\nimport gradients from 'utils/gradients';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tlabel: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\tbackgroundImage: gradients.blue,\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n}));\r\n\r\nconst NewProjects = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tvalue: '12',\r\n\t\tdifference: '-10%',\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tNew projects\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{data.value}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{data.difference}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nNewProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default NewProjects;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Avatar } from '@mui/material';\r\nimport AttachMoneyIcon from '@mui/icons-material/AttachMoney';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tavatar: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t\tcolor: theme.palette.primary.main,\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n}));\r\n\r\nconst RoiPerCustomer = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tvalue: '25.50',\r\n\t\tcurrency: '$',\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tRoi per customer\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{data.currency}\r\n\t\t\t\t\t\t{data.value}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nRoiPerCustomer.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default RoiPerCustomer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tIconButton,\r\n\tTooltip,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport OpenInNewIcon from '@mui/icons-material/OpenInNew';\r\n\r\nimport { StackAvatars } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcritical: {\r\n\t\t'& $indicator': {\r\n\t\t\tborderColor: colors.red[600],\r\n\t\t},\r\n\t},\r\n\tindicator: {\r\n\t\theight: 12,\r\n\t\twidth: 12,\r\n\t\tborderWidth: 4,\r\n\t\tborderStyle: 'solid',\r\n\t\tborderColor: colors.grey[100],\r\n\t\tborderRadius: '50%',\r\n\t},\r\n\tviewButton: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst TaskItem = (props) => {\r\n\tconst { task, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tlet deadline = 'N/A';\r\n\tlet critical = false;\r\n\r\n\tif (task.deadline) {\r\n\t\tconst now = moment();\r\n\t\tconst deadlineMoment = moment(task.deadline);\r\n\r\n\t\tif (\r\n\t\t\tdeadlineMoment.isAfter(now)\r\n\t\t\t&& deadlineMoment.diff(now, 'day') < 3\r\n\t\t) {\r\n\t\t\tdeadline = `${deadlineMoment.diff(now, 'day')} days remaining`;\r\n\t\t\tcritical = true;\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nTaskItem.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttask: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default TaskItem;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardActions,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tList,\r\n\tButton,\r\n\tDivider,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\n\r\nimport axios from 'utils/axios';\r\nimport { GenericMoreButton } from 'components';\r\nimport { TaskItem } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 400,\r\n\t},\r\n\tactions: {\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst TeamTasks = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst [tasks, setTasks] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchTasks = () => {\r\n\t\t\taxios.get('/api/tasks').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetTasks(response.data.tasks);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchTasks();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t} title=\"Team Tasks\" />\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{tasks.map((task, i) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSee all\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nTeamTasks.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default TeamTasks;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Avatar, colors } from '@mui/material';\r\nimport AttachMoneyIcon from '@mui/icons-material/AttachMoney';\r\n\r\nimport { Label } from 'components';\r\nimport gradients from 'utils/gradients';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tlabel: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\tbackgroundImage: gradients.green,\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n}));\r\n\r\nconst TodaysMoney = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tvalue: '24,000',\r\n\t\tcurrency: '$',\r\n\t\tdifference: '+4.5%',\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tTodays money\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{data.currency}\r\n\t\t\t\t\t\t{data.value}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{data.difference}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nTodaysMoney.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default TodaysMoney;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Avatar, LinearProgress } from '@mui/material';\r\nimport DoneIcon from '@mui/icons-material/Done';\r\n\r\nimport gradients from 'utils/gradients';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tcontent: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tprogress: {\r\n\t\tmargin: theme.spacing(0, 1),\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tavatar: {\r\n\t\tbackgroundImage: gradients.orange,\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n}));\r\n\r\nconst SystemHealth = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tvalue: 97,\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tSystem Health\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{data.value}\r\n\t\t\t\t\t\t%\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSystemHealth.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default SystemHealth;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { Bar } from 'react-chartjs-2';\r\nimport { makeStyles, useTheme } from '@mui/styles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tposition: 'relative',\r\n\t},\r\n}));\r\n\r\nconst Chart = (props) => {\r\n\tconst { data: dataProp, labels, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst theme = useTheme();\r\n\r\n\tconst data = {\r\n\t\tdatasets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Views',\r\n\t\t\t\tbackgroundColor: 'rgba(255,255,255,0.4)',\r\n\t\t\t\tdata: dataProp,\r\n\t\t\t},\r\n\t\t],\r\n\t\tlabels,\r\n\t};\r\n\r\n\tconst options = {\r\n\t\tresponsive: true,\r\n\t\tmaintainAspectRatio: false,\r\n\t\tanimation: false,\r\n\t\tcornerRadius: 20,\r\n\t\tlegend: {\r\n\t\t\tdisplay: false,\r\n\t\t},\r\n\t\tlayout: {\r\n\t\t\tpadding: 0,\r\n\t\t},\r\n\t\tscales: {\r\n\t\t\txAxes: [\r\n\t\t\t\t{\r\n\t\t\t\t\tstacked: false,\r\n\t\t\t\t\tbarThickness: 12,\r\n\t\t\t\t\tmaxBarThickness: 10,\r\n\t\t\t\t\tbarPercentage: 0.9,\r\n\t\t\t\t\tcategoryPercentage: 1,\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tdrawBorder: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tticks: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tyAxes: [\r\n\t\t\t\t{\r\n\t\t\t\t\tstacked: true,\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tdrawBorder: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tticks: {\r\n\t\t\t\t\t\tbeginAtZero: true,\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\ttooltips: {\r\n\t\t\tenabled: true,\r\n\t\t\tmode: 'index',\r\n\t\t\tintersect: false,\r\n\t\t\tcaretSize: 10,\r\n\t\t\tyPadding: 20,\r\n\t\t\txPadding: 20,\r\n\t\t\tborderWidth: 1,\r\n\t\t\tborderColor: theme.palette.divider,\r\n\t\t\tbackgroundColor: theme.palette.white,\r\n\t\t\ttitleFontColor: theme.palette.text.primary,\r\n\t\t\tbodyFontColor: theme.palette.text.secondary,\r\n\t\t\tfooterFontColor: theme.palette.text.secondary,\r\n\t\t\tcallbacks: {\r\n\t\t\t\tlegend: () => {},\r\n\t\t\t\ttitle: () => {},\r\n\t\t\t\tlabel: (tooltipItem) => {\r\n\t\t\t\t\tconst label = `Views: ${tooltipItem.yLabel}`;\r\n\r\n\t\t\t\t\treturn label;\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nChart.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tlabels: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Chart;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tButton,\r\n\tTypography,\r\n\tList,\r\n\tListItem,\r\n\tListItemText,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\n\r\nimport gradients from 'utils/gradients';\r\nimport { Chart } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tbackgroundImage: gradients.indigo,\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t},\r\n\tcontent: {\r\n\t\tpaddingTop: 0,\r\n\t},\r\n\titemDivider: {\r\n\t\tborderBottomColor: 'rgba(255,255,255,0.2)',\r\n\t},\r\n\tactions: {\r\n\t\tpaddingTop: 0,\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nfunction getRandomInt(min, max) {\r\n\t// eslint-disable-next-line no-param-reassign\r\n\tmin = Math.ceil(min);\r\n\t// eslint-disable-next-line no-param-reassign\r\n\tmax = Math.floor(max);\r\n\r\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\r\n}\r\n\r\nconst RealTime = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [data, setData] = useState([\r\n\t\t163,\r\n\t\t166,\r\n\t\t161,\r\n\t\t159,\r\n\t\t99,\r\n\t\t163,\r\n\t\t173,\r\n\t\t166,\r\n\t\t167,\r\n\t\t183,\r\n\t\t176,\r\n\t\t172,\r\n\t]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tsetInterval(() => {\r\n\t\t\tif (mounted) {\r\n\t\t\t\tsetData((items) => {\r\n\t\t\t\t\tconst newData = [...items];\r\n\r\n\t\t\t\t\tnewData.shift();\r\n\t\t\t\t\tnewData.push(0);\r\n\r\n\t\t\t\t\treturn newData;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetData((items) => {\r\n\t\t\t\t\t\tconst newData = [...items];\r\n\t\t\t\t\t\tconst random = getRandomInt(100, 200);\r\n\r\n\t\t\t\t\t\tnewData.pop();\r\n\t\t\t\t\t\tnewData.push(random);\r\n\r\n\t\t\t\t\t\treturn newData;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, 500);\r\n\t\t}, 2000);\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst labels = data.map((value, i) => i);\r\n\r\n\tconst pages = [\r\n\t\t{\r\n\t\t\tpathname: '/projects',\r\n\t\t\tviews: '24',\r\n\t\t},\r\n\t\t{\r\n\t\t\tpathname: '/chat',\r\n\t\t\tviews: '21',\r\n\t\t},\r\n\t\t{\r\n\t\t\tpathname: '/cart',\r\n\t\t\tviews: '15',\r\n\t\t},\r\n\t\t{\r\n\t\t\tpathname: '/cart/checkout',\r\n\t\t\tviews: '8',\r\n\t\t},\r\n\t];\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t{data[data.length - 1] === 0\r\n\t\t\t\t\t\t\t? data[data.length - 2]\r\n\t\t\t\t\t\t\t: data[data.length - 1]}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tsubheader=\"Page views per second\"\r\n\t\t\t\tsubheaderTypographyProps={{ color: 'inherit' }}\r\n\t\t\t\ttitle=\"Active users\"\r\n\t\t\t\ttitleTypographyProps={{ color: 'inherit' }}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{pages.map((page) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{page.views}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSee all\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nRealTime.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default RealTime;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { Line } from 'react-chartjs-2';\r\nimport { makeStyles, useTheme } from '@mui/styles';\r\nimport { alpha } from '@mui/material/styles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tposition: 'relative',\r\n\t},\r\n}));\r\n\r\nconst Chart = (props) => {\r\n\tconst { className, data: dataProp, labels, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst theme = useTheme();\r\n\r\n\tconst data = (canvas) => {\r\n\t\tconst ctx = canvas.getContext('2d');\r\n\t\tconst gradient = ctx.createLinearGradient(0, 0, 0, 400);\r\n\r\n\t\tgradient.addColorStop(0, alpha(theme.palette.secondary.main, 0.2));\r\n\t\tgradient.addColorStop(0.9, 'rgba(255,255,255,0)');\r\n\t\tgradient.addColorStop(1, 'rgba(255,255,255,0)');\r\n\r\n\t\treturn {\r\n\t\t\tdatasets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tdata: dataProp,\r\n\t\t\t\t\tbackgroundColor: gradient,\r\n\t\t\t\t\tborderColor: theme.palette.secondary.main,\r\n\t\t\t\t\tpointBorderColor: '#FFFFFF',\r\n\t\t\t\t\tpointBorderWidth: 3,\r\n\t\t\t\t\tpointRadius: 6,\r\n\t\t\t\t\tpointBackgroundColor: theme.palette.secondary.main,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tlabels,\r\n\t\t};\r\n\t};\r\n\r\n\tconst options = {\r\n\t\tresponsive: true,\r\n\t\tmaintainAspectRatio: false,\r\n\t\tanimation: false,\r\n\t\tlegend: {\r\n\t\t\tdisplay: false,\r\n\t\t},\r\n\t\tlayout: {\r\n\t\t\tpadding: 0,\r\n\t\t},\r\n\t\tscales: {\r\n\t\t\txAxes: [\r\n\t\t\t\t{\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tdrawBorder: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tticks: {\r\n\t\t\t\t\t\tpadding: 20,\r\n\t\t\t\t\t\tfontColor: theme.palette.text.secondary,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tyAxes: [\r\n\t\t\t\t{\r\n\t\t\t\t\tgridLines: {\r\n\t\t\t\t\t\tborderDash: [2],\r\n\t\t\t\t\t\tborderDashOffset: [2],\r\n\t\t\t\t\t\tcolor: theme.palette.divider,\r\n\t\t\t\t\t\tdrawBorder: false,\r\n\t\t\t\t\t\tzeroLineBorderDash: [2],\r\n\t\t\t\t\t\tzeroLineBorderDashOffset: [2],\r\n\t\t\t\t\t\tzeroLineColor: theme.palette.divider,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tticks: {\r\n\t\t\t\t\t\tpadding: 20,\r\n\t\t\t\t\t\tfontColor: theme.palette.text.secondary,\r\n\t\t\t\t\t\tbeginAtZero: true,\r\n\t\t\t\t\t\tmin: 0,\r\n\t\t\t\t\t\tmaxTicksLimit: 7,\r\n\t\t\t\t\t\tcallback: (value) => (value > 0 ? `${value}K` : value),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\ttooltips: {\r\n\t\t\tenabled: true,\r\n\t\t\tmode: 'index',\r\n\t\t\tintersect: false,\r\n\t\t\tcaretSize: 10,\r\n\t\t\tyPadding: 20,\r\n\t\t\txPadding: 20,\r\n\t\t\tborderWidth: 1,\r\n\t\t\tborderColor: theme.palette.divider,\r\n\t\t\tbackgroundColor: theme.palette.white,\r\n\t\t\ttitleFontColor: theme.palette.text.primary,\r\n\t\t\tbodyFontColor: theme.palette.text.secondary,\r\n\t\t\tfooterFontColor: theme.palette.text.secondary,\r\n\t\t\tcallbacks: {\r\n\t\t\t\ttitle: () => {},\r\n\t\t\t\tlabel: (tooltipItem) => {\r\n\t\t\t\t\tlet label = `Income: ${tooltipItem.yLabel}`;\r\n\r\n\t\t\t\t\tif (tooltipItem.yLabel > 0) {\r\n\t\t\t\t\t\tlabel += 'K';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn label;\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nChart.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tlabels: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Chart;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, CardHeader, CardContent, Divider } from '@mui/material';\r\n\r\nimport { GenericMoreButton } from 'components';\r\nimport { Chart } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {},\r\n\tbuttons: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\t'& > *': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tinner: {\r\n\t\theight: 375,\r\n\t\tminWidth: 500,\r\n\t},\r\n\tchart: {\r\n\t\theight: '100%',\r\n\t},\r\n}));\r\n\r\nconst PerformanceOverTime = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst data = {\r\n\t\tthisWeek: {\r\n\t\t\tdata: [],\r\n\t\t\tlabels: [],\r\n\t\t},\r\n\t\tthisMonth: {\r\n\t\t\tdata: [],\r\n\t\t\tlabels: [],\r\n\t\t},\r\n\t\tthisYear: {\r\n\t\t\tdata: [10, 5, 11, 20, 13, 28, 18, 4, 13, 12, 13, 5],\r\n\t\t\tlabels: [\r\n\t\t\t\t'Jan',\r\n\t\t\t\t'Feb',\r\n\t\t\t\t'Mar',\r\n\t\t\t\t'Apr',\r\n\t\t\t\t'May',\r\n\t\t\t\t'Jun',\r\n\t\t\t\t'Jul',\r\n\t\t\t\t'Aug',\r\n\t\t\t\t'Sep',\r\n\t\t\t\t'Oct',\r\n\t\t\t\t'Nov',\r\n\t\t\t\t'Dec',\r\n\t\t\t],\r\n\t\t},\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t}\r\n\t\t\t\ttitle=\"Performance Over Time\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nPerformanceOverTime.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default PerformanceOverTime;\r\n","import React from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { Page } from 'components';\r\nimport {\r\n\tHeader,\r\n\tLatestProjects,\r\n\tNewProjects,\r\n\tRealTime,\r\n\tRoiPerCustomer,\r\n\tTeamTasks,\r\n\tTodaysMoney,\r\n\tSystemHealth,\r\n\tPerformanceOverTime,\r\n} from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst DashboardDefault = () => {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default DashboardDefault;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid, Button, Hidden } from '@mui/material';\r\nimport BarChartIcon from '@mui/icons-material/BarChart';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsummaryButton: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\tbarChartIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\timage: {\r\n\t\twidth: '100%',\r\n\t\tmaxHeight: 400,\r\n\t},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst session = useSelector((state) => state.session);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tHome\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tGood Morning,\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t{session.user.first_name}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tHere’s what’s happening with your projects today\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tView summary\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Header;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Grid, colors } from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\nimport { Label } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\titem: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\ttextAlign: 'center',\r\n\t\t[theme.breakpoints.up('md')]: {\r\n\t\t\t'&:not(:last-of-type)': {\r\n\t\t\t\tborderRight: `1px solid ${theme.palette.divider}`,\r\n\t\t\t},\r\n\t\t},\r\n\t\t[theme.breakpoints.down('md')]: {\r\n\t\t\t'&:not(:last-of-type)': {\r\n\t\t\t\tborderBottom: `1px solid ${theme.palette.divider}`,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\ttitleWrapper: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n\tlabel: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\toverline: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst Statistics = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [statistics, setStatistics] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchStatistics = () => {\r\n\t\t\taxios.get('/api/account/statistics').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetStatistics(response.data.statistics);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchStatistics();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tif (!statistics) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t$\r\n\t\t\t\t\t\t{statistics.payout}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tNext payout\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t$\r\n\t\t\t\t\t\t{statistics.projects}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tTotal products\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{statistics.visitors}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tToday's Visitors\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{statistics.watching}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tLive\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWatching now\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nStatistics.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Statistics;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tIconButton,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemSecondaryAction,\r\n\tListItemText,\r\n\tTypography,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForwardOutlined';\r\nimport PaymentIcon from '@mui/icons-material/PaymentOutlined';\r\nimport MailIcon from '@mui/icons-material/MailOutlineOutlined';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tvalue: {\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n\ttype: {\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n}));\r\n\r\nconst Notifications = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst notifications = [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tvalue: 6,\r\n\t\t\ttype: 'invite',\r\n\t\t\tmessage: 'to send service quotes',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tvalue: 2,\r\n\t\t\ttype: 'message',\r\n\t\t\tmessage: 'from clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tvalue: 1,\r\n\t\t\ttype: 'payout',\r\n\t\t\tmessage: 'that needs your confirmation',\r\n\t\t},\r\n\t];\r\n\r\n\tconst icons = {\r\n\t\tinvite: ,\r\n\t\tmessage: ,\r\n\t\tpayout: ,\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{notifications.map((notification, i) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{icons[notification.type]}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{notification.value}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{notification.type}\r\n\t\t\t\t\t\t\t\t\ts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t{notification.message}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nNotifications.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Notifications;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Button } from '@mui/material';\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\r\n\r\nimport axios from 'utils/axios';\r\nimport { ProjectCard } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\theader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\ttitle: {\r\n\t\tposition: 'relative',\r\n\t\t'&:before': {\r\n\t\t\tposition: 'absolute',\r\n\t\t\tbottom: -8,\r\n\t\t\tleft: 0,\r\n\t\t\tcontent: '\" \"',\r\n\t\t\theight: 3,\r\n\t\t\twidth: 48,\r\n\t\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t},\r\n\t},\r\n\tarrowIcon: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst Projects = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [projects, setProjects] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchProjects = () => {\r\n\t\t\taxios.get('/api/account/projects').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetProjects(response.data.projects);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchProjects();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tActive Projects\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t{projects.map((project) => (\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Projects;\r\n","import React from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid } from '@mui/material';\r\nimport { Page } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t},\r\n\tcontent: {\r\n\t\twidth: theme.breakpoints.values.md,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: '80px 24px',\r\n\t\t[theme.breakpoints.up('md')]: {\r\n\t\t\tpadding: '160px 24px',\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Home = () => {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCustomer focus\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tWe only find success in our customer’s success.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tExcellence\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tOur clients know that we pursue nothing less than the highest quality standards in everything we do.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCollaboration\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tOur passion for teamwork leads to innovation, high level of effectiveness and continuous learning and improvement.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tAccountability\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tPeople who are not afraid to get their ideas off the ground are also proud to be held accountable for their results.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tPassion\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tOur passion is what keeps us relentlessly pushing for numerous game-changing innovations.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default Home;\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tIconButton,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tRadio,\r\n\tTooltip,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport ArchiveIcon from '@mui/icons-material/ArchiveOutlined';\r\n\r\nimport axios from 'utils/axios';\r\nimport { Label } from 'components';\r\n\r\nconst getLabel = (todo) => {\r\n\tif (todo.done) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (moment(todo.deadline).isBefore(moment(), 'day')) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tif (moment(todo.deadline).isSame(moment(), 'day')) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn ;\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\taddIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tdone: {\r\n\t\ttextDecoration: 'line-through',\r\n\t\tcolor: theme.palette.text.secondary,\r\n\t},\r\n}));\r\n\r\nconst Todos = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [todos, setTodos] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchTodos = () => {\r\n\t\t\taxios.get('/api/account/todos').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetTodos(response.data.todos);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchTodos();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst handleChange = (event, todo) => {\r\n\t\tsetTodos((items) => items.map((t) => {\r\n\t\t\tif (t.id === todo.id) {\r\n\t\t\t\treturn { ...todo, done: !todo.done };\r\n\t\t\t}\r\n\r\n\t\t\treturn t;\r\n\t\t})\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tAdd\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\ttitle=\"My todos\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{todos.map((todo, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t handleChange(event, todo)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{todo.title}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{getLabel(todo)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nTodos.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Todos;\r\n","import React from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport { Page } from 'components';\r\nimport {\r\n\tHeader,\r\n\tStatistics,\r\n\tNotifications,\r\n\tProjects,\r\n\tTodos,\r\n} from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: theme.breakpoints.values.lg,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tstatistics: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tnotifications: {\r\n\t\tmarginTop: theme.spacing(6),\r\n\t},\r\n\tprojects: {\r\n\t\tmarginTop: theme.spacing(6),\r\n\t},\r\n\ttodos: {\r\n\t\tmarginTop: theme.spacing(6),\r\n\t},\r\n}));\r\n\r\nconst Overview = () => {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Overview;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tTypography,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n} from '@mui/material';\r\nimport ContactSupportIcon from '@mui/icons-material/ContactSupportOutlined';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\tinner: {\r\n\t\tpadding: theme.spacing(6, 3),\r\n\t\twidth: theme.breakpoints.values.lg,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(6),\r\n\t},\r\n}));\r\n\r\nconst FAQ = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst faqs = [\r\n\t\t{\r\n\t\t\ttitle: 'What do we use for styling our components?',\r\n\t\t\tdescription:\r\n\t\t\t\t\"We use Material-ui's hooks api as we think it’s the best way of avoiding clutter.\",\r\n\t\t},\r\n\t\t{\r\n\t\t\ttitle:\r\n\t\t\t\t'Are the design files (sketch, figma) included in the Standard Package?',\r\n\t\t\tdescription:\r\n\t\t\t\t'No, we offer the design source file only to Standard Plus Sketch & Figma and Extended Package.',\r\n\t\t},\r\n\t\t{\r\n\t\t\ttitle: 'Are you providing support for setting up my project?',\r\n\t\t\tdescription:\r\n\t\t\t\t'Yes, we offer email support for all our customers & even skype meetings for our extended license customers.',\r\n\t\t},\r\n\t];\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tFAQ\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{faqs.map((faq) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nFAQ.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default FAQ;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid, Button } from '@mui/material';\r\nimport {\r\n\tenqueueSnackbar as enqueueSnackbarAction,\r\n\tcloseSnackbar as closeSnackbarAction,\r\n} from 'actions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\theader: {\r\n\t\twidth: theme.breakpoints.values.md,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: '80px 24px',\r\n\t\t[theme.breakpoints.up('md')]: {\r\n\t\t\tpadding: '160px 24px',\r\n\t\t},\r\n\t},\r\n\tbuttons: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n\tmediaContainer: {\r\n\t\tmargin: '0 auto',\r\n\t\tmaxWidth: 1600,\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\toverflow: 'hidden',\r\n\t},\r\n\tmedia: {\r\n\t\twidth: '100%',\r\n\t},\r\n\tstats: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t\tpadding: theme.spacing(1),\r\n\t},\r\n\tstatsInner: {\r\n\t\twidth: theme.breakpoints.values.md,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst enqueueSnackbar = (...args) => dispatch(enqueueSnackbarAction(...args));\r\n\tconst closeSnackbar = (...args) => dispatch(closeSnackbarAction(...args));\r\n\r\n\tconst handleClick = () => {\r\n\t\t// NOTE:\r\n\t\t// if you want to be able to dispatch a `closeSnackbar` action later on,\r\n\t\t// you SHOULD pass your own `key` in the options. `key` can be any sequence\r\n\t\t// of number or characters, but it has to be unique for a given snackbar.\r\n\t\tenqueueSnackbar({\r\n\t\t\tmessage: 'Querias comprar mas não compras.',\r\n\t\t\toptions: {\r\n\t\t\t\tkey: new Date().getTime() + Math.random(),\r\n\t\t\t\tvariant: 'success',\r\n\t\t\t\taction: key => (\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tDevias React Material Kit - PRO\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tA professional kit that comes with ready-to-use Material-UI©\r\n\t\t\t\t\tcomponents developed with one common goal in mind, help you\r\n\t\t\t\t\tbuild faster & beautiful applications. Each component is\r\n\t\t\t\t\tfully customizable, responsive and easy to integrate.\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPurchase Devias Kit\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t30+\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tDemo Pages\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tUX\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tComplete Flows\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t300+\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tComponents\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\"React\"\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tReact Hooks API\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\tinner: {\r\n\t\tpadding: theme.spacing(6, 3),\r\n\t\twidth: theme.breakpoints.values.lg,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tmedia: {\r\n\t\t'& img': {\r\n\t\t\twidth: '100%',\r\n\t\t\theight: 'auto',\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst PluginsSupport = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tSupport for Plugins\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tThe kit provides support for multiple third-party\r\n\t\t\t\t\t\t\tplugins right out of the box like Chart.js,\r\n\t\t\t\t\t\t\tDropzone.js, Kanban Plugin and many more.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nPluginsSupport.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default PluginsSupport;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.background.default,\r\n\t},\r\n\tinner: {\r\n\t\tpadding: theme.spacing(6, 3),\r\n\t\twidth: theme.breakpoints.values.lg,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tmedia: {\r\n\t\t'& img': {\r\n\t\t\twidth: '100%',\r\n\t\t\theight: 'auto',\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst SourceFiles = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tSource Files\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tWe've included the source Sketch & Figma files so\r\n\t\t\t\t\t\t\tyou can get creative! We designed all components\r\n\t\t\t\t\t\t\twith Symbols in Sketch which allows you to change\r\n\t\t\t\t\t\t\tthe main colors as you like.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSourceFiles.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default SourceFiles;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.background.default,\r\n\t},\r\n\tinner: {\r\n\t\tpadding: theme.spacing(6, 3),\r\n\t\twidth: theme.breakpoints.values.lg,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tmedia: {\r\n\t\t'& img': {\r\n\t\t\twidth: '100%',\r\n\t\t\theight: 'auto',\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst UserFlows = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tComplete User Flows\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tNot just a set of tools, the package includes the\r\n\t\t\t\t\t\t\tmost common use cases of user flows like User\r\n\t\t\t\t\t\t\tManagement, Second Level Layout, and many more.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nUserFlows.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default UserFlows;\r\n","import React from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport { Page } from 'components';\r\nimport {\r\n\tHeader,\r\n\tFAQ,\r\n\tPluginsSupport,\r\n\tSourceFiles,\r\n\tUserFlows,\r\n} from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {},\r\n}));\r\n\r\nconst Presentation = () => {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Presentation;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Avatar } from '@mui/material';\r\n\r\nimport { Label } from 'components';\r\nimport gradients from 'utils/gradients';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tlabel: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\tbackgroundImage: gradients.blue,\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n}));\r\n\r\nconst TodaysMoney = (props) => {\r\n\tconst { className, title, text, icon, label, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{text}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{label && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{label.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{icon}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nTodaysMoney.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\ttext: PropTypes.string,\r\n\ticon: PropTypes.object,\r\n\tlabel: PropTypes.object\r\n};\r\n\r\nexport default TodaysMoney;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport Label from '../../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../../components/DataTable/DataTable.js';\r\nimport { ToggleAddEditUserDialog, ResendConfirmationEmail, DeactivateUser, ToggleDeleteUserDialog } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst UsersDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst _editUser = (userId) => {\r\n\t\tdispatch(ToggleAddEditUserDialog(true, userId));\r\n\t};\r\n\r\n\tconst _deleteUser = (userId) => {\r\n\t\tdispatch(ToggleDeleteUserDialog(true, userId));\r\n\t};\r\n\r\n\tconst _resendConfirmationEmail = (userId) => {\r\n\t\tdispatch(ResendConfirmationEmail(userId));\r\n\t};\r\n\r\n\tconst _deactivateUser = (userId) => {\r\n\t\tdispatch(DeactivateUser(userId, rest.user.role));\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{rowData[5] ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _deactivateUser(rowData[0])}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _resendConfirmationEmail(rowData[0])}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t _editUser(rowData[0])}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t _deleteUser(rowData[0])}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t);\r\n\t};\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'email',\r\n\t\t\t\tlabel: 'Email',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'role',\r\n\t\t\t\tlabel: 'Role',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'operators',\r\n\t\t\t\tlabel: 'Operators',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\tconst values = value.split(',');\r\n\t\t\t\t\t\t\tconst sortedValues = _.sortBy(values, val => val);\r\n\t\t\t\t\t\t\tconst operators = sortedValues.map((operator, index) => (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t{operator}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\treturn operators;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'status',\r\n\t\t\t\tlabel: 'Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value !== null) {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{value\r\n\t\t\t\t\t\t\t\t\t\t? 'Email confirmed'\r\n\t\t\t\t\t\t\t\t\t\t: 'Email not confirmed'}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'online',\r\n\t\t\t\tlabel: 'Online',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value !== null) {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{value\r\n\t\t\t\t\t\t\t\t\t\t? 'Online'\r\n\t\t\t\t\t\t\t\t\t\t: 'Offline'}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\tselectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nUsersDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default UsersDataTable;\r\n","import React from 'react';\r\n\r\nimport MuiDialogTitle from '@mui/material/DialogTitle';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Typography from '@mui/material/Typography';\r\nimport withStyles from '@mui/styles/withStyles';\r\n\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nconst DialogTitle = withStyles(theme => ({\r\n\troot: {\r\n\t\tborderBottom: `1px solid ${theme.palette.divider}`,\r\n\t\tmargin: 0,\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcloseButton: {\r\n\t\tposition: 'absolute',\r\n\t\tright: theme.spacing(1),\r\n\t\ttop: theme.spacing(1),\r\n\t\tcolor: theme.palette.grey[500],\r\n\t},\r\n}))(props => {\r\n\tconst { children, classes, onClose } = props;\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t{onClose ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t) : null}\r\n\t\t\r\n\t);\r\n});\r\n\r\nexport default DialogTitle;\r\n","import withStyles from '@mui/styles/withStyles';\r\nimport MuiDialogContent from '@mui/material/DialogContent';\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n\troot: {\r\n\t\tmargin: 0,\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n}))(MuiDialogContent);\r\n\r\nexport default DialogContent;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog, DialogActions, Typography, Button } from '@mui/material';\r\n\r\nimport DialogTitle from './components/DialogTitle.js';\r\nimport DialogContent from './components/DialogContent.js';\r\n\r\nconst propTypes = {\r\n\tonClose: PropTypes.func,\r\n\tonConfirmClicked: PropTypes.func,\r\n\tcancelLabel: PropTypes.string,\r\n\tconfirmLabel: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\topen: PropTypes.bool,\r\n\tconfirmColor: PropTypes.string,\r\n\tmodal: PropTypes.bool,\r\n\tisDisabled: PropTypes.bool,\r\n\tchildren: PropTypes.object,\r\n\thasConfirm: PropTypes.bool,\r\n\tautoScrollBodyContent: PropTypes.bool,\r\n\tdialogProps: PropTypes.object,\r\n\tmaxWidth: PropTypes.string,\r\n\tid: PropTypes.string\r\n};\r\n\r\nconst ModalDialog = (props) => {\r\n\tconst {\r\n\t\tcancelLabel,\r\n\t\tconfirmLabel,\r\n\t\ttitle,\r\n\t\topen,\r\n\t\thasConfirm = true,\r\n\t\tonClose,\r\n\t\tchildren,\r\n\t\tonConfirmClicked,\r\n\t\tisDisabled,\r\n\t\tconfirmColor,\r\n\t\tmodal = false,\r\n\t\tautoScrollBodyContent,\r\n\t\tdialogProps,\r\n\t\tmaxWidth,\r\n\t\tid = 'confirm_dialog'\r\n\t} = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{cancelLabel || 'Cancel'}\r\n\t\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\thasConfirm && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{confirmLabel || 'Apply'}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nModalDialog.propTypes = propTypes;\r\n\r\nexport default ModalDialog;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState, GetOperatorProjects } from '../../../../../../actions/UsersActions';\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nconst schema = {\r\n\tfirstname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tlastname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\temail: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t\temail: true,\r\n\t},\r\n\troleId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddEditUserForm = (props) => {\r\n\tconst { className, roles, operators, projects, isEdit, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.usersReducer.formState);\r\n\r\n\tconst usePrevious = (value) => {\r\n\t\tconst ref = useRef();\r\n\t\tuseEffect(() => {\r\n\t\t\tref.current = value;\r\n\t\t});\r\n\t\treturn ref.current;\r\n\t};\r\n\r\n\tconst useHasChanged = (val) => {\r\n\t\tconst prevVal = usePrevious(val);\r\n\t\treturn prevVal !== val;\r\n\t};\r\n\r\n\tconst hasOperatorIdsChanged = useHasChanged(formState.values.operatorIds);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\r\n\t\tif (hasOperatorIdsChanged) {\r\n\t\t\tdispatch(GetOperatorProjects(formState.values.operatorIds || []));\r\n\t\t}\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddEditUserForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\troles: PropTypes.array,\r\n\toperators: PropTypes.array,\r\n\tprojects: PropTypes.array,\r\n\tisEdit: PropTypes.bool,\r\n};\r\n\r\nexport default AddEditUserForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddEditUserForm from './components/AddEditUserForm/AddEditUserForm.js';\r\nimport { GetRoles, GetOperators, CreateUser, GetUser, EditUser } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddEditUserDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst operators = useSelector((state) => state.usersReducer.operators);\r\n\tconst operatorProjects = useSelector((state) => state.usersReducer.operatorProjects);\r\n\tconst formState = useSelector((state) => state.usersReducer.formState);\r\n\tconst openAddEditUserDialogId = useSelector((state) => state.usersReducer.openAddEditUserDialogId);\r\n\tconst title = openAddEditUserDialogId ? 'Edit user' : 'Add user';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tif (openAddEditUserDialogId) {\r\n\t\t\t\tdispatch(EditUser(formState.values, rest.user.role));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(CreateUser(formState.values, rest.user.role));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetRoles(rest.user.role));\r\n\t\tdispatch(GetOperators());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t\tif (openAddEditUserDialogId) {\r\n\t\t\tdispatch(GetUser(openAddEditUserDialogId));\r\n\t\t}\r\n\t}, [openAddEditUserDialogId]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddEditUserDialog.propTypes = {\r\n\tauthor: PropTypes.object.isRequired,\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default AddEditUserDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport { DeleteUser } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst DeleteUserDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst openDeleteUserDialogId = useSelector((state) => state.usersReducer.openDeleteUserDialogId);\r\n\tconst title = 'Delete user';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(DeleteUser(openDeleteUserDialogId, rest.user.role));\r\n\t\tdispatch(enqueueSnackbar({ message: 'User deleted', options: { variant: 'info' } }));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t

Are you sure you want to delete this User?

\r\n\t\t\r\n\t);\r\n};\r\n\r\nDeleteUserDialog.propTypes = {\r\n\tauthor: PropTypes.object.isRequired,\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default DeleteUserDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport GroupIcon from '@mui/icons-material/Group';\r\nimport BusinessCenterIcon from '@mui/icons-material/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@mui/icons-material/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport Card from './components/Card/Card.js';\r\nimport UsersDataTable from './components/UsersDataTable/UsersDataTable.js';\r\nimport AddEditUsersDialog from './components/AddEditUserDialog/AddEditUserDialog.js';\r\nimport DeleteUsersDialog from './components/DeleteUserDialog/DeleteUserDialog';\r\n\r\nimport { GetUsers, GetUsersStats, ToggleAddEditUserDialog, ToggleDeleteUserDialog } from '../../actions/UsersActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Users = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst usersStats = useSelector((state) => state.usersReducer.usersStats);\r\n\tconst users = useSelector((state) => state.usersReducer.users);\r\n\tconst openAddEditUserDialog = useSelector((state) => state.usersReducer.openAddEditUserDialog);\r\n\tconst openDeleteUserDialog = useSelector((state) => state.usersReducer.openDeleteUserDialog);\r\n\r\n\tconst _addEditUserClose = () => {\r\n\t\tdispatch(ToggleAddEditUserDialog(false));\r\n\t};\r\n\r\n\tconst _deleteUserClose = () => {\r\n\t\tdispatch(ToggleDeleteUserDialog(false));\r\n\t};\r\n\r\n\tconst _addUser = () => {\r\n\t\tdispatch(ToggleAddEditUserDialog(true));\r\n\t};\r\n\r\n\tconst _renderActions = () => (\r\n\t\t\r\n\t);\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetUsers(user.role));\r\n\t\tdispatch(GetUsersStats());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, [getData]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t} />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t} />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t} />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddEditUserDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{openDeleteUserDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\r\n\t);\r\n};\r\n\r\nexport default Users;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tGrid,\r\n\tTypography,\r\n} from '@mui/material';\r\n\r\nimport getInitials from 'utils/getInitials';\r\nimport { Label } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\theader: {\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: 10,\r\n\t\t'&:last-child': {\r\n\t\t\tpaddingBottom: 0,\r\n\t\t},\r\n\t},\r\n\tdescription: {\r\n\t\tpadding: theme.spacing(2, 3, 1, 3),\r\n\t},\r\n\ttags: {\r\n\t\tpadding: theme.spacing(0, 3, 1, 3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tdetailsButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\tdeleteButton: {\r\n\t\tcolor: theme.palette.error.main,\r\n\t},\r\n\tdetails: {\r\n\t\tpadding: theme.spacing(1, 3),\r\n\t},\r\n\tavatar: {\r\n\t\twidth: theme.spacing(15),\r\n\t\theight: theme.spacing(15),\r\n\t\tfontSize: theme.spacing(7)\r\n\t},\r\n}));\r\n\r\nconst OperatorCard = (props) => {\r\n\tconst { operator, deleteOperator, navigateDetails, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t{getInitials(operator.name)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclassName={classes.header}\r\n\t\t\t\tdisableTypography\r\n\t\t\t\ttitle={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{operator.name}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t navigateDetails(operator.id)}\r\n\t\t\t\t\t\t\t\tclassName={classes.detailsButton}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tDetails\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t deleteOperator(operator)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tDelete\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nOperatorCard.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n\tdeleteOperator: PropTypes.func,\r\n\tnavigateDetails: PropTypes.func,\r\n};\r\n\r\nexport default OperatorCard;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tGrid,\r\n} from '@mui/material';\r\n\r\nimport OperatorCard from '../OperatorCard/OperatorCard.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: { marginTop: theme.spacing(3) },\r\n\theader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tflexWrap: 'wrap',\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\ttitle: {\r\n\t\tposition: 'relative',\r\n\t\t'&:after': {\r\n\t\t\tposition: 'absolute',\r\n\t\t\tbottom: -8,\r\n\t\t\tleft: 0,\r\n\t\t\tcontent: '\" \"',\r\n\t\t\theight: 3,\r\n\t\t\twidth: 48,\r\n\t\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t},\r\n\t},\r\n\tactions: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tgridList: {\r\n\t\toverflowY: 'scroll',\r\n\t\tmaxHeight: '75vh'\r\n\t}\r\n}));\r\n\r\nconst Projects = (props) => {\r\n\tconst { className, operators, deleteOperator, navigateDetails, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{operators.map((operator) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperators: PropTypes.array,\r\n\tdeleteOperator: PropTypes.func,\r\n\tnavigateDetails: PropTypes.func,\r\n};\r\n\r\nexport default Projects;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState } from '../../../../../../actions/OperatorsActions';\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddOperatorForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddOperatorForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddOperatorForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddOperatorForm from './components/AddOperatorForm/AddOperatorForm.js';\r\nimport { CreateOperator } from '../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddOperatorDialog = (props) => {\r\n\tconst { open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\tconst title = 'Add operator';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(CreateOperator(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddOperatorDialog.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default AddOperatorDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport useRouter from 'utils/useRouter';\r\nimport { Page, Header } from '../../../../components';\r\nimport OperatorsList from './components/OperatorsList/OperatorsList.js';\r\nimport AddOperatorDialog from './components/AddOperatorDialog/AddOperatorDialog.js';\r\n\r\nimport { GetOperators, ToggleAddOperatorDialog, DeleteOperator, NavigateDetails } from '../../actions/OperatorsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Operators = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst { history } = useRouter();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst openAddOperatorDialog = useSelector((state) => state.operatorsReducer.openAddOperatorDialog);\r\n\tconst operators = useSelector((state) => state.operatorsReducer.operators);\r\n\r\n\tconst _addOperatorClose = () => {\r\n\t\tdispatch(ToggleAddOperatorDialog(false));\r\n\t};\r\n\r\n\tconst _deleteOperator = (operator) => {\r\n\t\tdispatch(DeleteOperator(operator));\r\n\t};\r\n\r\n\tconst _addOperator = () => {\r\n\t\tdispatch(ToggleAddOperatorDialog(true));\r\n\t};\r\n\r\n\tconst _renderActions = () => (\r\n\t\t\r\n\t);\r\n\r\n\tconst _navigateDetails = (operatorId) => {\r\n\t\tdispatch(NavigateDetails(operatorId));\r\n\t\thistory.push('/management/operators/details');\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetOperators());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, [getData]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddOperatorDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Operators;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tSwitch,\r\n\tTextField,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { SetFormState, UpdateOperator } from '../../../../../../actions/OperatorsActions';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Details = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\r\n\tconst save = () => {\r\n\t\tdispatch(UpdateOperator(formState.values));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave Changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nDetails.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Details;\r\n","import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardContent,\r\n\tCardActions,\r\n\tAvatar,\r\n\tTypography,\r\n\tButton,\r\n\tcolors\r\n} from '@mui/material';\r\nimport getInitials from 'utils/getInitials';\r\nimport { UpdateImage } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexDirection: 'column',\r\n\t\ttextAlgin: 'center',\r\n\t},\r\n\tname: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\theight: 120,\r\n\t\twidth: 120,\r\n\t},\r\n\tremoveButton: {\r\n\t\twidth: '100%',\r\n\t\tcolor: theme.palette.error.main\r\n\t},\r\n\taddButton: {\r\n\t\twidth: '100%',\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Picture = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst inputFile = useRef(null);\r\n\r\n\tconst _removeImage = () => {\r\n\t\tconst updateOperator = { ...operator };\r\n\t\tupdateOperator.avatar = null;\r\n\t\tdispatch(UpdateImage(updateOperator));\r\n\t};\r\n\r\n\tconst _addImage = () => {\r\n\t\tinputFile.current.click();\r\n\t};\r\n\r\n\tconst _onChangeInput = (event) => {\r\n\t\tif (event.target.files && event.target.files.length > 0) {\r\n\t\t\tconst file = event.target.files[0];\r\n\t\t\tconst reader = new FileReader();\r\n\t\t\treader.addEventListener('load', () => {\r\n\t\t\t\tconst updateOperator = { ...operator };\r\n\t\t\t\tupdateOperator.avatar = reader.result;\r\n\t\t\t\tdispatch(UpdateImage(updateOperator));\r\n\t\t\t}\r\n\t\t\t);\r\n\t\t\treader.readAsDataURL(event.target.files[0]);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{getInitials(operator.name)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{operator.avatar === null ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t { inputFile.current = ref; }} onChange={_onChangeInput} style={{ display: 'none' }} />\r\n\t\t\r\n\t);\r\n};\r\n\r\nPicture.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Picture;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { Picture, Details } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Overview = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nOverview.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Overview;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\n\r\nimport { ToggleAddProjectDialog } from '../../../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst ActionsButton = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\tconst _add = () => {\r\n\t\tdispatch(ToggleAddProjectDialog(true));\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nActionsButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default memo(ActionsButton);\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tDivider\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport ActionsButton from './components/ActionsButton/ActionsButton.js';\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable.js';\r\nimport { DeleteProject } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 10,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst ProjectsDataTable = (props) => {\r\n\tconst { className, data, operatorId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst _deleteProject = (projectId) => {\r\n\t\tdispatch(DeleteProject(projectId, operatorId));\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t _deleteProject(rowData[0])}>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'users',\r\n\t\t\t\tlabel: 'Users',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\tselectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\ttitle=\"All projects\"\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjectsDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\toperatorId: PropTypes.string\r\n};\r\n\r\nexport default ProjectsDataTable;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState } from '../../../../../../../../actions/OperatorsActions';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddProjectForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddProjectForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddProjectForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddProjectForm from './components/AddProjectForm/AddProjectForm.js';\r\nimport { CreateProject } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddProjectDialog = (props) => {\r\n\tconst { operatorId, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\tconst title = 'Add project';\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(CreateProject({ name: formState.values.name, operatorId }));\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddProjectDialog.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\toperatorId: PropTypes.number.isRequired\r\n};\r\n\r\nexport default AddProjectDialog;\r\n","import React from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport ProjectsDataTable from './components/ProjectsDataTable/ProjectsDataTable';\r\n\r\nimport AddProjectDialog from './components/AddProjectDialog/AddProjectDialog';\r\n\r\nimport { ToggleAddProjectDialog } from '../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Projects = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst openAddProjectDialog = useSelector((state) => state.operatorsReducer.openAddProjectDialog);\r\n\r\n\tconst _addProjectClose = () => {\r\n\t\tdispatch(ToggleAddProjectDialog(false));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddProjectDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object\r\n};\r\n\r\nexport default Projects;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst UsersDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\tselectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nUsersDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default UsersDataTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport UsersDataTable from './components/UsersDataTable/UsersDataTable';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Users = (props) => {\r\n\tconst { users, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nUsers.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tusers: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Users;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\nimport { Page, Header } from 'components';\r\nimport { Overview, Projects, Users } from './components';\r\nimport { GetOperator } from '../../actions/OperatorsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\talert: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst OperatorDetails = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst [tab, setTab] = useState('overview');\r\n\r\n\tconst operatorId = useSelector((state) => state.operatorsReducer.detailsOperatorId);\r\n\tconst operator = useSelector((state) => state.operatorsReducer.operator);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchoperator = () => {\r\n\t\t\tdispatch(GetOperator(operatorId));\r\n\t\t};\r\n\r\n\t\tfetchoperator();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, [operatorId]);\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t};\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'overview', label: 'Overview' },\r\n\t\t{ value: 'projects', label: 'Projects' },\r\n\t\t{ value: 'users', label: 'Users' },\r\n\t];\r\n\r\n\tif (!tab) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!tabs.find((t) => t.value === tab)) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!operatorId) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{tabs.map((item) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{tab === 'overview' && }\r\n\t\t\t\t{tab === 'projects' && }\r\n\t\t\t\t{tab === 'users' && }\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default OperatorDetails;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tSwitch,\r\n\tTextField,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nimport { SetFormState, UpdateSettings } from '../../../../../../actions/SettingsActions';\r\n\r\nconst schema = {\r\n\tfirstname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tlastname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\toperatorId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst GeneralForm = (props) => {\r\n\tconst { className, role, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst operators = useSelector((state) => state.settingsReducer.operators);\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t}));\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(UpdateSettings(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave Changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGeneralForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\trole: PropTypes.string\r\n};\r\n\r\nexport default GeneralForm;\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { GeneralForm } from './components';\r\nimport { SetFormState, GetOperators } from '../../../../actions/SettingsActions';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {},\r\n}));\r\n\r\nconst General = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: { ...user }\r\n\t\t}));\r\n\r\n\t\tif (user && user.id) {\r\n\t\t\tdispatch(GetOperators(user.id));\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tif (!user) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGeneral.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default General;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActions,\r\n\tGrid,\r\n\tFormControlLabel,\r\n\tCheckbox,\r\n\tTypography,\r\n\tButton,\r\n\tDivider,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\titem: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Notifications = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tSystem\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tYou will recieve emails in your business email\r\n\t\t\t\t\t\t\t\taddress\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Email alerts\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tlabel=\"Push Notifications\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Text message\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel={(\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPhone calls\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tShort voice phone updating you\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tChat App\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tYou will recieve emails in your business email\r\n\t\t\t\t\t\t\t\taddress\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Email\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Push notifications\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nNotifications.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Notifications;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActions,\r\n\tGrid,\r\n\tButton,\r\n\tDivider,\r\n\tTextField,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { SetFormState, ChangePassword } from '../../../../actions/SettingsActions';\r\n\r\nconst schema = {\r\n\toldpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tnewpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tconfirmnewpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t\tequality: 'newpassword',\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Security = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t}));\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(ChangePassword(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nSecurity.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Security;\r\n","import React, { useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\n\r\nimport { Page, Header } from 'components';\r\nimport {\r\n\tGeneral,\r\n\tSubscription,\r\n\tNotifications,\r\n\tSecurity,\r\n} from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Settings = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst [tab, setTab] = useState('general');\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t};\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'general', label: 'General' },\r\n\t\t// { value: 'subscription', label: 'Subscription' },\r\n\t\t// { value: 'notifications', label: 'Notifications' },\r\n\t\t{ value: 'security', label: 'Security' },\r\n\t];\r\n\r\n\tif (!tab) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!tabs.find((t) => t.value === tab)) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{tabs.map((item) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{tab === 'general' && }\r\n\t\t\t\t{/* {tab === 'subscription' && }\r\n\t\t\t\t{tab === 'notifications' && } */}\r\n\t\t\t\t{tab === 'security' && }\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nSettings.propTypes = {\r\n};\r\n\r\nexport default Settings;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tLink,\r\n\tTypography,\r\n} from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\taction: {\r\n\t\tmarginRight: 0,\r\n\t\tmarginTop: 0,\r\n\t},\r\n\toverview: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\tjustifyContent: 'space-between',\r\n\t\t[theme.breakpoints.down('lg')]: {\r\n\t\t\tflexDirection: 'column-reverse',\r\n\t\t\talignItems: 'flex-start',\r\n\t\t},\r\n\t},\r\n\tproduct: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tproductImage: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\tjustifyContent: 'space-between',\r\n\t\t[theme.breakpoints.down('lg')]: {\r\n\t\t\tflexDirection: 'column',\r\n\t\t\talignItems: 'flex-start',\r\n\t\t},\r\n\t},\r\n\tnotice: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst Subscription = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [subscription, setSubscription] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchSubscription = () => {\r\n\t\t\taxios.get('/api/account/subscription').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetSubscription(response.data.subscription);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchSubscription();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tif (!subscription) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\tUpgrade plan\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclasses={{ action: classes.action }}\r\n\t\t\t\ttitle=\"Manage your subscription\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.currency}\r\n\t\t\t\t\t\t\t\t{subscription.price}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t/mo\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.name}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.proposalsLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tproposals left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.templatesLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\ttemplates\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.invitesLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tinvites left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.adsLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tads left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{subscription.hasAnalytics && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAnalytics dashboard\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{subscription.hasEmailAlerts && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tEmail alerts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tThe refunds don't work once you have the subscription, but\r\n\t\t\t\t\tyou can always\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tCancel your subscription\r\n\t\t\t\t\t\r\n\t\t\t\t\t.\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSubscription.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Subscription;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport _ from 'underscore';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport PrintIcon from '@mui/icons-material/Print';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport AchiveIcon from '@mui/icons-material/ArchiveOutlined';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst OptionsButton = (props) => {\r\n\tconst { exportPdf, fullScreen } = props;\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\tconst _exportPdf = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\texportPdf();\r\n\t};\r\n\r\n\tconst _fullScreen = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\tfullScreen();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{exportPdf && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nOptionsButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\texportPdf: PropTypes.func,\r\n\tfullScreen: PropTypes.func\r\n};\r\n\r\nexport default memo(OptionsButton);\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\nimport { FullScreen, useFullScreenHandle } from 'react-full-screen';\r\nimport { Header, Page, PowerBIDashboard } from 'components';\r\nimport TableauDashboard, { ShowExportPDFDialog } from '../../../../components/TableauDashboard/TableauDashboard.js';\r\nimport OptionsButton from './components/OptionsButton/OptionsButton.js';\r\nimport { DashboardInspect as DashboardInspectAction } from '../../actions/DashboardInspectActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\talert: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst DashboardInspect = (props) => {\r\n\tconst { match, pageTitle, headerHidden, module } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst handle = useFullScreenHandle();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst dashboard = useSelector(state => state.dashboardInspectReducer.dashboard);\r\n\r\n\tconst _getDashboard = () => {\r\n\t\tdispatch(DashboardInspectAction(match.params.id, user.id));\r\n\t};\r\n\r\n\tconst _exportPdf = () => {\r\n\t\tShowExportPDFDialog();\r\n\t};\r\n\r\n\tconst _fullScreen = () => {\r\n\t\thandle.enter();\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\t_getDashboard();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{dashboard.type === 'Tableau' ? (\r\n\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t) : null}\r\n\t\t\t{dashboard.type === 'PowerBI' ? (\r\n\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t) : null}\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{dashboard.type === 'Tableau' ? : null}\r\n\t\t\t\t\t{dashboard.type === 'PowerBI' ? : null}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nDashboardInspect.propTypes = {\r\n\tmatch: PropTypes.object.isRequired,\r\n\tpageTitle: PropTypes.string,\r\n\theaderHidden: PropTypes.bool,\r\n\tmodule: PropTypes.string,\r\n};\r\n\r\nexport default DashboardInspect;\r\n","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport _, { isNull } from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport EditIcon from '@mui/icons-material/EditOutlined';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport {\r\n\tFormGroup,\r\n\tFormLabel,\r\n\tTypography,\r\n\tIconButton,\r\n\tTooltip\r\n} from '@mui/material';\r\nimport DatePicker from 'components/DatePicker/DatePicker';\r\nimport { ToggleIncidentTrackerDialog, ToggleDeleteIncidentDialog } from '../../actions/PagerDutyIncidentsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t},\r\n\tempty: {\r\n\t\tcolor: 'grey',\r\n\t\tfontStyle: 'italic'\r\n\t},\r\n\tcellWidth: {\r\n\t\twidth: 100\r\n\t},\r\n\tcustomHeader: {\r\n\t\tcolor: '#263238',\r\n\t\tfontSize: '14px',\r\n\t\tfontFamily: 'Roboto, Helvetica, Arial sans-serif',\r\n\t\tfontWeight: 500,\r\n\t\tlineHeight: 1.75,\r\n\t\tletterSpacing: '0.02857em'\r\n\t},\r\n\tcustomFilter: {\r\n\t\tmarginTop: 10,\r\n\t},\r\n}));\r\n\r\nconst PagerDutyIncidentsTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onEditIncidentClick = (incidentId, incidentClosed) => {\r\n\t\tdispatch(ToggleIncidentTrackerDialog(true, incidentId, incidentClosed));\r\n\t};\r\n\r\n\tconst _onDeleteIncidentClick = (incidentId) => {\r\n\t\tdispatch(ToggleDeleteIncidentDialog(true, incidentId));\r\n\t};\r\n\r\n\tconst _displayTableMeta = (value) => console.log(value);\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'internalId',\r\n\t\t\t\tlabel: 'Internal Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsearchable: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tviewColumns: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'ID',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'incident_number',\r\n\t\t\t\tlabel: 'Incident Number',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tIncident Number\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'description',\r\n\t\t\t\tlabel: 'Description',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'service_id',\r\n\t\t\t\tlabel: 'Service Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tService Id\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'service_name',\r\n\t\t\t\tlabel: 'Service Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tService Name\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'escalation_policy_id',\r\n\t\t\t\tlabel: 'Escalation Policy Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tEscalation Policy Id\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'escalation_policy_name',\r\n\t\t\t\tlabel: 'Escalation Policy Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tEscalation Policy Name\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'created_on',\r\n\t\t\t\tlabel: 'Created On',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'custom',\r\n\t\t\t\t\tsearchable: false,\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tisNull(value)\r\n\t\t\t\t\t\t\t?
(empty)
\r\n\t\t\t\t\t\t\t: <>{moment(value).format('YYYY-MM-DD HH:mm:ss').toString()}\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCreated On\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\tlogic: (date, filters) => {\r\n\t\t\t\t\t\t\tif (filters[0] && filters[1]) {\r\n\t\t\t\t\t\t\t\treturn date < filters[0] || date > filters[1];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (filters[0]) {\r\n\t\t\t\t\t\t\t\treturn date < filters[0];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (filters[1]) {\r\n\t\t\t\t\t\t\t\treturn date > filters[1];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: (filterList, onChange, index, column) => (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\tCreated On\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\t\t\t\t\t\t\t\tfilterList[index][0] = date?.format('YYYY-MM-DD') ?? keyboardInput;\r\n\t\t\t\t\t\t\t\t\t\t\tonChange(filterList[index], index, column);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\t\t\t\t\t\t\t\tfilterList[index][1] = date?.format('YYYY-MM-DD') ?? keyboardInput;\r\n\t\t\t\t\t\t\t\t\t\t\tonChange(filterList[index], index, column);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'resolved_on',\r\n\t\t\t\tlabel: 'Resolved On',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'custom',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\tlogic: (date, filters) => {\r\n\t\t\t\t\t\t\tif (filters[0] && filters[1]) {\r\n\t\t\t\t\t\t\t\treturn date < filters[0] || date > filters[1];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (filters[0]) {\r\n\t\t\t\t\t\t\t\treturn date < filters[0];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (filters[1]) {\r\n\t\t\t\t\t\t\t\treturn date > filters[1];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdisplay: (filterList, onChange, index, column) => (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\tResolved On\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\t\t\t\t\t\t\t\tfilterList[index][0] = date?.format('YYYY-MM-DD') ?? keyboardInput;\r\n\t\t\t\t\t\t\t\t\t\t\tonChange(filterList[index], index, column);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\t\t\t\t\t\t\t\tfilterList[index][1] = date?.format('YYYY-MM-DD') ?? keyboardInput;\r\n\t\t\t\t\t\t\t\t\t\t\tonChange(filterList[index], index, column);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsearchable: false,\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tisNull(value)\r\n\t\t\t\t\t\t\t?
(empty)
\r\n\t\t\t\t\t\t\t: <>{moment(value).format('YYYY-MM-DD HH:mm:ss').toString()}\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tResolved On\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'seconds_to_first_ack',\r\n\t\t\t\tlabel: 'Seconds to First Acknowledgement',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tSeconds to First Acknowledgement\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'seconds_to_resolve',\r\n\t\t\t\tlabel: 'Seconds to Resolve',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tSeconds to Resolve\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'urgency',\r\n\t\t\t\tlabel: 'Urgency',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'priority',\r\n\t\t\t\tlabel: 'Priority',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'status',\r\n\t\t\t\tlabel: 'Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'initial_response_sla',\r\n\t\t\t\tlabel: 'Initial Response SLA',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tInitial Response SLA\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'resolution_sla',\r\n\t\t\t\tlabel: 'Resolution SLA',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tResolution SLA\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'end_to_end_sla',\r\n\t\t\t\tlabel: 'End to End SLA',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tEnd to End SLA\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'stakeholder',\r\n\t\t\t\tlabel: 'Stakeholder',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tfilterOptions: {\r\n\t\t\t\t\t\trenderValue: v => v ?? '(empty)'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tvalue ??
(empty)
\r\n\t\t\t\t\t),\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tsearchable: false\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'lastUpdate',\r\n\t\t\t\tlabel: 'Last Update',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsearchable: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomBodyRender: (value, _tableMeta, _updateValue) => (\r\n\t\t\t\t\t\tisNull(value)\r\n\t\t\t\t\t\t\t?
(empty)
\r\n\t\t\t\t\t\t\t: <>{moment(value).format('YYYY-MM-DD HH:mm:ss').toString()}\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'alarm_Ref',\r\n\t\t\t\tlabel: 'Alarm Ref',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tAlarm Ref\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'severity',\r\n\t\t\t\tlabel: 'Severity',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tsortThirdClickReset: true,\r\n\t\t\t\t\tcustomHeadLabelRender: (_columnMeta) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tSeverity\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\tconst statusIndex = _getTableColumns().findIndex(column => column.name === 'status');\r\n\t\tconst isClosed = rowData[statusIndex] === 'Closed';\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t _onEditIncidentClick(rowData[0], isClosed)}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t _onDeleteIncidentClick(rowData[0]) /* _onDeleteIncidentClick(rowData[0]) */}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst _getTableColumnsWithActions = () => {\r\n\t\tconst columns = _getTableColumns();\r\n\t\treturn [\r\n\t\t\t...columns,\r\n\t\t\t{\r\n\t\t\t\tname: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t];\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nPagerDutyIncidentsTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default PagerDutyIncidentsTable;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { TextField } from '@mui/material';\r\nimport { DateTimePicker as MuiDateTimePicker } from '@mui/lab';\r\n\r\nconst DateTimePicker = (props) => {\r\n\tconst { value,\r\n\t\tonChange,\r\n\t\tlabel,\r\n\t\tminutesStep,\r\n\t\t...rest } = props;\r\n\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\treturn (\r\n\t\t setOpen(true)}\r\n\t\t\tonClose={() => setOpen(false)}\r\n\t\t\trenderInput={(p) => (\r\n\t\t\t\t setOpen(true)}\r\n\t\t\t\t\t{...rest}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t\tinputFormat=\"yyyy-MM-DD HH:mm\"\r\n\t\t\tvalue={value || null}\r\n\t\t\tonChange={onChange}\r\n\t\t\tampm={false}\r\n\t\t\tvariant=\"inline\"\r\n\t\t\tinputVariant=\"outlined\"\r\n\t\t\tlabel={label}\r\n\t\t\tminutesStep={minutesStep ?? 30}\r\n\t\t\t{...rest}\r\n\t\t/>\r\n\t);\r\n};\r\nDateTimePicker.propTypes = {\r\n\tvalue: PropTypes.any,\r\n\tonChange: PropTypes.func.isRequired,\r\n\tlabel: PropTypes.string,\r\n\tminutesStep: PropTypes.number\r\n};\r\n\r\nexport default DateTimePicker;\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { SelectField } from 'components';\r\nimport { Typography, TextField, Card, CardHeader, CardContent, Stack, Grid, Divider, Alert } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport DateTimePicker from 'components/DatePicker/DateTimePicker';\r\nimport { SetFormState, GetDropdowns,\r\n\tGetIncident } from '../../actions/PagerDutyIncidentsActions';\r\n\r\nconst schema = {\r\n\tinternalId: {\r\n\t\tpresence: false,\r\n\t},\r\n\tstatus: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tpriority: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\turgency: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tcreatedOn: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tstakeholder: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tresolvedOn: {\r\n\t\tpresence: false,\r\n\t},\r\n\tsecondsToFirstAck: {\r\n\t\tpresence: false,\r\n\t},\r\n\tsecondsToResolve: {\r\n\t\tpresence: false,\r\n\t},\r\n\tescalationPolicyId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tserviceId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\talarmRef: {\r\n\t\tpresence: false,\r\n\t},\r\n\tseverity: {\r\n\t\tpresence: false,\r\n\t},\r\n\tdescription: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tnoBorder: {\r\n\t\tborder: 'none',\r\n\t}\r\n}));\r\n\r\nconst PagerDutyIncidentDialogForm = (props) => {\r\n\tconst { incidentId, allDisabled = false, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.pagerDutyIncidentsReducer.formState);\r\n\tconst dropdowns = useSelector((state) => state.pagerDutyIncidentsReducer.dropdowns);\r\n\tconst isIncidentClosed = useSelector((state) => state.pagerDutyIncidentsReducer.isIncidentClosed);\r\n\r\n\tconst _hasError = field => (incidentId !== 0 && formState.errors[field]) || !!(formState.touched[field] && formState.errors[field]);\r\n\tconst _handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.type === 'checkbox' ? event.target.checked : event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetDropdowns());\r\n\t\tif (incidentId !== 0) {\r\n\t\t\tdispatch(GetIncident(incidentId));\r\n\t\t} else {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\tsecondsToFirstAck: 120,\r\n\t\t\t\t\tcreatedOn: Date.now(),\r\n\t\t\t\t\tstakeholder: 'DAS NOC',\r\n\t\t\t\t\tsecondsToResolve: null,\r\n\t\t\t\t\tstatus: 'Open',\r\n\t\t\t\t},\r\n\t\t\t\ttouched: {\r\n\t\t\t\t\t...formState.touched,\r\n\t\t\t\t\tsecondsToFirstAck: true,\r\n\t\t\t\t\tsecondsToResolve: true,\r\n\t\t\t\t\tcreatedOn: true\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}, []);\r\n\r\n\tuseMemo(() => {\r\n\t\tconst newTouched = {};\r\n\r\n\t\tif (formState.submit) {\r\n\t\t\t_.each(_.keys(schema), item => {\r\n\t\t\t\tnewTouched[item] = true;\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst errors = validate(formState.values, schema, {\r\n\t\t\tfullMessages: false\r\n\t\t});\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t...newTouched\r\n\t\t\t}\r\n\t\t});\r\n\t}, [formState.values, formState.submit]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{isIncidentClosed && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tThis incident is closed.\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tIncident Details\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t _handleChange({ target: { name: 'createdOn', type: 'string', value: date.toISOString() } })}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t _handleChange({ target: { name: 'resolvedOn', type: 'string', value: date.toISOString() } })}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nPagerDutyIncidentDialogForm.propTypes = {\r\n\tincidentId: PropTypes.number,\r\n\tallDisabled: PropTypes.bool\r\n};\r\n\r\nexport default PagerDutyIncidentDialogForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, FilesDropzone, Header, Alert, SelectField } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { Card, CardContent,\tTextField, Grid, Button, colors } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport useRouter from 'utils/useRouter';\r\n\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport PagerDutyIncidentDialogForm from './PagerDutyIncidentDialogForm';\r\n\r\nimport { SetFormState, ToggleIncidentTrackerDialog, CreateIncident, EditIncident } from '../../actions/PagerDutyIncidentsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst PagerDutyIncidentDialog = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst { onClose, open, incidentId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst title = incidentId !== 0 ? 'Edit incident' : 'Create incident';\r\n\tconst confirmLabel = incidentId !== 0 ? 'Edit' : 'Create';\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.pagerDutyIncidentsReducer.formState);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tsetFormState({ ...formState, submit: true });\r\n\t\tif (formState.isValid && incidentId === 0) {\r\n\t\t\tdispatch(CreateIncident({ ...formState.values }));\r\n\t\t\tdispatch(ToggleIncidentTrackerDialog(false, 0));\r\n\t\t} else if (formState.isValid) {\r\n\t\t\tdispatch(EditIncident({ ...formState.values }));\r\n\t\t\tdispatch(ToggleIncidentTrackerDialog(false, 0));\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nPagerDutyIncidentDialog.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\tincidentId: PropTypes.number,\r\n\tsubmitter: PropTypes.string\r\n};\r\n\r\nexport default PagerDutyIncidentDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, FilesDropzone, Header, Alert, SelectField } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { Card, CardContent,\tTextField, Grid, Button, colors } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport useRouter from 'utils/useRouter';\r\n\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport PagerDutyIncidentDialogForm from './PagerDutyIncidentDialogForm';\r\n\r\nimport { SetFormState, DeleteIncident, ToggleDeleteIncidentDialog } from '../../actions/PagerDutyIncidentsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst PagerDutyDeleteIncidentDialog = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst { onClose, open, incidentId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst title = 'Do you want to delete this incident?';\r\n\tconst confirmLabel = 'Delete';\r\n\tconst formState = useSelector((state) => state.pagerDutyIncidentsReducer.formState);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(DeleteIncident(incidentId));\r\n\t\t\tdispatch(ToggleDeleteIncidentDialog(false, 0));\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nPagerDutyDeleteIncidentDialog.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\tincidentId: PropTypes.number,\r\n\tsubmitter: PropTypes.string\r\n};\r\n\r\nexport default PagerDutyDeleteIncidentDialog;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Button, ButtonGroup, Popper, Paper, MenuItem, MenuList, Grow, ClickAwayListener } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport FileDownloadIcon from '@mui/icons-material/FileDownload';\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\nimport PagerDutyIncidentsTable from './components/PagerDutyIncidentsTable';\r\n\r\nimport {\r\n\tGetPagerDutyIncidentsUpdate,\r\n\tGetPagerDutyIncidentsAckUpdate,\r\n\tGetPagerDutyIncidentsTable,\r\n\tDownloadPagerDutyIncidents,\r\n\tDownloadCurrentWeekIncidents,\r\n\tToggleIncidentTrackerDialog,\r\n\tToggleDeleteIncidentDialog\r\n} from '../actions/PagerDutyIncidentsActions.js';\r\nimport PagerDutyIncidentDialog from './components/PagerDutyIncidentDialog';\r\nimport PagerDutyDeleteIncidentDialog from './components/PagerDutyDeleteIncidentDialog';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t}\r\n}));\r\n\r\nconst options = ['Export all', 'Export current week'];\r\n\r\nconst PagerDutyIncidents = () => {\r\n\tconst [open, setOpen] = React.useState(false);\r\n\tconst anchorRef = useRef(null);\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst incidentsTableData = useSelector((state) => state.pagerDutyIncidentsReducer.incidentsTableData);\r\n\tconst incidentsLastUpdate = useSelector((state) => state.pagerDutyIncidentsReducer.incidentsLastUpdate);\r\n\tconst incidentsAckLastUpdate = useSelector((state) => state.pagerDutyIncidentsReducer.incidentsAckLastUpdate);\r\n\tconst incidentTrackerDialogVisibility = useSelector((state) => state.pagerDutyIncidentsReducer.incidentTrackerDialogVisibility);\r\n\tconst deleteIncidentDialogVisibility = useSelector((state) => state.pagerDutyIncidentsReducer.deleteIncidentDialogVisibility);\r\n\tconst selectedIncidentId = useSelector((state) => state.pagerDutyIncidentsReducer.selectedIncidentId);\r\n\r\n\tconst _onExportClick = () => {\r\n\t\tdispatch(DownloadPagerDutyIncidents());\r\n\t};\r\n\r\n\tconst _onCloseIncidentTrackerDialog = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleIncidentTrackerDialog(false, 0));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onCloseDeleteIncidentDialog = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleDeleteIncidentDialog(false, 0));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onCreateIncidentClick = () => {\r\n\t\tdispatch(ToggleIncidentTrackerDialog(true, 0));\r\n\t};\r\n\r\n\tconst handleMenuItemClick = (event, index) => {\r\n\t\tif (index === 0) {\r\n\t\t\t_onExportClick();\r\n\t\t} else {\r\n\t\t\tdispatch(DownloadCurrentWeekIncidents());\r\n\t\t}\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tconst handleToggle = () => {\r\n\t\tsetOpen((prevOpen) => !prevOpen);\r\n\t};\r\n\r\n\tconst handleClose = (event) => {\r\n\t\tif (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetPagerDutyIncidentsUpdate());\r\n\t\tdispatch(GetPagerDutyIncidentsAckUpdate());\r\n\t\tdispatch(GetPagerDutyIncidentsTable());\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tCreate Incident\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonClick={_onExportClick}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tExport Incidents\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{({ TransitionProps, placement }) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{options.map((option, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t handleMenuItemClick(event, index)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{incidentTrackerDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{deleteIncidentDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default PagerDutyIncidents;\r\n","/* eslint-disable react/no-multi-comp */\r\n/* eslint-disable react/display-name */\r\nimport React, { lazy } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nimport AuthGuard from './components/AuthGuard';\r\n\r\nimport AuthLayout from './layouts/Auth';\r\nimport ErrorLayout from './layouts/Error';\r\nimport DashboardLayout from './layouts/Dashboard';\r\nimport DashboardAnalyticsView from './views/DashboardAnalytics';\r\nimport DashboardDefaultView from './views/DashboardDefault';\r\nimport OverviewView from './views/Overview';\r\nimport Home from './views/Home';\r\nimport PresentationView from './views/Presentation';\r\nimport Users from './views/Management/components/Users';\r\nimport Operators from './views/Management/components/Operators';\r\nimport OperatorDetails from './views/Management/components/OperatorDetails';\r\nimport Settings from './views/Management/components/Settings';\r\nimport DashboardInspect from './views/Dashboard/components/Inspect/DashboardInspect.js';\r\nimport PagerDutyIncidents from './views/PagerDutyIncidents/components/PagerDutyIncidents.js';\r\n\r\nconst routes = [\r\n\t{\r\n\t\tpath: '/',\r\n\t\texact: true,\r\n\t\tcomponent: () => ,\r\n\t},\r\n\t{\r\n\t\tpath: '/home',\r\n\t\texact: true,\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\t// projects: ['Operations'],\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '*',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: (props) => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// : ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Home(props)\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}),\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/pagerDutyIncidents',\r\n\t\texact: true,\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\toperator: ['Vantage'],\r\n\t\t\tprojects: ['Vantage SP'],\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '*',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: (props) => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// : ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: PagerDutyIncidents(props)\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}),\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/dashboards',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\toperator: ['Vantage'],\r\n\t\t\tprojects: ['Vantage SP'],\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/executiveSummary',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 7 } }, pageTitle: 'Executive Summary', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/alarms',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 2 } }, pageTitle: 'Alarms', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/incidents/overall',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 6 } }, pageTitle: 'Overall', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/incidents/monthly',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 4 } }, pageTitle: 'Monthly', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/incidents/weekly',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 5 } }, pageTitle: 'Weekly', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/management',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Operators()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators/details',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: OperatorDetails()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/users',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Users(),\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/settings',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\tchildren: Settings()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\r\n\t},\r\n\t{\r\n\t\tpath: '/auth',\r\n\t\tcomponent: AuthLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/login',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/Login')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/completeregistration',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/CompleteRegistration')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/resetpassword',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/ResetPassword')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/recover',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/Recover')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/recoverconfirmation',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/RecoverConfirmation')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tcomponent: () => ,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\tpath: '/errors',\r\n\t\tcomponent: ErrorLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-401',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error401')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-404',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error404')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-500',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error500')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tcomponent: () => ,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport default routes;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useSnackbar } from 'notistack';\r\nimport { removeSnackbar } from 'actions';\r\n\r\nlet displayed = [];\r\n\r\nconst Notifier = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst notifications = useSelector(store => store.notifierReducer.notifications || []);\r\n\tconst { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n\tconst storeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed, id];\r\n\t};\r\n\r\n\tconst removeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed.filter(key => id !== key)];\r\n\t};\r\n\r\n\tReact.useEffect(() => {\r\n\t\tnotifications.forEach(({ key, message, options = {}, dismissed = false }) => {\r\n\t\t\tif (dismissed) {\r\n\t\t\t\t// dismiss snackbar using notistack\r\n\t\t\t\tcloseSnackbar(key);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// do nothing if snackbar is already displayed\r\n\t\t\tif (displayed.includes(key)) return;\r\n\r\n\t\t\t// display snackbar using notistack\r\n\t\t\tenqueueSnackbar(message, {\r\n\t\t\t\tkey,\r\n\t\t\t\t...options,\r\n\t\t\t\tonClose: (event, reason, myKey) => {\r\n\t\t\t\t\tif (options.onClose) {\r\n\t\t\t\t\t\toptions.onClose(event, reason, myKey);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tonExited: (event, myKey) => {\r\n\t\t\t\t\t// remove this snackbar from redux store\r\n\t\t\t\t\tdispatch(removeSnackbar(myKey));\r\n\t\t\t\t\tremoveDisplayed(myKey);\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\t// keep track of snackbars that we've displayed\r\n\t\t\tstoreDisplayed(key);\r\n\t\t});\r\n\t}, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default Notifier;\r\n","import { Chart } from 'react-chartjs-2';\r\n\r\n// ChartJS extension rounded bar chart\r\n// https://codepen.io/jedtrow/full/ygRYgo\r\nfunction draw() {\r\n\tconst { ctx } = this._chart;\r\n\tconst vm = this._view;\r\n\tlet { borderWidth } = vm;\r\n\r\n\tlet left;\r\n\tlet right;\r\n\tlet top;\r\n\tlet bottom;\r\n\tlet signX;\r\n\tlet signY;\r\n\tlet borderSkipped;\r\n\tlet radius;\r\n\r\n\t// If radius is less than 0 or is large enough to cause drawing errors a max\r\n\t// radius is imposed. If cornerRadius is not defined set it to 0.\r\n\tlet { cornerRadius } = this._chart.config.options;\r\n\tif (cornerRadius < 0) {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (typeof cornerRadius === 'undefined') {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (!vm.horizontal) {\r\n\t\t// bar\r\n\t\tleft = vm.x - vm.width / 2;\r\n\t\tright = vm.x + vm.width / 2;\r\n\t\ttop = vm.y;\r\n\t\tbottom = vm.base;\r\n\t\tsignX = 1;\r\n\t\tsignY = bottom > top ? 1 : -1;\r\n\t\tborderSkipped = vm.borderSkipped || 'bottom';\r\n\t} else {\r\n\t\t// horizontal bar\r\n\t\tleft = vm.base;\r\n\t\tright = vm.x;\r\n\t\ttop = vm.y - vm.height / 2;\r\n\t\tbottom = vm.y + vm.height / 2;\r\n\t\tsignX = right > left ? 1 : -1;\r\n\t\tsignY = 1;\r\n\t\tborderSkipped = vm.borderSkipped || 'left';\r\n\t}\r\n\r\n\t// Canvas doesn't allow us to stroke inside the width so we can\r\n\t// adjust the sizes to fit if we're setting a stroke on the line\r\n\tif (borderWidth) {\r\n\t\t// borderWidth shold be less than bar width and bar height.\r\n\t\tconst barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n\t\tconst halfStroke = borderWidth / 2;\r\n\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\r\n\t\tconst borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n\t\tconst borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n\t\tconst borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n\t\tconst borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n\t\t// not become a vertical line?\r\n\t\tif (borderLeft !== borderRight) {\r\n\t\t\ttop = borderTop;\r\n\t\t\tbottom = borderBottom;\r\n\t\t}\r\n\t\t// not become a horizontal line?\r\n\t\tif (borderTop !== borderBottom) {\r\n\t\t\tleft = borderLeft;\r\n\t\t\tright = borderRight;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.fillStyle = vm.backgroundColor;\r\n\tctx.strokeStyle = vm.borderColor;\r\n\tctx.lineWidth = borderWidth;\r\n\r\n\t// Corner points, from bottom-left to bottom-right clockwise\r\n\t// | 1 2 |\r\n\t// | 0 3 |\r\n\tconst corners = [\r\n\t\t[left, bottom],\r\n\t\t[left, top],\r\n\t\t[right, top],\r\n\t\t[right, bottom],\r\n\t];\r\n\r\n\t// Find first (starting) corner with fallback to 'bottom'\r\n\tconst borders = ['bottom', 'left', 'top', 'right'];\r\n\tlet startCorner = borders.indexOf(borderSkipped, 0);\r\n\tif (startCorner === -1) {\r\n\t\tstartCorner = 0;\r\n\t}\r\n\r\n\tfunction cornerAt(index) {\r\n\t\treturn corners[(startCorner + index) % 4];\r\n\t}\r\n\r\n\t// Draw rectangle from 'startCorner'\r\n\tlet corner = cornerAt(0);\r\n\tctx.moveTo(corner[0], corner[1]);\r\n\r\n\tfor (let i = 1; i < 4; i += 1) {\r\n\t\tcorner = cornerAt(i);\r\n\t\tlet nextCornerId = i + 1;\r\n\t\tif (nextCornerId === 4) {\r\n\t\t\tnextCornerId = 0;\r\n\t\t}\r\n\r\n\t\tconst width = corners[2][0] - corners[1][0];\r\n\t\tconst height = corners[0][1] - corners[1][1];\r\n\t\tconst x = corners[1][0];\r\n\t\tconst y = corners[1][1];\r\n\r\n\t\tradius = cornerRadius;\r\n\t\t// Fix radius being too large\r\n\t\tif (radius > Math.abs(height) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(height) / 2);\r\n\t\t}\r\n\t\tif (radius > Math.abs(width) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(width) / 2);\r\n\t\t}\r\n\r\n\t\tif (height < 0) {\r\n\t\t\t// Negative values in a standard bar chart\r\n\t\t\tconst xTl = x;\r\n\t\t\tconst xTr = x + width;\r\n\t\t\tconst yTl = y + height;\r\n\t\t\tconst yTr = y + height;\r\n\r\n\t\t\tconst xBl = x;\r\n\t\t\tconst xBr = x + width;\r\n\t\t\tconst yBl = y;\r\n\t\t\tconst yBr = y;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else if (width < 0) {\r\n\t\t\t// Negative values in a horizontal bar chart\r\n\t\t\tconst xTl = x + width;\r\n\t\t\tconst xTr = x;\r\n\t\t\tconst yTl = y;\r\n\t\t\tconst yTr = y;\r\n\r\n\t\t\tconst xBl = x + width;\r\n\t\t\tconst xBr = x;\r\n\t\t\tconst yBl = y + height;\r\n\t\t\tconst yBr = y + height;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else {\r\n\t\t\t// Positive Value\r\n\t\t\tctx.moveTo(x + radius, y);\r\n\t\t\tctx.lineTo(x + width - radius, y);\r\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n\t\t\tctx.lineTo(x + width, y + height - radius);\r\n\t\t\tctx.quadraticCurveTo(\r\n\t\t\t\tx + width,\r\n\t\t\t\ty + height,\r\n\t\t\t\tx + width - radius,\r\n\t\t\t\ty + height\r\n\t\t\t);\r\n\t\t\tctx.lineTo(x + radius, y + height);\r\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n\t\t\tctx.lineTo(x, y + radius);\r\n\t\t\tctx.quadraticCurveTo(x, y, x + radius, y);\r\n\t\t}\r\n\t}\r\n\r\n\tctx.fill();\r\n\tif (borderWidth) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n\tdraw,\r\n});\r\n","import moment from 'moment';\r\n\r\nmoment.updateLocale('en', {\r\n\trelativeTime: {\r\n\t\tfuture: 'in %s',\r\n\t\tpast: '%s ago',\r\n\t\ts: 'seconds',\r\n\t\tss: '%ss',\r\n\t\tm: '1m',\r\n\t\tmm: '%dm',\r\n\t\th: '1h',\r\n\t\thh: '%dh',\r\n\t\td: '1d',\r\n\t\tdd: '%dd',\r\n\t\tM: '1M',\r\n\t\tMM: '%dM',\r\n\t\ty: '1Y',\r\n\t\tyy: '%dY',\r\n\t},\r\n});\r\n","/* eslint-disable consistent-return */\r\nimport validate from 'validate.js';\r\n\r\nconst regex = (value, options) => {\r\n\tconst regExp = new RegExp(options.pattern);\r\n\r\n\tif (!regExp.test(value)) {\r\n\t\treturn options.message;\r\n\t}\r\n};\r\n\r\nconst checked = (value, options) => {\r\n\tif (value !== true) {\r\n\t\treturn options.message || 'must be checked';\r\n\t}\r\n};\r\n\r\nvalidate.validators = {\r\n\t...validate.validators,\r\n\tregex,\r\n\tchecked,\r\n};\r\n","import AxiosMockAdapter from 'axios-mock-adapter';\r\n\r\nimport axios from './axios';\r\n\r\nconst instance = new AxiosMockAdapter(axios, { delayResponse: 0 });\r\n\r\nexport default instance;\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/account/profile').reply(200, {\r\n\tprofile: {\r\n\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\tcanHire: false,\r\n\t\tcountry: 'USA',\r\n\t\temail: 'shen.zhi@devias.io',\r\n\t\tfirstName: 'Shen',\r\n\t\tisPublic: true,\r\n\t\tlastName: 'Zhi',\r\n\t\tphone: '+40 777666555',\r\n\t\tstate: 'Alabama',\r\n\t\ttimezone: '4:32PM (GMT-4)',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/statistics').reply(200, {\r\n\tstatistics: {\r\n\t\tpayout: '4,250',\r\n\t\tprojects: '12,500',\r\n\t\tvisitors: '230',\r\n\t\twatching: '5',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '3K - 6K',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/todos').reply(200, {\r\n\ttodos: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment().subtract(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Upload the files for the client @Adrian Stefan with the fonts, assets exported and all the fancy svgs',\r\n\t\t\tdeadline: moment().add(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Re-write the card component with hooks and context',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Send proposal for the fintech project',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Create todo app with react hooks just to get a better understanding of the concept',\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t\tdone: true,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/notifications').reply(200, {\r\n\tnotifications: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New order has been received',\r\n\t\t\ttype: 'order',\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New customer is registered',\r\n\t\t\ttype: 'user',\r\n\t\t\tcreated_at: moment().subtract(1, 'day'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Project has been approved',\r\n\t\t\ttype: 'project',\r\n\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New feature has been added',\r\n\t\t\ttype: 'feature',\r\n\t\t\tcreated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/subscription').reply(200, {\r\n\tsubscription: {\r\n\t\tname: 'Freelancer',\r\n\t\tprice: '5',\r\n\t\tcurrency: '$',\r\n\t\tproposalsLeft: 12,\r\n\t\ttemplatesLeft: 5,\r\n\t\tinvitesLeft: 24,\r\n\t\tadsLeft: 10,\r\n\t\thasAnalytics: true,\r\n\t\thasEmailAlerts: true,\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/settings').reply(200, {\r\n\tsettings: {},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/calendar').reply(200, {\r\n\tdraft: [],\r\n\tevents: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Samantha',\r\n\t\t\tdesc: 'Inform about new contract',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-01 16:55:00'),\r\n\t\t\tend: moment('2019-07-01 17:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Meet with IBM',\r\n\t\t\tdesc: 'Discuss about new partnership',\r\n\t\t\tstart: moment('2019-07-03 08:55:00'),\r\n\t\t\tend: moment('2019-07-04 15:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'SCRUM Planning',\r\n\t\t\tdesc: 'Prepare documentation',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-14 16:55:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Beign SEM',\r\n\t\t\tdesc: 'Meet with team to discuss',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-18 07:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Fire John',\r\n\t\t\tdesc: 'Sorry, John',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-20 08:55:00'),\r\n\t\t\tend: moment('2019-07-20 09:30:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Alex',\r\n\t\t\tdesc: 'Discuss about the new project',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Visit Samantha',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tdesc: 'Get a new quote for the payment processor',\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t\tend: moment('2019-07-30 09:00:00'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/chat/conversations').reply(200, {\r\n\tconversations: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t\tlastActivity: moment(),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(10, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t'I would need to know more details, but my hourly rate stats at $35/hour. Thanks!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Well it's a really easy one, I'm sure we can make it half of the price.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Then why don't you make it if it's that easy? Sorry I'm not interetes, have fantastic day Adam!\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Last offer, $25 per hour',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: '/images/projects/project_1.jpg',\r\n\t\t\t\t\tcontentType: 'image',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey, would you like to collaborate?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(6, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I don't think that's ideal\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 3,\r\n\t\t\tcreated_at: moment().subtract(26, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(2, 'minutes'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hi Shen, we should submit the product today',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Oh, totally forgot about it',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t\t\t.subtract(2, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Alright then',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'hour'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hi Kwak! I've seen your projects and we can work together on a project. Will send you the details later.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha, right, we'll do it\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 1,\r\n\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(4, 'hours'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Did you receive my email about the brief?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I'm not sure, but I will check it later\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey Shen! I love your projects!!!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha thank you Clarke, I'm doing our best\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/chat/activity').reply(200, {\r\n\tgroups: [\r\n\t\t{\r\n\t\t\tid: 'clients',\r\n\t\t\tname: 'Clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'friends',\r\n\t\t\tname: 'Friends',\r\n\t\t},\r\n\t],\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(1, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/management/customers').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'West Virginia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '3',\r\n\t\t\trating: 4.3,\r\n\t\t\tlocation: 'Bristow',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tspent: '2,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Georgia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\temail: 'anje.keizer@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tspent: '5,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '6',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'Ohio, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 3.5,\r\n\t\t\tlocation: 'Texas, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tspent: '5,230.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\temail: 'ava.gregoraci@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\temail: 'emilee.simchenko@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tspent: '100.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '4',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Nevada, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\temail: 'kwak.seong.min@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tspent: '1,000.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '2',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'Michigan, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\temail: 'shen.zhi@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tspent: '2,300.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3.9,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tspent: '200.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '7',\r\n\t\t\trating: 4.2,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/summary').reply(200, {\r\n\tsummary: {\r\n\t\tname: 'Ekaterina Tankova',\r\n\t\temail: 'ekaterina@devias.io',\r\n\t\tphone: '+55 748 327 439',\r\n\t\tstate: 'Alabama',\r\n\t\tcountry: 'United States',\r\n\t\tzipCode: '240355',\r\n\t\taddress1: 'Street John Wick, no. 7',\r\n\t\taddress2: 'House #25',\r\n\t\tiban: '4142 **** **** **** ****',\r\n\t\tautoCC: false,\r\n\t\tverified: true,\r\n\t\tcurrency: '$',\r\n\t\tinvoices: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 15.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'due',\r\n\t\t\t\tvalue: 5,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'income',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t],\r\n\t\tvat: 19,\r\n\t\tbalance: 0,\r\n\t\temails: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(3, 'days')\r\n\t\t\t\t\t.subtract(5, 'hours')\r\n\t\t\t\t\t.subtract(34, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(4, 'days')\r\n\t\t\t\t\t.subtract(11, 'hours')\r\n\t\t\t\t\t.subtract(49, 'minutes'),\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/invoices').reply(200, {\r\n\tinvoices: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/logs').reply(200, {\r\n\tlogs: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 522,\r\n\t\t\terror: 'Invalid credit card',\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'DELETE',\r\n\t\t\troute: '/api/products/d65654e/remove',\r\n\t\t\tdesc: 'Cart remove',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(8, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/d65654e/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(20, 'minutes')\r\n\t\t\t\t.subtract(54, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(34, 'minutes')\r\n\t\t\t\t.subtract(16, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f',\r\n\t\t\tdesc: 'View product',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(54, 'minutes')\r\n\t\t\t\t.subtract(30, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products',\r\n\t\t\tdesc: 'Get products',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(56, 'minutes')\r\n\t\t\t\t.subtract(40, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/login',\r\n\t\t\tdesc: 'Login',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(5, 'seconds'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/mail').reply(200, {\r\n\temails: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Business',\r\n\t\t\t\t\tcolor: colors.blue[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Personal',\r\n\t\t\t\t\tcolor: colors.orange[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tsubject: 'Website redesign. Interested in collaboration',\r\n\t\t\tmessage: `\r\nHi Matt, I saw your work on instagram and would be interested in getting a quote for Logo and slider\r\n\r\nInteger velit massa, pharetra sed lacus eu, pulvinar faucibus ex. Ut pretium ex id turpis elementum, aliquam accumsan enim sollicitudin. Sed nec consectetur lorem, ac ullamcorper augue. Suspendisse tempus ligula suscipit finibus vehicula. Morbi viverra finibus lectus, egestas dictum mi mollis nec. Proin eget vehicula eros, sit amet molestie ipsum. Morbi feugiat, elit non placerat fringilla, leo risus tristique felis, sollicitudin tristique nibh arcu nec arcu. Maecenas vel turpis nibh. Etiam in lectus quis felis facilisis dictum. Morbi id vehicula lectus, vel imperdiet dolor. Phasellus consequat tempor tellus, quis placerat quam posuere eget. Mauris blandit, nisl eu sollicitudin tincidunt, tellus diam accumsan arcu, vel pharetra lectus est nec nisi. In sem dolor, mollis sed risus eu, mattis dictum lectus. Suspendisse urna est, finibus et urna non, tincidunt placerat eros.\r\n\r\nDonec viverra ipsum id auctor rutrum. Morbi consequat a nunc non interdum. Nulla accumsan eget felis a dictum. Cras rhoncus tortor eget velit fringilla suscipit. Donec quis arcu eu nibh aliquet auctor eget fringilla felis. Sed commodo efficitur massa. Proin maximus elit in suscipit laoreet. Integer pretium arcu ac mauris ullamcorper auctor. Vivamus tincidunt lacus eget purus feugiat tincidunt. Etiam feugiat gravida ullamcorper. Pellentesque cursus vehicula lectus et consectetur. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam ligula risus, congue eu pellentesque id, volutpat aliquam arcu. Donec efficitur ipsum id neque rhoncus viverra. Vestibulum hendrerit et eros eu bibendum.\r\n\r\n\r\nKind regards,\r\n\r\nEkaterina Tankova\r\n\t `,\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Amazing work',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tsubject: 'Flight reminder',\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Work',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tmessage:\r\n\t\t\t\t'Dear Shen, Your flight is coming up soon. Please don’t forget to check in for your scheduled flight.',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Posible candidates for the position',\r\n\t\t\tmessage:\r\n\t\t\t\t'My market leading client has another fantastic opportunity for an experienced Software Developer to join them on a heavily remote basis',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 5,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 3,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 8,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 10,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Canceled',\r\n\t\t\tmembers: 2,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Kalli UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 12,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/projects/1').reply(200, {\r\n\tproject: {\r\n\t\ttitle: 'Develop a PDF Export App',\r\n\t\tauthor: {\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tbio: 'We build beautiful functional themes for web professionals',\r\n\t\t},\r\n\t\tbrief: `\r\n#### TL;DR\r\n\r\nThe primary aim of the product is to convert survery responses into PDF reports, these reports are generated on to what we call templates. This product is designer to work with 3rd party survery providers. The first MVP will integrate with TypeForm, because the's no direct way to convert results to PDF from the form people create in TypeForm and then ask users to fill out.\r\n\r\n#### Background information\r\n\r\nDesign files are attachedin the files tab.\r\n\r\nDevelop the web app screens for our product called \"PDFace\". Please look at the wireframes, system activity workflow and read the section above to understand what we're trying to archive.\r\n\r\nThere's not many screens we need designed, but there will be modals and various other system triggered evenets that will need to be considered.\r\n\r\nThe project has benn created in Sketch so let me know if there are any problmes opening this project and I'll try to convert into a usable file.\r\n\r\nI have attached a chat with our users most used devices.\r\n\r\n#### Goals:\r\n - Maintainable Code\r\n - Easy UX\r\n - Readable Code\r\n - No Redux\r\n\t`,\r\n\t\tprice: '12,500',\r\n\t\tcurrency: 'USD',\r\n\t\ttags: [\r\n\t\t\t{\r\n\t\t\t\ttext: 'React JS',\r\n\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t},\r\n\t\t],\r\n\t\tmembers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tbio: 'Front End Developer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tbio: 'UX Designer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\tbio: 'Copyright',\r\n\t\t\t},\r\n\t\t],\r\n\t\tfiles: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project1.jpg',\r\n\t\t\t\turl: '/images/projects/project_2.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 3,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'docs.zip',\r\n\t\t\t\turl: '#',\r\n\t\t\t\tmimeType: 'application/zip',\r\n\t\t\t\tsize: 1024 * 1024 * 25,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project2.jpg',\r\n\t\t\t\turl: '/images/projects/project_1.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 2,\r\n\t\t\t},\r\n\t\t],\r\n\t\tactivities: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'upload_file',\r\n\t\t\t\taction_desc: 'has uploaded a new file',\r\n\t\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Adrian Stefan',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Front-End Developer',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Alexandru Robert',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Full Stack Developer',\r\n\t\t\t\tcreated_at: moment().subtract(9, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'price_change',\r\n\t\t\t\taction_desc: 'raised the project budget',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Contest',\r\n\t\t\t\tsubject_type: 'project',\r\n\t\t\t\taction_type: 'contest_created',\r\n\t\t\t\taction_desc: 'created',\r\n\t\t\t\tcreated_at: moment().subtract(4, 'days'),\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubscribers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tcover: '/images/covers/cover_1.jpg',\r\n\t\t\t\tcommon_connections: 12,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Experience',\r\n\t\t\t\t\t'FrontEnd development',\r\n\t\t\t\t\t'HTML5',\r\n\t\t\t\t\t'VueJS',\r\n\t\t\t\t\t'ReactJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 5,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Interface',\r\n\t\t\t\t\t'FullStack development',\r\n\t\t\t\t\t'Angular',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 17,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'BackEnd development',\r\n\t\t\t\t\t'Firebase',\r\n\t\t\t\t\t'MongoDB',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t],\r\n\t\tdeadline: moment().add(7, 'days'),\r\n\t\tupdated_at: moment().subtract(23, 'minutes'),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/social-feed').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tmessage: \"Hey guys! What's your favorite framework?\",\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 1,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: \"I've been using Angular for the past 3 years\",\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(16, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'Oh... so sentimental',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/users').reply(200, {\r\n\tusers: [],\r\n});\r\n\r\nmock.onGet('/api/users/1/posts').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'It looks nice',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/reviews').reply(200, {\r\n\treviews: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 4,\r\n\t\t\tmessage:\r\n\t\t\t\t'Shen was really great during the all time session we created the project',\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\t\tprice: '5,240.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '43.00',\r\n\t\t\thours: 31,\r\n\t\t\tcurrency: '$',\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 5,\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Dashboard Design',\r\n\t\t\t\tprice: '3,680.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '38.00',\r\n\t\t\thours: 76,\r\n\t\t\tcurrency: '$',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Being the savage's bowsman, that is, the person who pulled the bow-oar in his boat (the second one from forward), it was my cheerful duty to attend upon him while taking that hard-scrabble scramble upon the dead whale's back. You have seen Italian organ-boys holding a dancing-ape by a long cord. Just so, from the ship's steep side, did I hold Queequeg down there in the sea, by what is technically called in the fishery a monkey-rope, attached to a strong strip of canvas belted round his waist.\",\r\n\t\t\tcreated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/connections').reply(200, {\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tcommon: 12,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tcommon: 10,\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tcommon: 8,\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tcommon: 5,\r\n\t\t\tstatus: 'not_connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tcommon: 1,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/invoices').reply(200, {\r\n\tinvoices: [],\r\n});\r\n\r\nmock.onGet('/api/invoices/1').reply(200, {\r\n\tinvoice: {\r\n\t\tid: uuid(),\r\n\t\tdue_date: moment(),\r\n\t\tissue_date: moment().add(15, 'days'),\r\n\t\tref: 'DEV-9483',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Tracey Herman',\r\n\t\t\tcompany: 'Countdown Grey Lynn',\r\n\t\t\tnzbn: '6934656584231',\r\n\t\t\taddress: '271 Richmond Rd, Grey Lynn, Auckland 1022, New Zealand',\r\n\t\t},\r\n\t\tproducts: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdesc: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\t\tvalue: '55.50',\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubtotal: '50.00',\r\n\t\ttaxes: '5.50',\r\n\t\ttotal: '55.50',\r\n\t\tcurrency: '$',\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/kanban').reply(200, {\r\n\tlists: [\r\n\t\t{\r\n\t\t\tid: 'incoming',\r\n\t\t\ttitle: 'Incoming',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_progress',\r\n\t\t\ttitle: 'In progress',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_review',\r\n\t\t\ttitle: 'In review',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'completed',\r\n\t\t\ttitle: 'Completed',\r\n\t\t},\r\n\t],\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '38',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Call with sales of HubSpot',\r\n\t\t\tdesc:\r\n\t\t\t\t'Duis condimentum lacus finibus felis pellentesque, ac auctor nibh fermentum. Duis sed dui ante. Phasellus id eros tincidunt, dictum lorem vitae, pellentesque sem. Aenean eu enim sit amet mauris rhoncus mollis. Sed enim turpis, porta a felis et, luctus faucibus nisi. Phasellus et metus fermentum, ultrices arcu aliquam, facilisis justo. Cras nunc nunc, elementum sed euismod ut, maximus eget nibh. Phasellus condimentum lorem neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce sagittis pharetra eleifend. Suspendisse potenti.',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_1.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '37',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Interview for the Asis. Sales Manager',\r\n\t\t\tdesc:\r\n\t\t\t\t'We are looking for vue experience and of course node js strong knowledge',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(6, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '39',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_11.png'],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '19',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(4, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '15',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Update the customer API for payments',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_10.png'],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 60,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '10',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_11.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 76,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '24',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '21',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '17',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Design Customer Management Page',\r\n\t\t\tdesc:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 3,\r\n\t\t\tcomments: 3,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '23',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Integrate Messaging API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 1,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/tasks').reply(200, {\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Update the API for the project',\r\n\t\t\tdeadline: moment().add(1, 'days').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_7.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdeadline: moment().add(2, 'day').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_12.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Solve the bug for the showState',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tmembers: ['/images/avatars/avatar_7.png'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Release v1.0 Beta',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'GDPR Compliance',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign Landing Page',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: ['/images/avatars/avatar_8.png'],\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(10, 'minutes'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD103',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(32, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD102',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(36, 'minutes')\r\n\t\t\t\t.subtract(51, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD101',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(38, 'minutes')\r\n\t\t\t\t.subtract(55, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD100',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(40, 'minutes').subtract(3, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD99',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(45, 'minutes')\r\n\t\t\t\t.subtract(32, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD98',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(48, 'minutes')\r\n\t\t\t\t.subtract(57, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD97',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(49, 'minutes').subtract(4, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD96',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD95',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'rejected',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(59, 'minutes').subtract(6, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD94',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t.subtract(15, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD93',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/orders/1').reply(200, {\r\n\torder: {\r\n\t\tid: uuid(),\r\n\t\tref: 'FAD107',\r\n\t\tpromoCode: null,\r\n\t\tvalue: '55.25',\r\n\t\tcurrency: '$',\r\n\t\tstatus: 'canceled',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\taddress: 'Street King William, 42456',\r\n\t\t\tcity: 'Montgomery',\r\n\t\t\tcountry: 'United States',\r\n\t\t},\r\n\t\titems: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Project Points',\r\n\t\t\t\tcuantity: 25,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '50.25',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Freelancer Subscription',\r\n\t\t\t\tcuantity: 1,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '5.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t],\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/dashboard/top-referrals').reply(200, {\r\n\treferrals: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['700'],\r\n\t\t\tname: 'GitHub',\r\n\t\t\tinitials: 'GT',\r\n\t\t\tvalue: '53,032',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.cyan['500'],\r\n\t\t\tname: 'Twitter',\r\n\t\t\tinitials: 'TW',\r\n\t\t\tvalue: '39,551',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.indigo[600],\r\n\t\t\tname: 'Hacker News',\r\n\t\t\tinitials: 'HN',\r\n\t\t\tvalue: '23,150',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.red['500'],\r\n\t\t\tname: 'Stack Overflow',\r\n\t\t\tinitials: 'SO',\r\n\t\t\tvalue: '14,093',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.orange['900'],\r\n\t\t\tname: 'Reddit.com',\r\n\t\t\tinitials: 'RD',\r\n\t\t\tvalue: '7,251',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Dev.to',\r\n\t\t\tinitials: 'DE',\r\n\t\t\tvalue: '5,694',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blue['900'],\r\n\t\t\tname: 'Facebook',\r\n\t\t\tinitials: 'FB',\r\n\t\t\tvalue: '3,643',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Medium',\r\n\t\t\tinitials: 'MD',\r\n\t\t\tvalue: '1,654',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/profitable-products').reply(200, {\r\n\tproducts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_basic',\r\n\t\t\tname: 'Freelancer Basic Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '13,153',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '5.00',\r\n\t\t\tprogress: 93,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_extra',\r\n\t\t\tname: 'Freelancer Extra Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '10,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '15.00',\r\n\t\t\tprogress: 76,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'agency_basic',\r\n\t\t\tname: 'Agency Basic Subscription',\r\n\t\t\timage: '/images/products/product_agency.svg',\r\n\t\t\tsubscriptions: '5,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '25.00',\r\n\t\t\tprogress: 60,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_basic',\r\n\t\t\tname: 'Enterprise Basic Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '1,203',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '205.00',\r\n\t\t\tprogress: 46,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_extra',\r\n\t\t\tname: 'Enterprise Extra Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '254',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '500.00',\r\n\t\t\tprogress: 41,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/customer-activity').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(56, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/earnings').reply(200, {\r\n\tearnings: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Subscriptions',\r\n\t\t\tvalue: 56,\r\n\t\t\tcolor: colors.indigo[500],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Afiliate',\r\n\t\t\tvalue: 24,\r\n\t\t\tcolor: colors.indigo[300],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Sales',\r\n\t\t\tvalue: 20,\r\n\t\t\tcolor: colors.indigo[100],\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1042',\r\n\t\t\titems: 7,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1041',\r\n\t\t\titems: 8,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1040',\r\n\t\t\titems: 4,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1039',\r\n\t\t\titems: 1,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\temail: 'anje.keiser@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1038',\r\n\t\t\titems: 5,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1037',\r\n\t\t\titems: 2,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t],\r\n});\r\n","import React from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { createBrowserHistory } from 'history';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport { Provider as StoreProvider } from 'react-redux';\r\nimport { StyledEngineProvider, ThemeProvider } from '@mui/material/styles';\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport jwt from 'jwt-decode';\r\nimport { DateEnv } from '@fullcalendar/core';\r\nimport config from 'configuration/configuration.js';\r\nimport theme from './theme';\r\nimport { configureStore } from './store';\r\nimport routes from './routes';\r\nimport { getUserInfo } from './actions';\r\nimport { Loading, ScrollReset, GoogleAnalytics, CookiesNotification } from './components';\r\nimport Notifier from './components/Notifier/Notifier';\r\nimport './mixins/chartjs';\r\nimport './mixins/moment';\r\nimport './mixins/validate';\r\nimport './mixins/prismjs';\r\nimport './mock';\r\nimport './assets/scss/index.scss';\r\n\r\nimport { interceptor } from './utils/AxiosRequest';\r\n\r\nconst history = createBrowserHistory({ basename: process.env.PUBLIC_URL });\r\nconst store = configureStore();\r\ninterceptor(store);\r\n\r\nconst App = () => {\r\n\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\tif (token) {\r\n\t\tconst decoded = jwt(token);\r\n\t\tconst currentDate = new Date().getTime() / 1000;\r\n\t\tif (decoded.exp > currentDate) {\r\n\t\t\tstore.dispatch(getUserInfo(token));\r\n\t\t}\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderRoutes(routes)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default App;\r\n","import { applyMiddleware, createStore, compose } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\n// import { createLogger } from 'redux-logger';\r\nimport rootReducer from 'reducers';\r\n// const loggerMiddleware = createLogger();\r\n\r\nexport default function configureStore(preloadedState = {}) {\r\n\tconst middlewares = [thunkMiddleware]; // loggerMiddleware\r\n\tconst middlewareEnhancer = composeWithDevTools(\r\n\t\tapplyMiddleware(...middlewares)\r\n\t);\r\n\r\n\tconst enhancers = [middlewareEnhancer];\r\n\tconst composedEnhancers = compose(...enhancers);\r\n\r\n\tconst store = createStore(rootReducer, preloadedState, composedEnhancers);\r\n\r\n\treturn store;\r\n}\r\n","/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in projection, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n\twindow.location.hostname === 'localhost'\r\n\t// [::1] is the IPv6 localhost address.\r\n\t|| window.location.hostname === '[::1]'\r\n\t// 127.0.0.1/8 is considered localhost for IPv4.\r\n\t|| window.location.hostname.match(\r\n\t\t/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n\t)\r\n);\r\n\r\nexport function register(config) {\r\n\tif (process.env.NODE_ENV === 'projection' && 'serviceWorker' in navigator) {\r\n\t\t// The URL constructor is available in all browsers that support SW.\r\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n\t\tif (publicUrl.origin !== window.location.origin) {\r\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\r\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\r\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('load', () => {\r\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n\t\t\tif (isLocalhost) {\r\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\r\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\r\n\r\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\r\n\t\t\t\t// service worker/PWA documentation.\r\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t'This web app is being served cache-first by a service '\r\n\t\t\t\t\t\t+ 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Is not localhost. Just register service worker\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n\tnavigator.serviceWorker\r\n\t\t.register(swUrl)\r\n\t\t.then((registration) => {\r\n\t\t\tregistration.onupdatefound = () => {\r\n\t\t\t\tconst installingWorker = registration.installing;\r\n\t\t\t\tif (installingWorker == null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tinstallingWorker.onstatechange = () => {\r\n\t\t\t\t\tif (installingWorker.state === 'installed') {\r\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\r\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\r\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\r\n\t\t\t\t\t\t\t// content until all client tabs are closed.\r\n\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t'New content is available and will be used when all '\r\n\t\t\t\t\t\t\t\t+ 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\r\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// At this point, everything has been precached.\r\n\t\t\t\t\t\t\t// It's the perfect time to display a\r\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\r\n\t\t\t\t\t\t\tconsole.log('Content is cached for offline use.');\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\r\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tconsole.error('Error during service worker registration:', error);\r\n\t\t});\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n\t// Check if the service worker can be found. If it can't reload the page.\r\n\tfetch(swUrl)\r\n\t\t.then((response) => {\r\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\r\n\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\tif (\r\n\t\t\t\tresponse.status === 404\r\n\t\t\t\t|| (contentType != null\r\n\t\t\t\t\t&& contentType.indexOf('javascript') === -1)\r\n\t\t\t) {\r\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\r\n\t\t\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\t\t\tregistration.unregister().then(() => {\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Service worker found. Proceed as normal.\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(() => {\r\n\t\t\tconsole.log(\r\n\t\t\t\t'No internet connection found. App is running in offline mode.'\r\n\t\t\t);\r\n\t\t});\r\n}\r\n\r\nexport function unregister() {\r\n\tif ('serviceWorker' in navigator) {\r\n\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\tregistration.unregister();\r\n\t\t});\r\n\t}\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.unregister();\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport { makeStyles } from '@mui/styles';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tchips: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tchip: {\r\n\t\tmargin: theme.spacing(0.25),\r\n\t},\r\n}));\r\n\r\nconst SelectField = (props) => {\r\n\tconst { id, name, value, error = false, onChange, hintText, menuItems, isMultiSelect = false, customRenderValue, formControlStyle, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst [labelWidth, setLabelWidth] = useState(0);\r\n\tconst InputLabelRef = useRef(undefined);\r\n\tuseEffect(() => {\r\n\t\tsetLabelWidth(InputLabelRef.current ? InputLabelRef.current.offsetWidth : 0);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\tInputLabelRef.current = ref;\r\n\t\t\t\t}}\r\n\t\t\t\thtmlFor={`${hintText}_selectField_input_id`}\r\n\t\t\t>\r\n\t\t\t\t{hintText}\r\n\t\t\t\r\n\t\t\t {\r\n\t\t\t\t\tconst selectedText = menuItems.filter((item) => selected.indexOf(item.value) !== -1);\r\n\t\t\t\t\treturn selectedText.map(item => item.text).join(', ');\r\n\t\t\t\t} : false}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t{\r\n\t\t\t\t\t!isMultiSelect && menuItems.map((item, i) => ({item.text}))\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tisMultiSelect && menuItems.map((item, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t -1} />\r\n\t\t\t\t\t\t\t{item.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t{\r\n\t\t\t\terror && (\r\n\t\t\t\t\t{error}\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t\r\n\t);\r\n};\r\n\r\nSelectField.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\tvalue: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.number\r\n\t]),\r\n\tname: PropTypes.string,\r\n\terror: PropTypes.any,\r\n\tonChange: PropTypes.func.isRequired,\r\n\thintText: PropTypes.string.isRequired,\r\n\tmenuItems: PropTypes.array.isRequired,\r\n\tclasses: PropTypes.object,\r\n\tisMultiSelect: PropTypes.bool,\r\n\tcustomRenderValue: PropTypes.func,\r\n\tformControlStyle: PropTypes.object\r\n};\r\n\r\nexport default SelectField;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { createTheme, ThemeProvider, StyledEngineProvider, adaptV4Theme } from '@mui/material/styles';\r\n\r\nconst DataTable = (props) => {\r\n\tconst {\r\n\t\tid,\r\n\t\ttitle = '',\r\n\t\tdata = [],\r\n\t\tcolumns = [],\r\n\t\toptions,\r\n\t\t// pagination = true,\r\n\t\tshowDownload = false, // show download icon button\r\n\t\tshowPrint = false, // show print icon button\r\n\t\tselectableRows = 'none', // multiple, single, none\r\n\t\trowsPerPage = 20, // number of rows displayed by page\r\n\t\tfilterType = 'multiselect', // filter type can be multiselect, texfield, etc.,\r\n\t\ttableBodyMaxHeight = '40em',\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst getMuiTheme = (outerTheme) => {\r\n\t\tconst {\r\n\t\t\ttableBodyCellMaxWidth,\r\n\t\t\tactionColumnWidth\r\n\t\t} = props;\r\n\r\n\t\treturn createTheme(adaptV4Theme({\r\n\t\t\t...outerTheme,\r\n\t\t\toverrides: {\r\n\t\t\t\tMUIDataTable: {},\r\n\t\t\t\tMUIDataTableHead: {},\r\n\t\t\t\tMUIDataTableHeadCell: {},\r\n\t\t\t\tMUIDataTableHeadRow: {},\r\n\t\t\t\tMUIDataTableBody: {},\r\n\t\t\t\tMUIDataTableBodyRow: {},\r\n\t\t\t\tMuiTableCell: {\r\n\t\t\t\t\tbody: {\r\n\t\t\t\t\t\tmaxWidth: tableBodyCellMaxWidth,\r\n\t\t\t\t\t\t'&:last-child': {\r\n\t\t\t\t\t\t\twidth: actionColumnWidth\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMUIDataTablePagination: {},\r\n\t\t\t\tMUIDataTableViewCol: {},\r\n\t\t\t\tMUIDataTableSearch: {},\r\n\t\t\t\tMUIDataTableToolbar: {},\r\n\t\t\t\tMUIDataTableFilter: {},\r\n\t\t\t\tMUIDataTableFilterList: {}\r\n\t\t\t}\r\n\t\t}));\r\n\t};\r\n\r\n\tconst _onRowSelection = (currentRowsSelected, allRowsSelected, rowsSelected) => {\r\n\t\tconst { onRowSelection } = props;\r\n\t\tconst selectedRows = data.filter((dt, index) => rowsSelected.indexOf(index) !== -1);\r\n\t\tonRowSelection(selectedRows);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t ({ ...getMuiTheme(outerTheme) })}>\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nDataTable.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\ttitle: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tcolumns: PropTypes.array.isRequired,\r\n\toptions: PropTypes.object,\r\n\tpagination: PropTypes.bool,\r\n\tshowDownload: PropTypes.bool,\r\n\tshowPrint: PropTypes.bool,\r\n\tselectableRows: PropTypes.string,\r\n\trowsPerPage: PropTypes.number,\r\n\tfilterType: PropTypes.string,\r\n\ttableBodyCellMaxWidth: PropTypes.string || PropTypes.number,\r\n\tactionColumnWidth: PropTypes.string || PropTypes.number,\r\n\tonRowSelection: PropTypes.func,\r\n\ttableBodyMaxHeight: PropTypes.string\r\n};\r\n\r\nexport default DataTable;\r\n","import React, { useState, useRef } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardContent,\r\n\tDivider,\r\n\tIconButton,\r\n\tInput,\r\n\tPaper,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport AddPhotoIcon from '@mui/icons-material/AddPhotoAlternate';\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tpaper: {\r\n\t\tflexGrow: 1,\r\n\t\tpadding: theme.spacing(0.5, 2),\r\n\t},\r\n\tinput: {\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\twidth: 1,\r\n\t\theight: 24,\r\n\t},\r\n\tfileInput: {\r\n\t\tdisplay: 'none',\r\n\t},\r\n}));\r\n\r\nconst AddPost = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst fileInputRef = useRef(null);\r\n\tconst [value, setValue] = useState('');\r\n\tconst session = useSelector((state) => state.session);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetValue(event.target.value);\r\n\t};\r\n\r\n\tconst handleAttach = () => {\r\n\t\tfileInputRef.current.click();\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t 0 ? 'primary' : 'default'} size=\"large\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddPost.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddPost;\r\n","import React, { forwardRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, IconButton, Typography, Collapse, colors } from '@mui/material';\r\nimport CheckCircleIcon from '@mui/icons-material/CheckCircleOutlined';\r\nimport CloseIcon from '@mui/icons-material/CloseOutlined';\r\nimport ErrorIcon from '@mui/icons-material/ErrorOutlined';\r\nimport InfoIcon from '@mui/icons-material/InfoOutlined';\r\nimport WarningIcon from '@mui/icons-material/WarningOutlined';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tpadding: '6px 16px',\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t},\r\n\tdefault: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t},\r\n\tsuccess: {\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\tcolor: theme.palette.white,\r\n\t},\r\n\tinfo: {\r\n\t\tbackgroundColor: colors.lightBlue[600],\r\n\t\tcolor: theme.palette.white,\r\n\t},\r\n\twarning: {\r\n\t\tbackgroundColor: colors.orange[900],\r\n\t\tcolor: theme.palette.white,\r\n\t},\r\n\terror: {\r\n\t\tbackgroundColor: theme.palette.error.main,\r\n\t\tcolor: theme.palette.error.contrastText,\r\n\t},\r\n\tmessage: {\r\n\t\tflexGrow: 1,\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tpadding: '8px 0',\r\n\t},\r\n\ticon: {\r\n\t\tfontSize: 20,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\taction: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tmarginLeft: 'auto',\r\n\t\tpaddingLeft: 16,\r\n\t\tmarginRight: -8,\r\n\t},\r\n}));\r\n\r\nconst icons = {\r\n\tdefault: ,\r\n\tsuccess: ,\r\n\tinfo: ,\r\n\twarning: ,\r\n\terror: ,\r\n};\r\n\r\nconst Alert = forwardRef((props, ref) => {\r\n\tconst { className, icon, variant, message, onClose, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [open, setOpen] = useState(true);\r\n\r\n\tconst _onClose = () => {\r\n\t\tsetOpen(false);\r\n\t\tonClose(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{icon || icons[variant]}\r\n\t\t\t\t
{message}
\r\n\t\t\t\t{onClose && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n});\r\n\r\nAlert.displayName = 'Alert';\r\n\r\nAlert.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ticon: PropTypes.node,\r\n\tmessage: PropTypes.string.isRequired,\r\n\tonClose: PropTypes.func,\r\n\tvariant: PropTypes.oneOf([\r\n\t\t'default',\r\n\t\t'info',\r\n\t\t'success',\r\n\t\t'warning',\r\n\t\t'error',\r\n\t]),\r\n};\r\n\r\nAlert.defaultProps = {\r\n\tvariant: 'default',\r\n};\r\n\r\nexport default Alert;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport * as Prism from 'prismjs';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport makeStyles from '@mui/styles/makeStyles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {},\r\n}));\r\n\r\nconst trimCode = (input) => {\r\n\tconst codeLines = input.split('\\n');\r\n\r\n\tif (!codeLines[0].trim()) {\r\n\t\tcodeLines.shift();\r\n\t}\r\n\r\n\tif (!codeLines[codeLines.length - 1].trim()) {\r\n\t\tcodeLines.pop();\r\n\t}\r\n\r\n\tconst indexOfFirstChar = codeLines[0].search(/\\S|$/);\r\n\r\n\tlet output = '';\r\n\r\n\tcodeLines.forEach((line, index) => {\r\n\t\toutput += line.substr(indexOfFirstChar, line.length);\r\n\r\n\t\tif (index !== codeLines.length - 1) {\r\n\t\t\toutput = `${output}\\n`;\r\n\t\t}\r\n\t});\r\n\r\n\treturn output;\r\n};\r\n\r\nconst CodeBlock = (props) => {\r\n\tconst {\r\n\t\tasync,\r\n\t\tsource,\r\n\t\tlanguage,\r\n\t\tclassName,\r\n\t\tcomponent: Component,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst ref = useRef(null);\r\n\tconst classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst highlight = () => {\r\n\t\t\tPrism.highlightElement(ref.current, async);\r\n\t\t};\r\n\r\n\t\thighlight();\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{trimCode(source)}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCodeBlock.propTypes = {\r\n\tasync: PropTypes.bool,\r\n\tclassName: PropTypes.string,\r\n\tcomponent: PropTypes.node,\r\n\tlanguage: PropTypes.string.isRequired,\r\n\tsource: PropTypes.string.isRequired,\r\n};\r\n\r\nCodeBlock.defaultProps = {\r\n\tcomponent: 'code',\r\n};\r\n\r\nexport default CodeBlock;\r\n","import React, { useState, useEffect } from 'react';\r\nimport Cookies from 'js-cookie';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, Typography, Link, Button } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: 420,\r\n\t\tposition: 'fixed',\r\n\t\tbottom: 0,\r\n\t\tright: 0,\r\n\t\tmargin: theme.spacing(3),\r\n\t\toutline: 'none',\r\n\t\tzIndex: 2000,\r\n\t},\r\n\tmedia: {\r\n\t\tpadding: theme.spacing(1, 2),\r\n\t\theight: 180,\r\n\t\ttextAlign: 'center',\r\n\t\t'& > img': {\r\n\t\t\theight: '100%',\r\n\t\t\twidth: 'auto',\r\n\t\t},\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(1, 2),\r\n\t},\r\n\tactions: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\tpadding: theme.spacing(1, 2, 2, 1),\r\n\t},\r\n}));\r\n\r\nconst CookiesNotification = () => {\r\n\tconst classes = useStyles();\r\n\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst consent = Cookies.get('consent');\r\n\r\n\t\tif (!consent) {\r\n\t\t\tsetOpen(true);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleClose = () => {\r\n\t\tCookies.set('consent', 'true');\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tif (!open) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{/*
\r\n\t\t\t\t\"Cookies\"\r\n\t\t\t
*/}\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tWe use Cookies to ensure that we give you the best\r\n\t\t\t\t\texperience on our website. Read our\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPrivacy Policy\r\n\t\t\t\t\t\r\n\t\t\t\t\t.\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tI Agree\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default CookiesNotification;\r\n","import React, { Fragment, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tIconButton,\r\n\tLink,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTypography,\r\n\tTooltip,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\n\r\nimport bytesToSize from 'utils/bytesToSize';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdropZone: {\r\n\t\tborder: `1px dashed ${theme.palette.divider}`,\r\n\t\tpadding: theme.spacing(6),\r\n\t\toutline: 'none',\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\talignItems: 'center',\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.grey[50],\r\n\t\t\topacity: 0.5,\r\n\t\t\tcursor: 'pointer',\r\n\t\t},\r\n\t},\r\n\tdragActive: {\r\n\t\tbackgroundColor: colors.grey[50],\r\n\t\topacity: 0.5,\r\n\t},\r\n\timage: {\r\n\t\twidth: 130,\r\n\t},\r\n\tinfo: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tlist: {\r\n\t\tmaxHeight: 320,\r\n\t},\r\n\tactions: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst FilesDropzone = (props) => {\r\n\tconst { multiple, acceptedTypes, upload, maxSize, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [files, setFiles] = useState([]);\r\n\r\n\tconst handleDrop = useCallback((acceptedFiles) => {\r\n\t\tif (multiple) {\r\n\t\t\tsetFiles((f) => [...f].concat(acceptedFiles));\r\n\t\t} else {\r\n\t\t\tsetFiles([...acceptedFiles]);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleRemoveAll = () => {\r\n\t\tsetFiles([]);\r\n\t};\r\n\r\n\tconst { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n\t\tmultiple,\r\n\t\taccept: acceptedTypes,\r\n\t\tmaxSize,\r\n\t\tonDrop: handleDrop,\r\n\t});\r\n\r\n\tconst _upload = () => {\r\n\t\tif (upload) {\r\n\t\t\tupload(files);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tSelect files\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tDrop files here or click\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\tbrowse\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\tthorough your\r\n\t\t\t\t\t\tmachine\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t{files.length > 0 && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{files.map((file, i) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tUpload\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nFilesDropzone.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tmultiple: PropTypes.bool,\r\n\tacceptedTypes: PropTypes.string,\r\n\tmaxSize: PropTypes.number,\r\n\tupload: PropTypes.func\r\n};\r\n\r\nexport default FilesDropzone;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\nimport GetAppIcon from '@mui/icons-material/GetApp';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport PrintIcon from '@mui/icons-material/Print';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport AchiveIcon from '@mui/icons-material/ArchiveOutlined';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst GenericMoreButton = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGenericMoreButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default memo(GenericMoreButton);\r\n","/* eslint-disable react/no-danger */\r\nimport React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\n\r\n// eslint-disable-next-line no-undef\r\nconst GA_MEASUREMENT_ID = process.env.REACT_APP_GA_MEASUREMENT_ID;\r\n\r\nconst GoogleAnalytics = () => (\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default GoogleAnalytics;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport Prism from 'prismjs';\r\nimport ReactMarkdown from 'react-markdown/with-html';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\t'& h1': {\r\n\t\t\t...theme.typography.h1,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h2': {\r\n\t\t\t...theme.typography.h2,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h3': {\r\n\t\t\t...theme.typography.h3,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h4': {\r\n\t\t\t...theme.typography.h4,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h5': {\r\n\t\t\t...theme.typography.h5,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h6': {\r\n\t\t\t...theme.typography.h6,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& p': {\r\n\t\t\t...theme.typography.subtitle1,\r\n\t\t\tmarginBottom: theme.spacing(2),\r\n\t\t},\r\n\t\t'& ul': {\r\n\t\t\tmarginLeft: theme.spacing(3),\r\n\t\t\tmarginBottom: theme.spacing(2),\r\n\t\t},\r\n\t\t'& ol': {\r\n\t\t\tmarginLeft: theme.spacing(3),\r\n\t\t\tmarginBottom: theme.spacing(2),\r\n\t\t},\r\n\t\t'& li': {\r\n\t\t\t...theme.typography.subtitle1,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& hr': {\r\n\t\t\tmarginTop: theme.spacing(3),\r\n\t\t\tmarginBottom: theme.spacing(3),\r\n\t\t\tbackgroundColor: colors.grey[300],\r\n\t\t\tborder: 0,\r\n\t\t\theight: 1,\r\n\t\t},\r\n\t\t'& a': {\r\n\t\t\tcolor: theme.palette.link,\r\n\t\t\t'&:hover': {\r\n\t\t\t\ttextDecoration: 'underline',\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Markdown = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\tPrism.highlightAll();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nMarkdown.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Markdown;\r\n","/* eslint-disable react/display-name */\r\nimport React, { useState, forwardRef } from 'react';\r\nimport { NavLink as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { ListItem, Button, Collapse, colors } from '@mui/material';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\r\n\r\nconst CustomRouterLink = forwardRef((props, ref) => (\r\n\t
\r\n\t\t\r\n\t
\r\n));\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\titem: {\r\n\t\tdisplay: 'block',\r\n\t\tpaddingTop: 0,\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\titemLeaf: {\r\n\t\tdisplay: 'flex',\r\n\t\tpaddingTop: 0,\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\tbutton: {\r\n\t\tcolor: colors.blueGrey[800],\r\n\t\tpadding: '10px 8px',\r\n\t\tjustifyContent: 'flex-start',\r\n\t\ttextTransform: 'none',\r\n\t\tletterSpacing: 0,\r\n\t\twidth: '100%',\r\n\t},\r\n\tbuttonLeaf: {\r\n\t\tcolor: colors.blueGrey[800],\r\n\t\tpadding: '10px 8px',\r\n\t\tjustifyContent: 'flex-start',\r\n\t\ttextTransform: 'none',\r\n\t\tletterSpacing: 0,\r\n\t\twidth: '100%',\r\n\t\tfontWeight: theme.typography.fontWeightRegular,\r\n\t\t'&.depth-0': {\r\n\t\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t\t},\r\n\t},\r\n\ticon: {\r\n\t\tcolor: theme.palette.icon,\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\texpandIcon: {\r\n\t\tmarginLeft: 'auto',\r\n\t\theight: 16,\r\n\t\twidth: 16,\r\n\t},\r\n\tlabel: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tactive: {\r\n\t\tcolor: theme.palette.primary.main,\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t\t'& $icon': {\r\n\t\t\tcolor: theme.palette.primary.main,\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst NavigationListItem = (props) => {\r\n\tconst {\r\n\t\ttitle,\r\n\t\thref,\r\n\t\tdepth,\r\n\t\tchildren,\r\n\t\ticon: Icon,\r\n\t\tclassName,\r\n\t\topen: openProp,\r\n\t\tlabel: Label,\r\n\t\ttarget,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [open, setOpen] = useState(openProp);\r\n\r\n\tconst handleToggle = () => {\r\n\t\tsetOpen((o) => !o);\r\n\t};\r\n\r\n\tlet paddingLeft = 8;\r\n\r\n\tif (depth > 0) {\r\n\t\tpaddingLeft = 32 + 8 * depth;\r\n\t}\r\n\r\n\tconst style = {\r\n\t\tpaddingLeft,\r\n\t};\r\n\r\n\tif (children) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Icon && }\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\t{open ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t);\r\n\t} if (target) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t window.open(href, target)}\r\n\t\t\t\t>\r\n\t\t\t\t\t{Icon && }\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\t{Label && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Icon && }\r\n\t\t\t\t{title}\r\n\t\t\t\t{Label && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavigationListItem.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\tclassName: PropTypes.string,\r\n\tdepth: PropTypes.number,\r\n\thref: PropTypes.string,\r\n\ticon: PropTypes.any,\r\n\tlabel: PropTypes.any,\r\n\topen: PropTypes.bool,\r\n\ttitle: PropTypes.string.isRequired,\r\n\ttarget: PropTypes.any\r\n};\r\n\r\nNavigationListItem.defaultProps = {\r\n\tdepth: 0,\r\n\topen: false,\r\n};\r\n\r\nexport default NavigationListItem;\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React from 'react';\r\nimport { matchPath } from 'react-router-dom';\r\nimport _ from 'underscore';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { List, Typography } from '@mui/material';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport { NavigationListItem } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmarginBottom: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst reduceChildRoutes = (props) => {\r\n\tconst { router, items, page, depth, userRole, userProjects } = props;\r\n\tif ((!page.roles || page.roles.includes(userRole)) && (!page.projects || _.intersection(page.projects, userProjects).length !== 0)) {\r\n\t\tif (page.children) {\r\n\t\t\tconst open = matchPath(router.location.pathname, {\r\n\t\t\t\tpath: page.href,\r\n\t\t\t\texact: false,\r\n\t\t\t});\r\n\r\n\t\t\titems.push(\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\titems.push(\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\treturn items;\r\n};\r\n\r\nconst NavigationList = (props) => {\r\n\tconst { pages, ...rest } = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{pages.reduce(\r\n\t\t\t\t(items, page) => reduceChildRoutes({ items, page, ...rest }),\r\n\t\t\t\t[]\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavigationList.propTypes = {\r\n\tdepth: PropTypes.number,\r\n\tpages: PropTypes.array,\r\n};\r\n\r\nconst Navigation = (props) => {\r\n\tconst { title, pages, className, component: Component, userRole, userProjects, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{title && {title}}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavigation.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tcomponent: PropTypes.any,\r\n\tpages: PropTypes.array.isRequired,\r\n\ttitle: PropTypes.string,\r\n\tuserRole: PropTypes.string,\r\n\tuserProjects: PropTypes.string\r\n};\r\n\r\nNavigation.defaultProps = {\r\n\tcomponent: 'nav',\r\n};\r\n\r\nexport default Navigation;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tList,\r\n\tListItem,\r\n\tListItemAvatar,\r\n\tListItemText,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\nimport AnnouncementIcon from '@mui/icons-material/Announcement';\r\nimport WarningIcon from '@mui/icons-material/Warning';\r\nimport ErrorIcon from '@mui/icons-material/Error';\r\nimport CheckIcon from '@mui/icons-material/CheckCircle';\r\n\r\nimport gradients from '../../../../utils/gradients';\r\n\r\nimport { NotificationMarkAsRead } from '../../../../actions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tlistItem: {\r\n\t\tcursor: 'pointer',\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: theme.palette.background.default,\r\n\t\t},\r\n\t},\r\n\tavatarBlue: {\r\n\t\tbackgroundImage: gradients.blue,\r\n\t},\r\n\tavatarGreen: {\r\n\t\tbackgroundImage: gradients.green,\r\n\t},\r\n\tavatarOrange: {\r\n\t\tbackgroundImage: gradients.orange,\r\n\t},\r\n\tavatarRed: {\r\n\t\tbackgroundImage: gradients.red,\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tcolor: theme.palette.icon,\r\n\t},\r\n}));\r\n\r\nconst NotificationList = (props) => {\r\n\tconst { notifications, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst avatars = {\r\n\t\tinfo: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t\twarning: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t\tsuccess: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t\terror: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t};\r\n\r\n\tconst handleNotificationClick = (id) => {\r\n\t\tdispatch(NotificationMarkAsRead(id));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{notifications.map((notification, i) => (\r\n\t\t\t\t (!notification.readed ? handleNotificationClick(notification.id) : {})}\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{avatars[notification.icon]}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nNotificationList.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tnotifications: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default NotificationList;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\ttextAlign: 'center',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\timage: {\r\n\t\theight: 240,\r\n\t\tbackgroundImage: 'url(\"/images/undraw_empty_xct9.svg\")',\r\n\t\tbackgroundPositionX: 'right',\r\n\t\tbackgroundPositionY: 'center',\r\n\t\tbackgroundRepeat: 'no-repeat',\r\n\t\tbackgroundSize: 'cover',\r\n\t},\r\n}));\r\n\r\nconst EmptyList = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\tThere's nothing here...\r\n\t\t
\r\n\t);\r\n};\r\n\r\nEmptyList.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default EmptyList;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tPopover,\r\n\tCardHeader,\r\n\tCardActions,\r\n\tDivider,\r\n\tButton,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { NotificationList, EmptyList } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\twidth: 350,\r\n\t\tmaxWidth: '100%',\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[50],\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n}));\r\n\r\nconst NotificationsPopover = (props) => {\r\n\tconst { notifications, anchorEl, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{notifications.length > 0 ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nNotificationsPopover.propTypes = {\r\n\tanchorEl: PropTypes.any,\r\n\tclassName: PropTypes.string,\r\n\tnotifications: PropTypes.array.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default NotificationsPopover;\r\n","/* eslint-disable no-undef */\r\nimport React, { useEffect } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport useRouter from 'utils/useRouter';\r\n\r\nconst { NODE_ENV } = process.env;\r\nconst GA_MEASUREMENT_ID = process.env.REACT_APP_GA_MEASUREMENT_ID;\r\n\r\nconst Page = (props) => {\r\n\tconst { title, children, ...rest } = props;\r\n\r\n\tconst router = useRouter();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (NODE_ENV !== 'production') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (window.gtag) {\r\n\t\t\twindow.gtag('config', GA_MEASUREMENT_ID, {\r\n\t\t\t\tpage_path: router.location.pathname,\r\n\t\t\t\tpage_name: title,\r\n\t\t\t});\r\n\t\t}\r\n\t}, [title, router]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\t\t\t{children}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nPage.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\ttitle: PropTypes.string,\r\n};\r\n\r\nexport default Page;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport ReactPaginate from 'react-paginate';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\t...theme.typography.button,\r\n\t\tlistStyle: 'none',\r\n\t\tuserSelect: 'none',\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tactive: {},\r\n\tactiveLink: {},\r\n\tbreak: {},\r\n\tbreakLink: {},\r\n\tdisabled: {},\r\n\tnext: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tnextLink: {\r\n\t\tpadding: '6px 16px',\r\n\t\toutline: 'none',\r\n\t\tcursor: 'pointer',\r\n\t\tborderRadius: 4,\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t},\r\n\t},\r\n\tpage: {},\r\n\tpageLink: {\r\n\t\tcolor: theme.palette.text.secondary,\r\n\t\tpadding: theme.spacing(1),\r\n\t\toutline: 'none',\r\n\t\tcursor: 'pointer',\r\n\t\twidth: 40,\r\n\t\theight: 40,\r\n\t\tborderRadius: '50%',\r\n\t\tdisplay: 'block',\r\n\t\ttextAlign: 'center',\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t\tcolor: theme.palette.text.primary,\r\n\t\t},\r\n\t\t'&$activeLink': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t\tcolor: theme.palette.text.primary,\r\n\t\t},\r\n\t},\r\n\tprevious: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tpreviousLink: {\r\n\t\tpadding: '6px 16px',\r\n\t\toutline: 'none',\r\n\t\tcursor: 'pointer',\r\n\t\tborderRadius: 4,\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Paginate = (props) => {\r\n\tconst {\r\n\t\tpageCount,\r\n\t\tpageRangeDisplayed,\r\n\t\tonPageChange,\r\n\t\tclassName,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nPaginate.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonPageChange: PropTypes.func.isRequired,\r\n\tpageCount: PropTypes.number.isRequired,\r\n\tpageRangeDisplayed: PropTypes.number.isRequired,\r\n};\r\n\r\nPaginate.defaultProps = {\r\n\t// eslint-disable-next-line react/default-props-match-prop-types\r\n\tonPageChange: () => {},\r\n\t// eslint-disable-next-line react/default-props-match-prop-types\r\n\tpageRangeDisplayed: 5,\r\n};\r\n\r\nexport default Paginate;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Avatar, Link, Typography } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tbubble: {\r\n\t\tflexGrow: 1,\r\n\t\tpadding: theme.spacing(1),\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t\tbackgroundColor: theme.palette.background.default,\r\n\t},\r\n\theader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\ttime: {\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tmessage: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst CommentBubble = (props) => {\r\n\tconst { comment, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{comment.author.name}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{moment(comment.created_at).fromNow()}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{comment.message}\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCommentBubble.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tcomment: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default CommentBubble;\r\n","import React, { useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tDivider,\r\n\tIconButton,\r\n\tInput,\r\n\tPaper,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport AddPhotoIcon from '@mui/icons-material/AddPhotoAlternate';\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tpaper: {\r\n\t\tflexGrow: 1,\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tpadding: theme.spacing(0.5, 2),\r\n\t},\r\n\tinput: {\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\twidth: 1,\r\n\t\theight: 24,\r\n\t},\r\n\tfileInput: {\r\n\t\tdisplay: 'none',\r\n\t},\r\n}));\r\n\r\nconst CommentForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst fileInputRef = useRef(null);\r\n\r\n\tconst [value, setValue] = useState('');\r\n\r\n\tconst sender = {\r\n\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t};\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetValue(event.target.value);\r\n\t};\r\n\r\n\tconst handleAttach = () => {\r\n\t\tfileInputRef.current.click();\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t{' '}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t 0 ? 'primary' : 'default'} size=\"large\">\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCommentForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default CommentForm;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tTypography,\r\n\tButton,\r\n\tIconButton,\r\n\tTooltip,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport FavoriteIcon from '@mui/icons-material/Favorite';\r\nimport FavoriteBorderIcon from '@mui/icons-material/FavoriteBorder';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tlikeButton: {},\r\n\tlikedButton: {\r\n\t\tcolor: colors.red[600],\r\n\t},\r\n\tshareButton: {\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tshareIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst Reactions = (props) => {\r\n\tconst { post, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [liked, setLiked] = useState(post.liked);\r\n\tconst [likes, setLikes] = useState(post.likes);\r\n\r\n\tconst handleLike = () => {\r\n\t\tsetLiked(true);\r\n\t\tsetLikes((l) => l + 1);\r\n\t};\r\n\r\n\tconst handleUnlike = () => {\r\n\t\tsetLiked(false);\r\n\t\tsetLikes((l) => l - 1);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{liked ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t\r\n\t\t\t\t{likes}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tShare\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nReactions.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tpost: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Reactions;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActionArea,\r\n\tCardMedia,\r\n\tAvatar,\r\n\tLink,\r\n\tTypography,\r\n\tDivider,\r\n} from '@mui/material';\r\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\r\n\r\nimport { Reactions, CommentBubble, CommentForm } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsubheader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\taccessTimeIcon: {\r\n\t\tcolor: theme.palette.text.secondary,\r\n\t\tfontSize: '14px',\r\n\t\theight: 14,\r\n\t\twidth: 14,\r\n\t\tmarginRight: 6,\r\n\t},\r\n\tcontent: {\r\n\t\tpaddingTop: 0,\r\n\t},\r\n\tmessage: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tmediaArea: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tmedia: {\r\n\t\theight: 400,\r\n\t\tbackgroundPosition: 'initial',\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst PostCard = (props) => {\r\n\tconst { post, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tdisableTypography\r\n\t\t\t\tsubheader={(\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{moment(post.created_at).fromNow()}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\t\t\t\ttitle={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{post.author.name}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{post.message}\r\n\t\t\t\t\r\n\t\t\t\t{post.media && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{post.comments && (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{post.comments.map((comment) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nPostCard.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tpost: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default PostCard;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tDialog,\r\n\tDivider,\r\n\tGrid,\r\n\tLink,\r\n\tPaper,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tmaxWidth: 600,\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(5),\r\n\t\tpadding: theme.spacing(2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tproduct: {\r\n\t\toverflow: 'unset',\r\n\t\tposition: 'relative',\r\n\t\tpadding: theme.spacing(5, 3),\r\n\t\tcursor: 'pointer',\r\n\t\ttransition: theme.transitions.create('transform', {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t\t'&:hover': {\r\n\t\t\ttransform: 'scale(1.1)',\r\n\t\t},\r\n\t},\r\n\timage: {\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t\tposition: 'absolute',\r\n\t\ttop: -24,\r\n\t\tleft: theme.spacing(3),\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t\tfontSize: 24,\r\n\t},\r\n\tdivider: {\r\n\t\tmargin: theme.spacing(2, 0),\r\n\t},\r\n\toptions: {\r\n\t\tlineHeight: '26px',\r\n\t},\r\n\trecommended: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t'& *': {\r\n\t\t\tcolor: `${theme.palette.white} !important`,\r\n\t\t},\r\n\t},\r\n\tcontact: {\r\n\t\tmargin: theme.spacing(3, 0),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n\tstartButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst PricingModal = (props) => {\r\n\tconst { open, onClose, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tStart with Freelancer today. Boost up your services!\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWelcome to the first platform created for freelancers\r\n\t\t\t\t\t\tand agencies for showcasing and finding the best clients\r\n\t\t\t\t\t\tin the market. 30% of our income goes into Whale Charity\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tFreelancer\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$5\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t/month\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tMax 1 user\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t20\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tproposals/month\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t10\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\ttemplates\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tAnalytics\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tdashboard\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tEmail\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\talerts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAgency\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$29\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t/month\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tMax 3 user\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t20\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tproposals/month\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t10\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\ttemplates\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tAnalytics\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tdashboard\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tEmail\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\talerts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tEnterprise\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$259\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t/month\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tUnlimited\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAll from above\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tUnlimited\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t24/7 support\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tPersonalised\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tPage\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tAdvertise\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tyour profile\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tHave a larger team?\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tContact us\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\tfor information about more enterprise options.\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tStart with freelancer\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nPricingModal.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool,\r\n};\r\n\r\nexport default PricingModal;\r\n","import React, { useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tGrid,\r\n\tIconButton,\r\n\tLink,\r\n\tTooltip,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\nimport FavoriteIcon from '@mui/icons-material/Favorite';\r\nimport FavoriteBorderIcon from '@mui/icons-material/FavoriteBorder';\r\n\r\nimport getInitials from 'utils/getInitials';\r\nimport { Label } from '..';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\theader: {\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t\t'&:last-child': {\r\n\t\t\tpaddingBottom: 0,\r\n\t\t},\r\n\t},\r\n\tdescription: {\r\n\t\tpadding: theme.spacing(2, 3, 1, 3),\r\n\t},\r\n\ttags: {\r\n\t\tpadding: theme.spacing(0, 3, 1, 3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tlearnMoreButton: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n\tlikedButton: {\r\n\t\tcolor: colors.red[600],\r\n\t},\r\n\tshareButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tdetails: {\r\n\t\tpadding: theme.spacing(1, 3),\r\n\t},\r\n}));\r\n\r\nconst ProjectCard = (props) => {\r\n\tconst { project, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [liked, setLiked] = useState(project.liked);\r\n\r\n\tconst handleLike = () => {\r\n\t\tsetLiked(true);\r\n\t};\r\n\r\n\tconst handleUnlike = () => {\r\n\t\tsetLiked(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t{getInitials(project.author.name)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclassName={classes.header}\r\n\t\t\t\tdisableTypography\r\n\t\t\t\tsubheader={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tby\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{project.author.name}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t| Updated:\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t{moment(project.updated_at).fromNow()}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\ttitle={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{project.title}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWe're looking for experienced Developers and Product\r\n\t\t\t\t\t\tDesigners to come aboard and help us build succesful\r\n\t\t\t\t\t\tbusinesses through softare.\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{project.tags.map((tag) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t\t{project.price}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tPer Project\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{project.location}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tLocation\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{project.type}\r\n\t\t\t\t\t\t\tType\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{liked ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tLearn more\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjectCard.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tproject: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default ProjectCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport StarIcon from '@mui/icons-material/Star';\r\nimport StarBorderIcon from '@mui/icons-material/StarBorder';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'inline-flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tstarIcon: {\r\n\t\tfontSize: 18,\r\n\t\theight: 18,\r\n\t\twidth: 18,\r\n\t},\r\n\tstarFilledIcon: {\r\n\t\tcolor: colors.amber[400],\r\n\t},\r\n\tstarBorderIcon: {\r\n\t\tcolor: theme.palette.icon,\r\n\t},\r\n}));\r\n\r\nconst ReviewStars = (props) => {\r\n\tconst { value, starCount, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst starNodes = [];\r\n\r\n\tfor (let i = 1; i <= starCount; i++) {\r\n\t\tconst key = uuid();\r\n\r\n\t\tconst starNode = i <= value ? (\r\n\t\t\t\r\n\t\t) : (\r\n\t\t\t\r\n\t\t);\r\n\r\n\t\tstarNodes.push(starNode);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{starNodes}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nReviewStars.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tstarCount: PropTypes.number,\r\n\tvalue: PropTypes.number,\r\n};\r\n\r\nReviewStars.defaultProps = {\r\n\tvalue: 0,\r\n\tstarCount: 5,\r\n};\r\n\r\nexport default ReviewStars;\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tooltip, Button } from '@mui/material';\r\nimport { alpha } from '@mui/material/styles';\r\nimport CodeIcon from '@mui/icons-material/Code';\r\nimport FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';\r\nimport FormatListNumberedIcon from '@mui/icons-material/FormatListNumbered';\r\nimport FormatItalicIcon from '@mui/icons-material/FormatItalic';\r\nimport FormatBoldIcon from '@mui/icons-material/FormatBold';\r\nimport FormatUnderlined from '@mui/icons-material/FormatUnderlined';\r\nimport FormatQuoteIcon from '@mui/icons-material/FormatQuote';\r\nimport FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft';\r\nimport FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter';\r\nimport FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight';\r\nimport FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify';\r\n\r\nconst useStyles1 = makeStyles((theme) => ({\r\n\troot: {},\r\n\tinner: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n}));\r\n\r\nconst useStyles2 = makeStyles((theme) => ({\r\n\tbutton: {\r\n\t\tpadding: 0,\r\n\t\twidth: 32,\r\n\t\theight: 32,\r\n\t\tminWidth: 32,\r\n\t\tcolor: theme.palette.icon,\r\n\t\t'& + &': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tactiveButton: {\r\n\t\tbackgroundColor: alpha(theme.palette.primary.main, 0.1),\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n}));\r\n\r\nconst BLOCK_TYPES = [\r\n\t{\r\n\t\tblockType: 'header-one',\r\n\t\ttooltip: 'Heading 1',\r\n\t\ttext: 'H1',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-two',\r\n\t\ttooltip: 'Heading 2',\r\n\t\ttext: 'H2',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-three',\r\n\t\ttooltip: 'Heading 3',\r\n\t\ttext: 'H3',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-four',\r\n\t\ttooltip: 'Heading 4',\r\n\t\ttext: 'H4',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-five',\r\n\t\ttooltip: 'Heading 5',\r\n\t\ttext: 'H5',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-six',\r\n\t\ttooltip: 'Heading 6',\r\n\t\ttext: 'H6',\r\n\t},\r\n\t{\r\n\t\tblockType: 'blockquote',\r\n\t\ttooltip: 'Blockquote',\r\n\t\ticon: FormatQuoteIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'unordered-list-item',\r\n\t\ttooltip: 'Unordered list',\r\n\t\ticon: FormatListBulletedIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'ordered-list-item',\r\n\t\ttooltip: 'Ordered list',\r\n\t\ticon: FormatListNumberedIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'code-block',\r\n\t\ttooltip: 'Code Block',\r\n\t\ticon: CodeIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'left',\r\n\t\ttooltip: 'Align left',\r\n\t\ticon: FormatAlignLeftIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'center',\r\n\t\ttooltip: 'Align center',\r\n\t\ticon: FormatAlignCenterIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'right',\r\n\t\ttooltip: 'Align right',\r\n\t\ticon: FormatAlignRightIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'justify',\r\n\t\ttooltip: 'Justify',\r\n\t\ticon: FormatAlignJustifyIcon,\r\n\t},\r\n];\r\n\r\nconst INLINE_STYLES = [\r\n\t{\r\n\t\tinlineStyle: 'BOLD',\r\n\t\ttooltip: 'Bold',\r\n\t\ticon: FormatBoldIcon,\r\n\t},\r\n\t{\r\n\t\tinlineStyle: 'ITALIC',\r\n\t\ttooltip: 'Italic',\r\n\t\ticon: FormatItalicIcon,\r\n\t},\r\n\t{\r\n\t\tinlineStyle: 'UNDERLINE',\r\n\t\ttooltip: 'Underline',\r\n\t\ticon: FormatUnderlined,\r\n\t},\r\n\t{\r\n\t\tinlineStyle: 'CODE',\r\n\t\ttooltip: 'Monospace',\r\n\t\ticon: CodeIcon,\r\n\t},\r\n];\r\n\r\nconst ButtonBase = (props) => {\r\n\tconst { active, tooltip, children, ...rest } = props;\r\n\r\n\tconst classes = useStyles2();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nButtonBase.propTypes = {\r\n\tactive: PropTypes.bool,\r\n\tchildren: PropTypes.node,\r\n\tonClick: PropTypes.func,\r\n\ttooltip: PropTypes.string,\r\n};\r\n\r\nconst BlockTypeButtons = (props) => {\r\n\tconst { editorState, onToggle } = props;\r\n\r\n\tconst handleClick = (event, blockType) => {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tonToggle('blockType', blockType);\r\n\t};\r\n\r\n\tconst selection = editorState.getSelection();\r\n\tconst blockType = editorState\r\n\t\t.getCurrentContent()\r\n\t\t.getBlockForKey(selection.getStartKey())\r\n\t\t.getType();\r\n\tconst blockData = editorState\r\n\t\t.getCurrentContent()\r\n\t\t.getBlockForKey(selection.getStartKey())\r\n\t\t.getData();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{BLOCK_TYPES.map((button) => {\r\n\t\t\t\tlet active = false;\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t['left', 'center', 'right', 'justify'].includes(\r\n\t\t\t\t\t\tbutton.blockType\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\tactive = blockData.get('text-align') === button.blockType;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tactive = button.blockType === blockType;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t handleClick(event, button.blockType)}\r\n\t\t\t\t\t\ttooltip={button.tooltip}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{button.icon ? : button.text}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nBlockTypeButtons.propTypes = {\r\n\teditorState: PropTypes.any.isRequired,\r\n\tonToggle: PropTypes.func,\r\n};\r\n\r\nconst InlineStyleButtons = (props) => {\r\n\tconst { editorState, onToggle } = props;\r\n\r\n\tconst handleClick = (event, inlineStyle) => {\r\n\t\tevent.preventDefault();\r\n\t\tonToggle('inlineStyle', inlineStyle);\r\n\t};\r\n\r\n\tconst currentStyle = editorState.getCurrentInlineStyle();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{INLINE_STYLES.map((button) => (\r\n\t\t\t\t handleClick(event, button.inlineStyle)}\r\n\t\t\t\t\ttooltip={button.tooltip}\r\n\t\t\t\t>\r\n\t\t\t\t\t{button.icon ? : button.text}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nInlineStyleButtons.propTypes = {\r\n\teditorState: PropTypes.any.isRequired,\r\n\tonToggle: PropTypes.func,\r\n};\r\n\r\nconst EditorToolbar = (props) => {\r\n\tconst { editorState, onToggle, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles1();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nEditorToolbar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\teditorState: PropTypes.any.isRequired,\r\n\tonToggle: PropTypes.func,\r\n};\r\n\r\nexport default EditorToolbar;\r\n","import { Map } from 'immutable';\r\nimport { EditorState, DefaultDraftBlockRenderMap, Modifier } from 'draft-js';\r\n\r\nexport function setBlockData(editorState, data) {\r\n\tconst newContentState = Modifier.setBlockData(\r\n\t\teditorState.getCurrentContent(),\r\n\t\teditorState.getSelection(),\r\n\t\tdata\r\n\t);\r\n\r\n\treturn EditorState.push(editorState, newContentState, 'change-block-data');\r\n}\r\n\r\nconst newBlockRenderMap = Map({\r\n\tunstyled: {\r\n\t\telement: 'p',\r\n\t},\r\n\tparagraph: {\r\n\t\telement: 'p',\r\n\t},\r\n});\r\n\r\n// TODO:\r\n// 1. DraftJS uses 'div' tags inside every block.\r\n// When we use 'p' tag for paragraphs, we get a warning because \"div\" tag cannot be inside a \"p\" tag.\r\n\r\nexport const blockRenderMap = DefaultDraftBlockRenderMap.merge(\r\n\tnewBlockRenderMap\r\n);\r\n","import { useEffect } from 'react';\r\n\r\nimport useRouter from 'utils/useRouter';\r\n\r\nconst ScrollReset = () => {\r\n\tconst router = useRouter();\r\n\r\n\tuseEffect(() => {\r\n\t\twindow.scrollTo(0, 0);\r\n\t}, [router.location.pathname]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default ScrollReset;\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport {\r\n\tEditor,\r\n\tEditorState,\r\n\tRichUtils,\r\n\tModifier,\r\n\tgetDefaultKeyBinding,\r\n} from 'draft-js';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, Divider } from '@mui/material';\r\n\r\nimport { EditorToolbar } from './components';\r\nimport { blockRenderMap } from './utils';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\teditorContainer: {\r\n\t\tpadding: theme.spacing(2),\r\n\t\tminHeight: 400,\r\n\t\t'& .public-DraftEditorPlaceholder-root': {\r\n\t\t\t...theme.typography.body2,\r\n\t\t},\r\n\t\t'& .public-DraftEditorPlaceholder-hasFocus': {\r\n\t\t\tdisplay: 'none',\r\n\t\t},\r\n\t\t'& .public-DraftEditor-content': {\r\n\t\t\t'& p': {\r\n\t\t\t\t...theme.typography.body1,\r\n\t\t\t},\r\n\t\t\t'& h1': {\r\n\t\t\t\t...theme.typography.h1,\r\n\t\t\t},\r\n\t\t\t'& h2': {\r\n\t\t\t\t...theme.typography.h2,\r\n\t\t\t},\r\n\t\t\t'& h3': {\r\n\t\t\t\t...theme.typography.h3,\r\n\t\t\t},\r\n\t\t\t'& h4': {\r\n\t\t\t\t...theme.typography.h4,\r\n\t\t\t},\r\n\t\t\t'& h5': {\r\n\t\t\t\t...theme.typography.h5,\r\n\t\t\t},\r\n\t\t\t'& h6': {\r\n\t\t\t\t...theme.typography.h6,\r\n\t\t\t},\r\n\t\t\t'& blockquote': {\r\n\t\t\t\t...theme.typography.subtitle1,\r\n\t\t\t},\r\n\t\t\t'& ul': {\r\n\t\t\t\t...theme.typography.body1,\r\n\t\t\t\tmarginLeft: theme.spacing(4),\r\n\t\t\t},\r\n\t\t\t'& ol': {\r\n\t\t\t\t...theme.typography.body1,\r\n\t\t\t\tmarginLeft: theme.spacing(4),\r\n\t\t\t},\r\n\t\t\t'& pre': {\r\n\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\t\tfontFamily: '\"Inconsolata\", \"Menlo\", \"Consolas\", monospace',\r\n\t\t\t\tfontSize: 16,\r\n\t\t\t\tpadding: 2,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\ttextAlignLeft: {\r\n\t\ttextAlign: 'left',\r\n\t},\r\n\ttextAlignCenter: {\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\ttextAlignRight: {\r\n\t\ttextAlign: 'right',\r\n\t},\r\n\ttextAlignJustify: {\r\n\t\ttextAlign: 'justify',\r\n\t},\r\n}));\r\n\r\nconst capitalize = (string) => string.charAt(0).toUpperCase() + string.slice(1);\r\n\r\nconst RichEditor = (props) => {\r\n\tconst { placeholder, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst editorRef = useRef(null);\r\n\r\n\tconst [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n\r\n\tconst handleContainerClick = () => {\r\n\t\teditorRef.current.focus();\r\n\t};\r\n\r\n\tconst handleToolbarToggle = (type, value) => {\r\n\t\tif (type === 'blockType') {\r\n\t\t\tif (['left', 'center', 'right', 'justify'].includes(value)) {\r\n\t\t\t\tconst newContentState = Modifier.setBlockData(\r\n\t\t\t\t\teditorState.getCurrentContent(),\r\n\t\t\t\t\teditorState.getSelection(),\r\n\t\t\t\t\t{ 'text-align': value }\r\n\t\t\t\t);\r\n\r\n\t\t\t\tconst newEditorState = EditorState.push(\r\n\t\t\t\t\teditorState,\r\n\t\t\t\t\tnewContentState,\r\n\t\t\t\t\t'change-block-data'\r\n\t\t\t\t);\r\n\r\n\t\t\t\tsetEditorState(newEditorState);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tsetEditorState(RichUtils.toggleBlockType(editorState, value));\r\n\t\t} else {\r\n\t\t\tsetEditorState(RichUtils.toggleInlineStyle(editorState, value));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleEditorChange = (es) => {\r\n\t\tsetEditorState(es);\r\n\t};\r\n\r\n\tconst handleKeyCommand = (command, es) => {\r\n\t\tconst newState = RichUtils.handleKeyCommand(es, command);\r\n\r\n\t\tif (newState) {\r\n\t\t\thandleEditorChange(newState);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t};\r\n\r\n\tconst mapKeyToEditorCommand = (event) => {\r\n\t\tif (event.keyCode === 9) {\r\n\t\t\tconst newEditorState = RichUtils.onTab(event, editorState, 4);\r\n\r\n\t\t\tif (newEditorState !== editorState) {\r\n\t\t\t\thandleEditorChange(newEditorState);\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// eslint-disable-next-line consistent-return\r\n\t\treturn getDefaultKeyBinding(event);\r\n\t};\r\n\r\n\tfunction blockStyleFn(contentBlock) {\r\n\t\tconst textAlign = contentBlock.getData().get('text-align');\r\n\r\n\t\tif (textAlign) {\r\n\t\t\t// eslint-disable-next-line no-shadow\r\n\t\t\tconst className = `textAlign${capitalize(textAlign)}`;\r\n\r\n\t\t\treturn classes[className];\r\n\t\t}\r\n\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nRichEditor.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tplaceholder: PropTypes.string\r\n};\r\n\r\nexport default RichEditor;\r\n","/* eslint-disable jsx-a11y/control-has-associated-label */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tChip,\r\n\tCollapse,\r\n\tDivider,\r\n\tDrawer,\r\n\tFormControlLabel,\r\n\tRadio,\r\n\tRadioGroup,\r\n\tSlider,\r\n\tTextField,\r\n\tTypography,\r\n\tToggleButton, ToggleButtonGroup } from '@mui/material';\r\n\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DeleteIcon from '@mui/icons-material/DeleteOutlined';\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tdrawer: {\r\n\t\twidth: 420,\r\n\t\tmaxWidth: '100%',\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(2, 1),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tbuttonIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 3),\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tcontentSection: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tcontentSectionHeader: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tcursor: 'pointer',\r\n\t},\r\n\tcontentSectionContent: {},\r\n\tformGroup: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tfieldGroup: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tfield: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: 0,\r\n\t},\r\n\tflexGrow: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\taddButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\ttags: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tminAmount: {\r\n\t\tmarginRight: theme.spacing(3),\r\n\t},\r\n\tmaxAmount: {\r\n\t\tmarginLeft: theme.spacing(3),\r\n\t},\r\n\tradioGroup: {},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginTop: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Filter = (props) => {\r\n\tconst { open, onClose, onFilter, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst initialValues = {\r\n\t\tpaymentStatus: '',\r\n\t\ttag: '',\r\n\t\ttags: ['Full-Time'],\r\n\t\tamount: [1, 7],\r\n\t\tprojectStatus: 'ended',\r\n\t\tcustomerName: '',\r\n\t\tcustomerType: 'freelancer',\r\n\t\tcustomerEmail: '',\r\n\t\tcustomerPhone: '',\r\n\t\tcustomerAge: '',\r\n\t};\r\n\r\n\tconst [expandProject, setExpandProject] = useState(true);\r\n\tconst [expandCustomer, setExpandCustomer] = useState(false);\r\n\tconst [values, setValues] = useState({ ...initialValues });\r\n\r\n\tconst handleClear = () => {\r\n\t\tsetValues({ ...initialValues });\r\n\t};\r\n\r\n\tconst handleFieldChange = (event, field, value) => {\r\n\t\tsetValues((items) => ({\r\n\t\t\t...items,\r\n\t\t\t[field]: value,\r\n\t\t}));\r\n\t};\r\n\r\n\tconst handleTagAdd = () => {\r\n\t\tsetValues((items) => {\r\n\t\t\tconst newValues = { ...items };\r\n\r\n\t\t\tif (newValues.tag && !newValues.tags.includes(newValues.tag)) {\r\n\t\t\t\tnewValues.tags = [...newValues.tags];\r\n\t\t\t\tnewValues.tags.push(newValues.tag);\r\n\t\t\t}\r\n\r\n\t\t\tnewValues.tag = '';\r\n\r\n\t\t\treturn newValues;\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleTagDelete = (tag) => {\r\n\t\tsetValues((items) => {\r\n\t\t\tconst newValues = { ...items };\r\n\r\n\t\t\tnewValues.tags = newValues.tags.filter((t) => t !== tag);\r\n\r\n\t\t\treturn newValues;\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleToggleProject = () => {\r\n\t\tsetExpandProject((ep) => !ep);\r\n\t};\r\n\r\n\tconst handleToggleCustomer = () => {\r\n\t\tsetExpandCustomer((ec) => !ec);\r\n\t};\r\n\r\n\tconst handleSubmit = (event) => {\r\n\t\tevent.preventDefault();\r\n\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\tonFilter && onFilter(values);\r\n\t};\r\n\r\n\tconst paymentStatusOptions = [\r\n\t\t'Pending',\r\n\t\t'Canceled',\r\n\t\t'Completed',\r\n\t\t'Rejected',\r\n\t];\r\n\tconst customerAgeOption = ['18 - 30', '30 - 45', '50 - 60', '60+'];\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tProject\r\n\t\t\t\t\t\t\t{expandProject ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t'paymentStatus',\r\n\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\tselect\r\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line react/jsx-sort-props\r\n\t\t\t\t\t\t\t\t\t\tSelectProps={{ native: true }}\r\n\t\t\t\t\t\t\t\t\t\tvalue={values.paymentStatus}\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'tag',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.tag}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tAdd\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{values.tags.map((tag) => (\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={tag}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={tag}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonDelete={() => handleTagDelete(tag)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tProject amount\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t\t\t\t\t{values.amount[0]}\r\n\t\t\t\t\t\t\t\t\t\t\tK\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'amount',\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.amount}\r\n\t\t\t\t\t\t\t\t\t\t\tvalueLabelDisplay=\"auto\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t\t\t\t\t{values.amount[1]}\r\n\t\t\t\t\t\t\t\t\t\t\tK\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tProject status\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'projectStatus',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.projectStatus}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Ended\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"ended\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"On-Going\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"onGoing\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"In Review\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"inReview\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Competed\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"completed\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCustomer\r\n\t\t\t\t\t\t\t{expandCustomer ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerName',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerName}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t value\r\n\t\t\t\t\t\t\t\t\t\t\t\t&& handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'customerType',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerType}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tProject owner\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tFreelancer\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerEmail',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerEmail}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerPhone',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerPhone}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerAge',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tselect\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line react/jsx-sort-props\r\n\t\t\t\t\t\t\t\t\t\t\tSelectProps={{ native: true }}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerAge}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tApply filters\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nFilter.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\tonFilter: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default Filter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, Button, Input } from '@mui/material';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tsearch: {\r\n\t\tflexGrow: 1,\r\n\t\theight: 42,\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tsearchIcon: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t\tcolor: theme.palette.icon,\r\n\t},\r\n\tsearchInput: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tsearchButton: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst Search = (props) => {\r\n\tconst { onSearch, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tSearch\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSearch.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonSearch: PropTypes.func,\r\n};\r\n\r\nexport default Search;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport FilterListIcon from '@mui/icons-material/FilterList';\r\n\r\nimport { Search, Filter } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tsearch: {\r\n\t\tflexGrow: 1,\r\n\t\tmaxWidth: 480,\r\n\t\tflexBasis: 480,\r\n\t},\r\n\tfilterButton: {\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tfilterIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst SearchBar = (props) => {\r\n\tconst { onFilter, onSearch, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [openFilter, setOpenFilter] = useState(false);\r\n\r\n\tconst handleFilterOpen = () => {\r\n\t\tsetOpenFilter(true);\r\n\t};\r\n\r\n\tconst handleFilterClose = () => {\r\n\t\tsetOpenFilter(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\tShow\r\n\t\t\t\t\tfilters\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nSearchBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonFilter: PropTypes.func,\r\n\tonSearch: PropTypes.func,\r\n};\r\n\r\nexport default SearchBar;\r\n","import React, { memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tooltip, Avatar } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\tpaddingLeft: 20,\r\n\t},\r\n\tavatar: {\r\n\t\tborder: `3px solid ${theme.palette.white}`,\r\n\t\tmarginLeft: -20,\r\n\t\t'&:hover': {\r\n\t\t\tzIndex: 2,\r\n\t\t},\r\n\t},\r\n\tmore: {\r\n\t\tbackgroundColor: theme.palette.error.main,\r\n\t\tcolor: theme.palette.error.contrastText,\r\n\t\tfontSize: 14,\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n}));\r\n\r\nconst StackAvatars = (props) => {\r\n\tconst { avatars, limit, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst avatarNodes = avatars.slice(0, limit).map((item) => (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t));\r\n\r\n\tif (avatars.length > limit) {\r\n\t\tavatarNodes.push(\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t+\r\n\t\t\t\t\t{avatars.length - limit}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{avatarNodes}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nStackAvatars.propTypes = {\r\n\tavatars: PropTypes.array.isRequired,\r\n\tclassName: PropTypes.string,\r\n\tlimit: PropTypes.number.isRequired,\r\n};\r\n\r\nStackAvatars.defaultProps = {\r\n\t// eslint-disable-next-line react/default-props-match-prop-types\r\n\tlimit: 3,\r\n};\r\n\r\nexport default memo(StackAvatars);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'inline-block',\r\n\t\tborderRadius: '50%',\r\n\t\tflexGrow: 0,\r\n\t\tflexShrink: 0,\r\n\t},\r\n\tsmall: {\r\n\t\theight: theme.spacing(1),\r\n\t\twidth: theme.spacing(1),\r\n\t},\r\n\tmedium: {\r\n\t\theight: theme.spacing(2),\r\n\t\twidth: theme.spacing(2),\r\n\t},\r\n\tlarge: {\r\n\t\theight: theme.spacing(3),\r\n\t\twidth: theme.spacing(3),\r\n\t},\r\n\tdefault: {\r\n\t\tbackgroundColor: colors.grey[50],\r\n\t},\r\n\tprimary: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t},\r\n\tinfo: {\r\n\t\tbackgroundColor: colors.lightBlue[600],\r\n\t},\r\n\twarning: {\r\n\t\tbackgroundColor: colors.orange[900],\r\n\t},\r\n\terror: {\r\n\t\tbackgroundColor: theme.palette.error.main,\r\n\t},\r\n\tsuccess: {\r\n\t\tbackgroundColor: colors.green[600],\r\n\t},\r\n}));\r\n\r\nconst StatusBullet = (props) => {\r\n\tconst { className, size, color, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst rootClassName = clsx(\r\n\t\t{\r\n\t\t\t[classes.root]: true,\r\n\t\t\t[classes[size]]: size,\r\n\t\t\t[classes[color]]: color,\r\n\t\t},\r\n\t\tclassName\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nStatusBullet.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tcolor: PropTypes.oneOf([\r\n\t\t'default',\r\n\t\t'primary',\r\n\t\t'info',\r\n\t\t'success',\r\n\t\t'warning',\r\n\t\t'error',\r\n\t]),\r\n\tsize: PropTypes.oneOf(['small', 'medium', 'large']),\r\n};\r\n\r\nStatusBullet.defaultProps = {\r\n\tsize: 'medium',\r\n\tcolor: 'default',\r\n};\r\n\r\nexport default StatusBullet;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Drawer, Grid, Typography, Button, Hidden } from '@mui/material';\r\nimport CheckIcon from '@mui/icons-material/Check';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DeleteIcon from '@mui/icons-material/DeleteOutline';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n\tbuttonIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst TableEditBar = (props) => {\r\n\tconst {\r\n\t\tselected,\r\n\t\tclassName,\r\n\t\tonMarkPaid,\r\n\t\tonMarkUnpaid,\r\n\t\tonDelete,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst open = selected.length > 0;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{selected.length}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tselected\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nTableEditBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonDelete: PropTypes.func,\r\n\tonMarkPaid: PropTypes.func,\r\n\tonMarkUnpaid: PropTypes.func,\r\n\tselected: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default TableEditBar;\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Backdrop, CircularProgress } from '@mui/material';\r\nimport makeStyles from '@mui/styles/makeStyles';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tbackdrop: {\r\n\t\tzIndex: theme.zIndex.drawer + 999999,\r\n\t\tcolor: '#fff',\r\n\t},\r\n}));\r\n\r\nconst Loading = () => {\r\n\tconst classes = useStyles();\r\n\tconst isLoading = useSelector(state => state.session.isLoading);\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Loading;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Typography } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { module, view, actions, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{module}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{view}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{actions\r\n\t\t\t\t\t&& (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{actions}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tmodule: PropTypes.string,\r\n\tview: PropTypes.string,\r\n\tactions: PropTypes.object\r\n};\r\n\r\nHeader.defaultProps = {};\r\n\r\nexport default Header;\r\n","import React, { useSate } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Paper } from '@mui/material';\r\nimport withStyles from '@mui/styles/withStyles';\r\nimport CalendarPicker from '@mui/lab/CalendarPicker';\r\n\r\nconst styles = theme => ({\r\n\ticonButton: {\r\n\t\tbackgroundColor: '#465A65'\r\n\t}\r\n});\r\n\r\nconst Calendar = ({\r\n\tselectedDate,\r\n\thandleDateChange,\r\n\tclasses,\r\n\t...rest\r\n}) => {\r\n\tconst [selectedStateDate, setSelectedDate] = useSate({\r\n\t\tdate: selectedDate,\r\n\t\tonChange: handleDateChange\r\n\t});\r\n\r\n\tconst handleChange = date => {\r\n\t\tsetSelectedDate(date);\r\n\t\thandleDateChange(date);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCalendar.propTypes = {\r\n\tselectedDate: PropTypes.any.isRequired,\r\n\thandleDateChange: PropTypes.func.isRequired,\r\n\tclasses: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withStyles(styles)(Calendar);\r\n","import React, { useRef, useEffect } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, Card, CardContent, CardActions, Grid, Divider, colors, Paper, Tooltip, IconButton, InputBase } from '@mui/material';\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: '2px 4px',\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\twidth: '100%',\r\n\t\theight: '100%',\r\n\t},\r\n\tinput: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t\tflex: 1,\r\n\t},\r\n\ticonButton: {\r\n\t\tpadding: 10,\r\n\t},\r\n\tdivider: {\r\n\t\theight: 28,\r\n\t\tmargin: 4,\r\n\t},\r\n}));\r\n\r\nconst FilePicker = (props) => {\r\n\tconst { value, onChange, accept } = props;\r\n\tconst classes = useStyles();\r\n\tconst inputFile = useRef(null);\r\n\r\n\tconst _selectFile = () => {\r\n\t\tinputFile.current.click();\r\n\t};\r\n\r\n\tconst _onChange = (event) => {\r\n\t\tonChange(event);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t { inputFile.current = ref; }} onChange={_onChange} style={{ display: 'none' }} />\r\n\t\t\r\n\t);\r\n};\r\n\r\nFilePicker.propTypes = {\r\n\tvalue: PropTypes.string,\r\n\tonChange: PropTypes.func.isRequired,\r\n\taccept: PropTypes.string,\r\n};\r\n\r\nexport default FilePicker;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport { PowerBIEmbed } from 'powerbi-client-react';\r\nimport { models } from 'powerbi-client';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '80vh',\r\n\t},\r\n}));\r\n\r\nconst PowerBIDashboard = (props) => {\r\n\tconst { url, reportId, accessToken } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tuseEffect(() => {\r\n\t}, [url]);\r\n\r\n\tif (!url) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t { console.log('Report loaded'); }],\r\n\t\t\t\t\t['rendered', () => { console.log('Report rendered'); }],\r\n\t\t\t\t\t['error', (event) => { console.log(event.detail); }]\r\n\t\t\t\t])\r\n\t\t\t} */\r\n\t\t\tcssClassName={classes.root}\r\n\t\t\tgetEmbeddedComponent={(embeddedReport) => {\r\n\t\t\t\twindow.report = embeddedReport;\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nPowerBIDashboard.propTypes = {\r\n\turl: PropTypes.string.isRequired,\r\n\treportId: PropTypes.string.isRequired,\r\n\taccessToken: PropTypes.string.isRequired\r\n};\r\n\r\nexport default PowerBIDashboard;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tChip,\r\n\tCollapse,\r\n\tDivider,\r\n\tDrawer,\r\n\tFormControlLabel,\r\n\tRadio,\r\n\tRadioGroup,\r\n\tSlider,\r\n\tTextField,\r\n\tTypography,\r\n\tToggleButton, ToggleButtonGroup } from '@mui/material';\r\n\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DeleteIcon from '@mui/icons-material/DeleteOutlined';\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tdrawer: {\r\n\t\twidth: 420,\r\n\t\tmaxWidth: '100%',\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(2, 1),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tbuttonIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 3),\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tcontentSection: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tcontentSectionHeader: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tcursor: 'pointer',\r\n\t},\r\n\tcontentSectionContent: {},\r\n\tformGroup: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tfieldGroup: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tfield: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: 0,\r\n\t},\r\n\tflexGrow: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\taddButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\ttags: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tminAmount: {\r\n\t\tmarginRight: theme.spacing(3),\r\n\t},\r\n\tmaxAmount: {\r\n\t\tmarginLeft: theme.spacing(3),\r\n\t},\r\n\tradioGroup: {},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginTop: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst FiltersDrawer = (props) => {\r\n\tconst { open, onClose, onFilter, className, children, filterDisabled, onClear, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{children}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{onClear && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tApply filters\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nFiltersDrawer.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\tonFilter: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\tchildren: PropTypes.object,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func\r\n};\r\n\r\nexport default FiltersDrawer;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { TextField } from '@mui/material';\r\nimport { DatePicker as MuiDatePicker } from '@mui/lab';\r\n\r\nconst DatePicker = (props) => {\r\n\tconst { value,\r\n\t\tonChange,\r\n\t\tsize,\r\n\t\t...rest } = props;\r\n\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\treturn (\r\n\t\t setOpen(true)}\r\n\t\t\tonClose={() => setOpen(false)}\r\n\t\t\trenderInput={(p) => (\r\n\t\t\t\t setOpen(true)}\r\n\t\t\t\t\t{...rest}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t\tinputFormat=\"yyyy-MM-DD\"\r\n\t\t\tvalue={value || null}\r\n\t\t\tonChange={onChange}\r\n\t\t\tvariant=\"inline\"\r\n\t\t\tinputVariant=\"outlined\"\r\n\t\t\temptyLabel=\"\"\r\n\t\t\t{...rest}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nDatePicker.propTypes = {\r\n\tvalue: PropTypes.any.isRequired,\r\n\tonChange: PropTypes.func.isRequired,\r\n\tsize: PropTypes.string,\r\n};\r\n\r\nexport default DatePicker;\r\n","export const ENQUEUE_SNACKBAR = 'ENQUEUE_SNACKBAR';\r\nexport const CLOSE_SNACKBAR = 'CLOSE_SNACKBAR';\r\nexport const REMOVE_SNACKBAR = 'REMOVE_SNACKBAR';\r\n\r\nexport const enqueueSnackbar = (notification) => {\r\n\tconst key = notification.options && notification.options.key;\r\n\r\n\treturn {\r\n\t\ttype: ENQUEUE_SNACKBAR,\r\n\t\tnotification: {\r\n\t\t\t...notification,\r\n\t\t\tkey: key || new Date().getTime() + Math.random(),\r\n\t\t},\r\n\t};\r\n};\r\n\r\nexport const closeSnackbar = key => ({\r\n\ttype: CLOSE_SNACKBAR,\r\n\tdismissAll: !key, // dismiss all if no key has been defined\r\n\tkey,\r\n});\r\n\r\nexport const removeSnackbar = key => ({\r\n\ttype: REMOVE_SNACKBAR,\r\n\tkey,\r\n});\r\n","const config = {\r\n\tAPI_URL: process.env.REACT_APP_API_URL,\r\n\tTOKEN_KEY: process.env.REACT_APP_TOKEN_KEY,\r\n};\r\n\r\nexport default config;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, colors } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'inline-flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexGrow: 0,\r\n\t\tflexShrink: 0,\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t\tlineHeight: '10px',\r\n\t\tfontSize: '10px',\r\n\t\theight: 20,\r\n\t\tminWidth: 20,\r\n\t\twhiteSpace: 'nowrap',\r\n\t\tpadding: theme.spacing(0.5, 1),\r\n\t},\r\n\trounded: {\r\n\t\tborderRadius: 10,\r\n\t\tpadding: theme.spacing(0.5),\r\n\t},\r\n}));\r\n\r\nconst Label = (props) => {\r\n\tconst { className, variant, color, shape, children, style, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst rootClassName = clsx(\r\n\t\t{\r\n\t\t\t[classes.root]: true,\r\n\t\t\t[classes.rounded]: shape === 'rounded',\r\n\t\t},\r\n\t\tclassName\r\n\t);\r\n\r\n\tconst finalStyle = { ...style };\r\n\r\n\tif (variant === 'contained') {\r\n\t\tfinalStyle.backgroundColor = color;\r\n\t\tfinalStyle.color = '#FFF';\r\n\t} else {\r\n\t\tfinalStyle.border = `1px solid ${color}`;\r\n\t\tfinalStyle.color = color;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\nLabel.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\tclassName: PropTypes.string,\r\n\tcolor: PropTypes.string,\r\n\tshape: PropTypes.oneOf(['square', 'rounded']),\r\n\tstyle: PropTypes.object,\r\n\tvariant: PropTypes.oneOf(['contained', 'outlined']),\r\n};\r\n\r\nLabel.defaultProps = {\r\n\tstyle: {},\r\n\tcolor: colors.grey[600],\r\n\tvariant: 'contained',\r\n\tshape: 'square',\r\n};\r\n\r\nexport default Label;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport tableau from 'tableau-api';\r\n\r\nlet viz;\r\n\r\nexport const ShowExportPDFDialog = () => {\r\n\tviz.showExportPDFDialog();\r\n};\r\n\r\nconst TableauDashboard = (props) => {\r\n\tconst { url } = props;\r\n\t// const url = \"https://public.tableau.com/views/VacationHome/VacationHome?:embed=y&:display_count=yes\";\r\n\r\n\tconst _initViz = () => {\r\n\t\tif (viz) {\r\n\t\t\tviz.dispose();\r\n\t\t}\r\n\r\n\t\tconst containerDiv = document.getElementById('dashboard');\r\n\t\tconst options = {\r\n\t\t\t// hideTabs: true,\r\n\t\t\thideToolbar: true,\r\n\t\t\twidth: '100%',\r\n\t\t\theight: '100vh',\r\n\t\t\tonFirstVizSizeKnown(innerHeight) {\r\n\t\t\t\tcontainerDiv.setAttribute('style', `height:${innerHeight}px`);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tviz = new window.tableau.Viz(containerDiv, url, options);\r\n\t\t// Create a viz object and embed it in the container div.\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (url) {\r\n\t\t\t_initViz();\r\n\t\t}\r\n\t}, [url]);\r\n\r\n\tif (!url) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t);\r\n};\r\n\r\nTableauDashboard.propTypes = {\r\n\turl: PropTypes.string.isRequired\r\n};\r\n\r\nexport default TableauDashboard;\r\n","import _ from 'underscore';\r\nimport axios from 'axios';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport { SetLoading, RedirectToError } from 'actions/sessionActions';\r\n\r\nexport const interceptor = (store) => {\r\n\t// Add a request interceptor\r\n\taxios.interceptors.request.use((configuration) => {\r\n\t\t// Do something before request is sent\r\n\t\tif (!configuration.headers.Authorization) {\r\n\t\t\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\t\t\tif (token) {\r\n\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\tconfiguration.headers.Authorization = `Bearer ${token}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (configuration.hasLoading !== false || configuration.hasLoading === undefined) {\r\n\t\t\tstore.dispatch(SetLoading(true));\r\n\t\t}\r\n\r\n\t\treturn configuration;\r\n\t}, (error) => {\r\n\t\t// Do something with request error\r\n\t\tstore.dispatch(SetLoading(false));\r\n\t\treturn Promise.reject(error);\r\n\t});\r\n\r\n\t// Add a response interceptor\r\n\taxios.interceptors.response.use((response) => {\r\n\t\t// Any status code that lie within the range of 2xx cause this function to trigger\r\n\t\t// Do something with response data\r\n\t\tstore.dispatch(SetLoading(false));\r\n\t\treturn response;\r\n\t}, (error) => {\r\n\t\t// Any status codes that falls outside the range of 2xx cause this function to trigger\r\n\t\t// Do something with response error\r\n\t\tconst { request, response } = error;\r\n\t\tconst statusCode = response ? response.status : request.status;\r\n\r\n\t\tstore.dispatch(SetLoading(false));\r\n\t\tif (statusCode === 401) {\r\n\t\t\tstore.dispatch(RedirectToError('/errors/error-401'));\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\r\n\t\tif (statusCode === 404) {\r\n\t\t\tstore.dispatch(RedirectToError('/errors/error-404'));\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\r\n\t\tif (statusCode < 599 && statusCode >= 500) {\r\n\t\t\tstore.dispatch(RedirectToError('/errors/error-500'));\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\r\n\t\tconst errorObject = {\r\n\t\t\t// eslint-disable-next-line no-nested-ternary\r\n\t\t\tmessage: error.response ? (_.isString(error.response.data) ? error.response.data : 'Something went wrong!') : 'Network error!',\r\n\t\t\t// eslint-disable-next-line no-nested-ternary\r\n\t\t\tvariant: error.response ? (statusCode === 599 ? 'warning' : 'error') : 'error'\r\n\t\t};\r\n\r\n\t\treturn Promise.reject(errorObject);\r\n\t});\r\n};\r\n\r\nexport default axios;\r\n","import React from 'react';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst propTypes = {\r\n\tid: PropTypes.string,\r\n\tname: PropTypes.string,\r\n\tcolor: PropTypes.string,\r\n\tchecked: PropTypes.bool,\r\n\tonCheck: PropTypes.func,\r\n\tdisabled: PropTypes.bool,\r\n\tlabel: PropTypes.object,\r\n\tlabelPlacement: PropTypes.string,\r\n\tlabelStyle: PropTypes.object,\r\n};\r\n\r\nconst MaterialCheckbox = ({\r\n\tid,\r\n\tcolor = 'primary',\r\n\tchecked = false,\r\n\tonCheck,\r\n\tdisabled = false,\r\n\tlabel = '',\r\n\tlabelPlacement = 'end',\r\n\tlabelStyle,\r\n\t...rest\r\n}) => (\r\n\t\r\n\t\t)}\r\n\t\tlabel={label}\r\n\t\tlabelPlacement={labelPlacement}\r\n\t\tstyle={labelStyle}\r\n\t/>\r\n);\r\n\r\nMaterialCheckbox.muiName = 'Checkbox';\r\nMaterialCheckbox.displayName = Checkbox.muiName;\r\n\r\nMaterialCheckbox.propTypes = propTypes;\r\n\r\nexport default MaterialCheckbox;\r\n","import { useContext } from 'react';\r\nimport { __RouterContext } from 'react-router';\r\n\r\nexport default () => useContext(__RouterContext);\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport moment from 'moment';\r\nimport _ from 'underscore';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport jwt from 'jwt-decode';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport useRouter from 'utils/useRouter';\r\n\r\nimport { RedirectToError } from 'actions';\r\n\r\n// Example of user roles: ['GUEST', 'USER', 'ADMIN'];\r\n\r\nconst AuthGuard = (props) => {\r\n\tconst { roles, children, operators, projects } = props;\r\n\tconst loggedIn = useSelector((state) => state.session.loggedIn);\r\n\tconst link = useSelector((state) => state.session.link);\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst { history } = router;\r\n\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (token) {\r\n\t\t\tconst decoded = jwt(token);\r\n\t\t\t// const currentDate = moment().add(1, 'year').toDate().getTime() / 1000;\r\n\t\t\tconst currentDate = new Date().getTime() / 1000;\r\n\t\t\tif (decoded.exp < currentDate) {\r\n\t\t\t\thistory.push('/auth/login');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\thistory.push('/auth/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!loggedIn || !user) {\r\n\t\t\thistory.push('/auth/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (link) {\r\n\t\t\tdispatch(RedirectToError());\r\n\t\t\thistory.push(link);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ((roles && !roles.includes(user.role)) || (operators && !operators.includes(user.operator)) || (projects && user.projects && _.intersection(projects, user.projects).length === 0)) {\r\n\t\t\thistory.push('/errors/error-401');\r\n\t\t}\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [router]);\r\n\r\n\treturn <>{children};\r\n};\r\n\r\nAuthGuard.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\troles: PropTypes.array.isRequired,\r\n\toperators: PropTypes.array,\r\n\tprojects: PropTypes.array,\r\n};\r\n\r\nexport default AuthGuard;\r\n","import { colors } from '@mui/material';\r\n\r\nconst buildGradient = (start, end) => `linear-gradient(180deg, ${start} 0%, ${end} 100%)`;\r\n\r\nconst grey = buildGradient(colors.grey[400], colors.grey[600]);\r\nconst blue = buildGradient(colors.blue[700], colors.blue[900]);\r\nconst indigo = buildGradient(colors.indigo[400], colors.indigo[600]);\r\nconst green = buildGradient(colors.green[400], colors.green[600]);\r\nconst orange = buildGradient(colors.orange[400], colors.orange[700]);\r\nconst red = buildGradient(colors.red[500], colors.red[700]);\r\n\r\nexport default {\r\n\tgrey,\r\n\tblue,\r\n\tindigo,\r\n\tgreen,\r\n\torange,\r\n\tred,\r\n};\r\n"],"sourceRoot":""}