{"version":3,"sources":["utils/getInitials.js","components/AddPost/AddPost.js","components/Alert/Alert.js","components/CodeBlock/CodeBlock.js","components/CookiesNotification/CookiesNotification.js","utils/bytesToSize.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/DatePicker.js","components/DatePicker/index.js","components/DatePicker/Calendar.js","components/FilePicker/FilePicker.js","components/PowerBIDashboard/PowerBIDashboard.js","components/FiltersDrawer/FiltersDrawer.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/ParameterPlanning/requests/ParameterPlanningRequests.js","views/ParameterPlanning/actions/ParameterPlanningActions.js","views/ParameterPlanning/reducers/ParameterPlanningReducer.js","views/Tracking/requests/CommissioningPlanRequests.js","views/Tracking/actions/CommissioningPlanActions.js","views/Tracking/reducers/CommissioningPlanReducer.js","views/Validation/requests/CpichValidationRequests.js","views/Validation/actions/CpichValidationActions.js","views/Validation/reducers/CpichValidationReducer.js","views/Tracking/requests/TrackerRequests.js","views/Tracking/actions/TrackerActions.js","views/Tracking/reducers/TrackerReducer.js","views/Validation/requests/NbrRelationsValidationRequests.js","views/Validation/actions/NbrRelationsValidationActions.js","views/Validation/reducers/NbrRelationsValidationReducer.js","views/Validation/requests/HealthChecksRequests.js","views/Validation/actions/HealthChecksActions.js","views/Validation/reducers/HealthChecksReducer.js","views/Tracking/requests/WorkOrderStatusRequests.js","views/Tracking/actions/WorkOrderStatusActions.js","views/Tracking/reducers/WorkOrderStatusReducer.js","views/Optimization/requests/NbrRelationsOptimizationRequests.js","views/Optimization/actions/NbrRelationsOptimizationActions.js","views/Optimization/reducers/NbrRelationsOptimizationReducer.js","views/Monitoring/actions/FaultManagementActions.js","views/Monitoring/reducers/FaultManagementReducer.js","views/Monitoring/actions/ConfigurationManagementActions.js","views/Monitoring/reducers/ConfigurationManagementReducer.js","views/Monitoring/actions/OverallSiteSummaryActions.js","views/Monitoring/reducers/OverallSiteSummaryReducer.js","views/Monitoring/requests/SiteReportRequests.js","views/Monitoring/actions/SiteReportActions.js","views/Monitoring/reducers/SiteReportReducer.js","views/Monitoring/requests/UploadLogsRequests.js","views/Monitoring/actions/UploadLogsActions.js","views/Monitoring/reducers/UploadLogsReducer.js","views/Validation/requests/RanShareNbrRelationsValidationRequests.js","views/Validation/actions/RanShareNbrRelationsValidationActions.js","views/Validation/reducers/RanShareNbrRelationsValidationReducer.js","views/Validation/reducers/ANRValidationReducer.js","views/Validation/requests/AnrNbrTrackingRequests.js","views/Validation/actions/AnrNbrTrackingActions.js","views/Validation/reducers/AnrNbrTrackingReducer.js","views/Validation/requests/CositeHealthCheckRequests.js","views/Validation/actions/CositeHealthCheckActions.js","views/Validation/reducers/CositeHealthCheckReducer.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/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/ParameterPlanning/components/components/ParameterPlanningTable.js","views/ParameterPlanning/components/components/ParameterPlanningForm.js","views/ParameterPlanning/components/ParameterPlanning.js","views/Tracking/components/components/CommissioningPlanTable.js","views/Tracking/components/components/CommissioningPlanImportModal.js","views/Tracking/components/CommissioningPlan.js","views/Validation/components/components/CpichValidationTable.js","views/Validation/components/components/CpichValidationForm.js","views/Validation/components/CpichValidation.js","views/Tracking/components/components/TrackerTable.js","views/Tracking/components/components/ActionsButton.js","views/Tracking/components/components/TrackerImportModal.js","views/Tracking/components/Tracker.js","views/Validation/components/components/NbrRelationsValidationTable.js","views/Validation/components/components/NbrRelationsValidationForm.js","views/Validation/components/NbrRelationsValidation.js","views/Validation/components/components/RanShareNbrRelationsValidationForm.js","views/Validation/components/RanShareNbrRelationsValidation.js","views/Validation/components/components/HealthChecksForm.js","views/Validation/components/HealthChecks.js","views/Tracking/components/components/WorkOrderDeltaTable.js","views/Tracking/components/components/WorkOrderStatusImportModal.js","views/Tracking/components/WorkOrderStatus.js","views/Optimization/components/components/NbrRelationsOptimizationTable.js","views/Optimization/components/NbrRelationsOptimization.js","views/Monitoring/components/UploadLogs.js","views/Monitoring/components/components/FaultManagementTable.js","views/Monitoring/components/components/FaultManagementSummaryTable.js","views/Monitoring/components/FaultManagement.js","views/Monitoring/requests/FaultManagementRequests.js","views/Monitoring/components/components/ConfigurationManagementSummaryTable.js","views/Monitoring/components/ConfigurationManagement.js","views/Monitoring/requests/ConfigurationManagementRequests.js","views/Monitoring/components/components/OverallSiteSummaryTable.js","views/Monitoring/components/OverallSiteSummary.js","views/Monitoring/requests/OverallSiteSummaryRequests.js","views/Monitoring/components/components/SiteReportTable.js","views/Monitoring/components/SiteReport.js","views/Validation/requests/ANRValidationRequests.js","views/Validation/components/components/ANRValidationForm.js","views/Validation/actions/ANRValidationActions.js","views/Validation/components/ANRValidation.js","views/Validation/components/components/CositeHealthCheckTable.js","views/Validation/components/components/CositeHealthCheckForm.js","views/Validation/components/CositeHealthCheck.js","views/Validation/components/components/AnrNbrTrackingTable.js","views/Validation/components/components/AnrNbrTrackingForm.js","views/Validation/components/AnrNbrTracking.js","views/Optimization/requests/E2ENbrRelationsRequests.js","views/Optimization/components/E2ENbrRelations.js","views/Optimization/actions/E2ENbrRelationsActions.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","actions/notifierActions.js","components/DataTable/DataTable.js","configuration/configuration.js","utils/AxiosRequest.js","components/Label/Label.js","components/TableauDashboard/TableauDashboard.js","components/AuthGuard/AuthGuard.js","components/Checkbox/Checkbox.js","actions/sessionActions.js","utils/useRouter.js","utils/gradients.js"],"names":["name","replace","split","slice","map","v","toUpperCase","join","makeStyles","theme","root","content","display","alignItems","paper","flexGrow","padding","spacing","input","width","divider","height","fileInput","useStyles","borderRadius","shape","default","backgroundColor","palette","primary","main","color","contrastText","success","colors","green","white","info","lightBlue","warning","orange","error","message","icon","fontSize","marginRight","action","marginLeft","paddingLeft","icons","Alert","forwardRef","props","ref","className","variant","onClose","rest","classes","useState","open","setOpen","Collapse","in","Paper","clsx","component","Typography","elevation","IconButton","onClick","size","displayName","defaultProps","trimCode","codeLines","trim","shift","length","pop","indexOfFirstChar","search","output","forEach","line","index","substr","CodeBlock","async","source","language","Component","useRef","useEffect","Prism","current","maxWidth","position","bottom","right","margin","outline","zIndex","media","textAlign","actions","justifyContent","CookiesNotification","Cookies","get","Link","link","href","target","underline","Button","agreeButton","set","bytes","decimals","k","dm","sizes","i","Math","floor","log","parseFloat","pow","toFixed","dropZone","border","flexWrap","grey","opacity","cursor","dragActive","image","marginTop","list","maxHeight","FilesDropzone","multiple","acceptedTypes","upload","maxSize","files","setFiles","handleDrop","useCallback","acceptedFiles","f","concat","useDropzone","accept","onDrop","getRootProps","getInputProps","isDragActive","alt","src","gutterBottom","options","suppressScrollX","List","file","ListItem","ListItemIcon","ListItemText","primaryTypographyProps","secondary","bytesToSize","uuid","GenericMoreButton","moreRef","openMenu","setOpenMenu","Tooltip","title","Menu","anchorEl","anchorOrigin","vertical","horizontal","menu","transformOrigin","MenuItem","memo","process","REACT_APP_GA_MEASUREMENT_ID","typography","h1","marginBottom","h2","h3","h4","h5","h6","subtitle1","textDecoration","CustomRouterLink","style","item","paddingTop","paddingBottom","itemLeaf","button","blueGrey","textTransform","letterSpacing","buttonLeaf","fontWeight","fontWeightRegular","fontWeightMedium","expandIcon","label","active","NavigationListItem","depth","children","Icon","openProp","Label","disableGutters","o","activeClassName","exact","window","to","NavigationList","pages","reduce","items","page","router","userRole","userProjects","roles","includes","projects","_","intersection","matchPath","location","pathname","path","push","Boolean","reduceChildRoutes","Navigation","useRouter","listItem","background","avatarBlue","backgroundImage","gradients","blue","avatarGreen","avatarOrange","avatarRed","red","arrowForwardIcon","NotificationList","notifications","dispatch","useDispatch","avatars","Avatar","disablePadding","notification","readed","id","NotificationMarkAsRead","ListItemAvatar","addedDate","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","EmptyList","NotificationsPopover","Popover","CardHeader","Divider","overflowY","CardActions","RouterLink","GA_MEASUREMENT_ID","Page","gtag","page_path","page_name","Helmet","listStyle","userSelect","activeLink","break","breakLink","disabled","next","nextLink","pageLink","text","previous","previousLink","Paginate","pageCount","pageRangeDisplayed","onPageChange","activeLinkClassName","breakClassName","breakLabel","breakLinkClassName","containerClassName","disabledClassName","marginPagesDisplayed","nextClassName","nextLabel","nextLinkClassName","pageClassName","pageLinkClassName","previousClassName","previousLabel","previousLinkClassName","subContainerClassName","bubble","header","time","likeButton","likedButton","shareButton","shareIcon","subheader","accessTimeIcon","mediaArea","backgroundPosition","product","overflow","transition","transitions","create","easing","sharp","duration","leavingScreen","transform","top","left","lineHeight","recommended","contact","startButton","PricingModal","Dialog","align","subtitle","Grid","container","md","xs","description","tags","learnMoreButton","details","ProjectCard","project","liked","setLiked","Card","avatar","author","getInitials","disableTypography","moment","updated_at","fromNow","CardContent","colo","tag","price","type","starIcon","starFilledIcon","amber","starBorderIcon","ReviewStars","value","starCount","starNodes","key","starNode","inner","minWidth","activeButton","alpha","FormatQuoteIcon","FormatListBulletedIcon","FormatListNumberedIcon","CodeIcon","FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon","FormatBoldIcon","FormatItalicIcon","FormatUnderlined","newBlockRenderMap","Map","unstyled","element","paragraph","ScrollReset","DefaultDraftBlockRenderMap","merge","editorContainer","minHeight","body2","body1","fontFamily","textAlignLeft","textAlignCenter","textAlignRight","textAlignJustify","scrollTo","flexDirection","drawer","buttonIcon","contentSection","contentSectionHeader","contentSectionContent","formGroup","fieldGroup","field","addButton","minAmount","maxAmount","radioGroup","searchIcon","searchInput","searchButton","flexBasis","filterButton","filterIcon","more","StackAvatars","limit","avatarNodes","flexShrink","small","medium","large","StatusBullet","rootClassName","backdrop","Loading","isLoading","useSelector","state","session","Backdrop","CircularProgress","Header","module","view","DatePicker","onChange","onOpen","renderInput","p","TextField","fullWidth","e","inputFormat","inputVariant","emptyLabel","DatePickerIndex","withStyles","iconButton","selectedDate","handleDateChange","useSate","date","selectedStateDate","setSelectedDate","square","CalendarPicker","LocalizationProvider","dateAdapter","DateAdapter","flex","PowerBIDashboard","url","reportId","accessToken","embedConfig","embedUrl","tokenType","models","TokenType","Aad","settings","panes","filters","expanded","visible","BackgroundType","Default","cssClassName","getEmbeddedComponent","embeddedReport","report","black","dark","light","A400","subtitle2","caption","overline","styleOverrides","deletable","colorPrimary","MuiButton","contained","boxShadow","MuiCardActions","MuiCardContent","MuiCardHeader","MuiChip","MuiIconButton","MuiInputBase","MuiLinearProgress","MuiListItemIcon","MuiOutlinedInput","notchedOutline","borderColor","MuiPaper","elevation1","MuiTableHead","MuiTableCell","borderBottom","MuiTableRow","MuiToggleButton","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","MuiTypography","createTheme","components","overrides","token","localStorage","getItem","config","TOKEN_KEY","initialState","loggedIn","user","loadingCount","decoded","jwt","currentDate","Date","getTime","exp","sessionReducer","actionTypes","role","defaultState","GetUsersRequest","AxiosRequest","method","API_URL","params","GetRolesRequest","GetOperatorProjectsRequest","operatorIds","GetUserRequest","userId","ResendConfirmationEmailRequest","DeactivateUserRequest","GET_USERS","GET_USERS_STATS","TOGGLE_ADD_EDIT_USER_DIALOG","GET_ROLES","GET_OPERATORS","GET_OPERATOR_PROJECTS","SET_FORM_STATE","GET_USER","GetUsers","a","then","response","data","users","catch","enqueueSnackbar","GetUsersStats","usersStats","ToggleAddEditUserDialog","openAddEditUserDialog","openAddEditUserDialogId","onToggleAddEditUserDialog","SetFormState","formState","onSetFormState","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","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","coordinates","CenterLatitude","CenterLongitude","topology","twoG","threeG","fourG","legend","legendElements","updateEnd","UpdateCoordinates","newUpdateMaps","newCoordinates","UpdateTopology","newTopologyMaps","newTopology","UpdateLegend","newLegendMaps","newLegend","UpdatePopup","newMaps","control","activePopup","UpdateOverlays","activeLayers","MapReducer","RunParameterPlanningRequest","siteId","antenna","lteBands","GetParameterPlanningExportRequest","parameterPlanningId","GET_VISMON_LAST_UPDATE","GET_SITE_LIST","GET_PARAMETER_PLANNING_TABLE","vismonLastUpdate","siteList","parameterPlanningTableData","parameterPlanningReducer","ImportCommissioningPlanRequest","filePath","GET_LAST_IMPORT","GET_COMMISSIONING_PLAN_TABLE","TOGGLE_IMPORT_MODAL_VISIBILITY","GetLastImport","lastImport","GetCommissioningPlanTable","commissioningPlanTableData","ToggleImportModalVisibility","importModalVisibility","onToggleImportModalVisibility","commissioningPlanReducer","RunCpichValidationRequest","sites","GetCpichValidationExportRequest","cpichValidationId","GET_UTRANCELLS_LAST_UPDATE","GET_UTRAN_SITES","GET_CPICH_VALIDATION_TABLE","utranCellsLastUpdate","utranSites","cpichValidationTableData","cpichValidationReducer","ImportTrackerRequest","GET_TRACKER_LAST_UPDATE","GET_TRACKER_TABLE","GetTrackerLastUpdate","trackerLastUpdate","GetTrackerTable","trackerTableData","trackerReducer","GetNbrRelationsLastUpdateRequest","GetSitesRequest","RunNbrRelationsValidationRequest","site","filesPath","GetNbrRelationsValidationExportRequest","nbrRelationsValidationId","GET_NBRRELATIONS_LAST_UPDATE","GET_SITES","GET_NBRRELATIONS_VALIDATION_TABLE","RunNbrRelationsValidation","DownloadFile","nbrRelationsLastUpdate","NbrRelationsValidationTableData","nbrRelationsValidationReducer","nbrRelationsValidationTableData","GetHealthChecksExportRequest","healthChecksReducer","ImportWorkOrderStatusRequest","GET_WORK_ORDER_DELTA_TABLE","GetWorkOrderDeltaTable","workOrderDeltaTableData","workOrderStatusReducer","RunNbrRelationsOptimizationRequest","GetNbrRelationsOptimizationExportRequest","nbrRelationsOptimizationId","GET_NBRRELATIONS_OPTIMIZATION_TABLE","RunNbrRelationsOptimization","nbrRelationsOptimizationTableData","nbrRelationsOptimizationReducer","GET_FAULT_MANAGEMENT_TABLE","GET_FAULT_MANAGEMENT_SUMMARY_TABLE","faultManagementTableData","faultManagementSummaryTableData","faultManagementReducer","GET_CONFIGURATION_MANAGEMENT_SUMMARY_TABLE","configurationManagementSummaryTableData","configurationManagementReducer","GET_OVERALL_SITE_SUMMARY_TABLE","overallSiteSummaryTableData","overallSiteSummaryReducer","GetSiteReportRequest","GetSiteReportEmailRequest","GetSiteReportEmailAcceptanceRequest","GetSiteReportExcelRequest","GET_SITE_REPORT","SET_SELECTED_SITE","SetSelectedSite","selectedSite","onSetSelectedSite","siteReport","siteReportReducer","UploadLogsRequest","GET_LOGS_LAST_UPDATE","GetLogsLastUpdate","logsLastUpdate","RunUploadLogFiles","uploadLogsReducer","RanShareNbrRelationsValidationRunRequest","ranshareNbrRelationsValidationReducer","anrValidationReducer","GetAnrNbrTrackingExportRequest","startDate","endDate","GET_ANRNBRTRACKING_LAST_UPDATE","GET_ANRNBRTRACKING_SITES","GET_ANRNBRTRACKING_TABLE","GetNbrRelationsLastUpdate","GetAnrNbrTrackingSites","anrNbrTrackingSites","submit","anrNbrTrackingLastUpdate","anrNbrTrackingTableData","anrNbrTrackingReducer","GetCositeHealthCheckRequest","GET_COSITE_HEALTHCHECK_TABLE","cositeHealthCheckData","cositeHealthCheckReducer","rootReducer","combineReducers","notifierReducer","ENQUEUE_SNACKBAR","CLOSE_SNACKBAR","dismissAll","dismissed","REMOVE_SNACKBAR","settingsReducer","dashboardInspectReducer","mapReducer","Topbar","AppBar","Toolbar","breakpoints","up","Auth","route","fallback","LinearProgress","renderRoutes","routes","Error","startSignalRConnection","connection","origin","start","err","NotificationHub","NotificationRecieved","random","urlRoot","connectionHub","HubConnectionBuilder","withUrl","build","on","onclose","setTimeout","stop","HomeIcon","ListAltIcon","SettingsInputAntennaIcon","FactCheckOutlinedIcon","BuildIcon","MonitorHeartOutlinedIcon","ShowChartIcon","DashboardIcon","SupervisorAccountIcon","DesktopMacIcon","SettingsIcon","profile","navigation","NavBar","openMobile","onMobileClose","management","navigationConfig","hangfire","hangfireindex","findIndex","splice","managementIndex","navbarContent","firstname","lastname","Hidden","lgUp","Drawer","anchor","lgDown","searchPopper","appBar","searchPopperContent","trialButton","trialIcon","notificationsButton","notificationsBadge","logoutButton","logoutIcon","TopBar","onOpenNavBarMobile","history","notificationsRef","pricingModalOpen","setPricingModalOpen","openNotifications","setOpenNotifications","shallowEqual","Badge","badgeContent","badge","instance","axios","listItemText","lastActivity","whiteSpace","fab","topBar","navBar","Dashboard","openNavBarMobile","setOpenNavBarMobile","chartContainer","chart","statsContainer","statsItem","borderRight","dates","calendarTodayIcon","subtract","setStartDate","setEndDate","selectEdge","setSelectEdge","calendarDate","setCalendarDate","handleCalendarOpen","edge","lg","ButtonGroup","format","maxDate","onAccept","isAfter","isBefore","circle1","stroke","fill","strokeWidth","circle2","animation","strokeDasharray","subscriptions","conversion","conversionStats","down","valueContainer","fontWeightBold","progressContainer","startDateButton","endDateButton","critical","indicator","borderWidth","borderStyle","viewButton","progress","indigo","itemDivider","borderBottomColor","buttons","summaryButton","barChartIcon","titleWrapper","arrowIcon","addIcon","done","statistics","todos","Home","statsInner","mediaContainer","stats","TodaysMoney","nameCell","primaryButton","errorButton","UsersDataTable","_resendConfirmationEmail","ResendConfirmationEmail","_deactivateUser","DeactivateUser","_renderActions","tableMeta","rowData","DataTable","columns","viewColumns","filterType","customBodyRender","sortBy","val","sort","empty","updateValue","rowsPerPage","tableBodyMaxHeight","tableBodyCellMaxWidth","selectableRows","expandableRows","DialogTitle","closeButton","DialogContent","MuiDialogContent","ModalDialog","cancelLabel","confirmLabel","hasConfirm","onConfirmClicked","isDisabled","modal","autoScrollBodyContent","dialogProps","disableEscapeKeyDown","DialogActions","schema","presence","allowEmpty","email","roleId","fields","submitButton","AddEditUserForm","isEdit","setFormState","hasOperatorIdsChanged","usePrevious","validate","handleChange","event","checked","hasError","helperText","SelectField","hintText","menuItems","isMultiSelect","projectIds","AddEditUserDialog","alignContent","applyButton","onApply","getData","userData","CreateUser","Users","_addUser","sm","online","client","registered","results","detailsButton","deleteButton","OperatorCard","deleteOperator","navigateDetails","gridList","Projects","AddOperatorForm","AddOperatorDialog","Operators","_addOperator","OperatorsList","saveButton","Details","UpdateOperator","textAlgin","removeButton","Picture","inputFile","click","updateOperator","reader","FileReader","addEventListener","result","readAsDataURL","deliverables","members","Overview","xl","ActionsButton","ProjectsDataTable","_deleteProject","DeleteProject","AddProjectForm","AddProjectDialog","projectList","tabs","alert","OperatorDetails","tab","setTab","t","Tabs","scrollButtons","Tab","userList","GeneralForm","getUserInfo","General","oldpassword","newpassword","confirmnewpassword","equality","Security","overview","productImage","notice","Settings","OptionsButton","exportPdf","fullScreen","DashboardInspect","match","pageTitle","headerHidden","handle","useFullScreenHandle","_getDashboard","_fullScreen","enter","hidden","ShowExportPDFDialog","TableauDashboard","serverId","ParameterPlanningTable","_onGetParameterPlanning","GetParameterPlanningExport","toString","ParameterPlanningForm","filterOptions","createFilterOptions","_handleChange","Autocomplete","getOptionLabel","option","ParameterPlanning","isUndefined","CommissioningPlanTable","CommissioningPlanImportModal","UploadFile","UploadCommissioningPlan","CommissioningPlan","startIcon","CpichValidationTable","_onGetCpichValidationExport","GetCpichValidationExport","CpichValidationForm","RunCpichValidation","CpichValidation","TrackerTable","syncTracker","Sync","TrackerImportModal","UploadTracker","Tracker","NbrRelationsValidationTable","_onGetNbrRelationsValidationExport","NbrRelationsValidationId","NbrRelationsValidationForm","UploadMultipleFiles","NbrRelationsValidationUploadRun","NbrRelationsValidation","RanShareNbrRelationsValidationForm","RanShareNbrRelationsValidation","HealthChecksForm","HealthChecks","WorkOrderDeltaTable","WorkOrderStatusImportModal","UploadWorkOrderStatus","WorkOrderStatus","NbrRelationsOptimizationTable","_onGetNbrRelationsOptimizationExport","NbrRelationsOptimizationId","NbrRelationsOptimization","NbrRelationsOptimizationUploadRun","UploadLogs","UploadLogFiles","FaultManagementTable","customFilterListOptions","render","okCell","nokCell","FaultManagementSummaryTable","setCellProps","FaultManagement","ConfigurationManagementSummaryTable","ConfigurationManagement","OverallSiteSummaryTable","OverallSiteSummary","SiteReportTable","structure","setColumns","column","SiteReport","siteReportTabs","_handleSiteChange","x","TableName","TableStructure","TableData","RunANRValidationRequest","ANRValidationForm","RunANRValidation","ANRValidation","CositeHealthCheckTable","CositeHealthCheckForm","_hasError","useMemo","newTouched","each","keys","fullMessages","CositeHealthCheck","AnrNbrTrackingTable","AnrNbrTrackingForm","GetAnrNbrTrackingExport","AnrNbrTracking","RunE2ENbrRelationsRequest","E2ENbrRelations","E2ENbrRelationsUploadRun","AuthGuard","DashboardLayout","AuthLayout","lazy","ErrorLayout","displayed","Notifier","store","useSnackbar","closeSnackbar","React","reason","myKey","onExited","removeSnackbar","Chart","helpers","extend","elements","Rectangle","prototype","draw","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","cornerRadius","base","y","barSize","min","abs","halfStroke","borderLeft","borderTop","beginPath","fillStyle","strokeStyle","lineWidth","corners","startCorner","indexOf","cornerAt","corner","moveTo","nextCornerId","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","currency","deadline","add","created_at","subscription","proposalsLeft","templatesLeft","invitesLeft","adsLeft","hasAnalytics","hasEmailAlerts","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","status","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","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","cuantity","billing","referrals","initials","cyan","earnings","createBrowserHistory","basename","preloadedState","middlewares","thunkMiddleware","middlewareEnhancer","composeWithDevTools","applyMiddleware","enhancers","composedEnhancers","compose","createStore","configureStore","interceptor","App","StyledEngineProvider","injectFirst","ThemeProvider","maxSnack","autoHideDuration","hostname","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister","chips","chip","formControlStyle","customRenderValue","setLabelWidth","InputLabelRef","offsetWidth","htmlFor","inputProps","renderValue","selected","showDownload","showPrint","outerTheme","actionColumnWidth","adaptV4Theme","MUIDataTable","MUIDataTableHead","MUIDataTableHeadCell","MUIDataTableHeadRow","MUIDataTableBody","MUIDataTableBodyRow","body","MUIDataTablePagination","MUIDataTableViewCol","MUIDataTableSearch","MUIDataTableToolbar","MUIDataTableFilter","MUIDataTableFilterList","getMuiTheme","rowsPerPageOptions","download","print","responsive","onRowSelectionChange","currentRowsSelected","allRowsSelected","rowsSelected","onRowSelection","dt","interceptors","request","use","configuration","headers","Authorization","hasLoading","SetLoading","Promise","reject","statusCode","RedirectToError","errorObject","isString","rounded","finalStyle","viz","showExportPDFDialog","dispose","containerDiv","hideToolbar","onFirstVizSizeKnown","innerHeight","setAttribute","tableau","Viz","_initViz","propTypes","PropTypes","node","array","isRequired","MaterialCheckbox","onCheck","labelPlacement","labelStyle","muiName","Checkbox","SESSION_LOGIN","SESSION_LOGOUT","SET_NOTIFICATIONS","USER_INFO","SET_LOADING","REDIRECT_TO_ERROR","onLogin","onRedirectToError","login","password","setItem","logout","removeItem","recover","CompleteRegistration","rpassword","ResetPassword","FetchNotifications","formData","FormData","append","ShowFile","blob","filename","decodeURIComponent","newBlob","Blob","msSaveOrOpenBlob","URL","createObjectURL","createElement","appendChild","removeChild","revokeObjectURL","responseType","useContext","__RouterContext","buildGradient"],"mappings":"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","file":"static/js/main.df6e4602.chunk.js","sourcesContent":["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 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","export default (bytes, decimals = 2) => {\r\n\tif (bytes === 0) return '0 Bytes';\r\n\r\n\tconst k = 1024;\r\n\tconst dm = decimals < 0 ? 0 : decimals;\r\n\tconst sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n\r\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n\t// eslint-disable-next-line no-restricted-properties\r\n\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\r\n};\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, { 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\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};\r\n\r\nexport default DatePicker;\r\n","import React from 'react';\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport DatePicker from './DatePicker';\r\nimport Calendar from './Calendar';\r\nimport TimePicker from './TimePicker';\r\n\r\nconst CalendarIndex = (props) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nconst DatePickerIndex = (props) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nconst TimePickerIndex = (props) => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport {\r\n\tCalendarIndex,\r\n\tDatePickerIndex,\r\n\tTimePickerIndex\r\n};\r\n\r\nexport default DatePickerIndex;\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 { 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","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} 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 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 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 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","import {\r\n\tGET_USERS,\r\n\tGET_USERS_STATS,\r\n\tTOGGLE_ADD_EDIT_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\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 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 usersReducer = (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 usersReducer;\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 GetVismonLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Parameters/GetLastDumpDate`\r\n});\r\n\r\nexport const GetSiteListRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Parameters/GetSiteList`\r\n});\r\n\r\nexport const GetParameterPlanningTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Parameters/GetPlanningHistory`\r\n});\r\n\r\nexport const RunParameterPlanningRequest = (siteId, antenna, lteBands, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Parameters/RunParameterPlanning`,\r\n\tparams: { siteId, antenna, lteBands, userId }\r\n});\r\n\r\nexport const GetParameterPlanningExportRequest = (parameterPlanningId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Parameters/GetParameterPlanningExport`,\r\n\tparams: { parameterPlanningId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetVismonLastUpdateRequest,\r\n\tGetSiteListRequest,\r\n\tGetParameterPlanningTableRequest,\r\n\tRunParameterPlanningRequest,\r\n\tGetParameterPlanningExportRequest\r\n} from '../requests/ParameterPlanningRequests.js';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_VISMON_LAST_UPDATE = 'GET_VISMON_LAST_UPDATE';\r\nexport const GET_SITE_LIST = 'GET_SITE_LIST';\r\nexport const GET_PARAMETER_PLANNING_TABLE = 'GET_PARAMETER_PLANNING_TABLE';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetVismonLastUpdate = (value) => ({\r\n\ttype: GET_VISMON_LAST_UPDATE,\r\n\tvismonLastUpdate: value\r\n});\r\n\r\nexport const GetVismonLastUpdate = () => async (dispatch) => {\r\n\tawait GetVismonLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetVismonLastUpdate(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 onGetSiteList = (value) => ({\r\n\ttype: GET_SITE_LIST,\r\n\tsiteList: value\r\n});\r\n\r\nexport const GetSiteList = () => async (dispatch) => {\r\n\tawait GetSiteListRequest().then(response => {\r\n\t\tdispatch(onGetSiteList(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 onGetParameterPlanningTable = (value) => ({\r\n\ttype: GET_PARAMETER_PLANNING_TABLE,\r\n\tparameterPlanningTableData: value\r\n});\r\n\r\nexport const GetParameterPlanningTable = () => async (dispatch) => {\r\n\tawait GetParameterPlanningTableRequest().then(response => {\r\n\t\tdispatch(onGetParameterPlanningTable(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 RunParameterPlanning = (siteId, antenna, lteBands, userId) => async (dispatch) => {\r\n\tawait RunParameterPlanningRequest(siteId, antenna, lteBands, userId).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 GetParameterPlanningExport = (parameterPlanningId) => async (dispatch) => {\r\n\tawait GetParameterPlanningExportRequest(parameterPlanningId).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\tSET_FORM_STATE,\r\n\tGET_VISMON_LAST_UPDATE,\r\n\tGET_SITE_LIST,\r\n\tGET_PARAMETER_PLANNING_TABLE,\r\n} from '../actions/ParameterPlanningActions';\r\n\r\nconst initialState = {\r\n\tformState: { siteId: '', antenna: 'AIR3227/78', lteBands: ['L800', 'L1800', 'L2100', 'L2600'] },\r\n\tvismonLastUpdate: '',\r\n\tsiteList: [],\r\n\tparameterPlanningTableData: []\r\n};\r\n\r\nconst parameterPlanningReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_VISMON_LAST_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\tvismonLastUpdate: action.vismonLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_LIST: {\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\tsiteList: action.siteList\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_PARAMETER_PLANNING_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\tparameterPlanningTableData: action.parameterPlanningTableData\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 parameterPlanningReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetLastImportRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetCommissioningPlanLastImport`\r\n});\r\n\r\nexport const GetCommissioningPlanTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetCommissioningPlan`\r\n});\r\n\r\nexport const GetCommissioningPlanExportRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetCommissioningPlanExcel`\r\n});\r\n\r\nexport const ImportCommissioningPlanRequest = (filePath) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/CommissioningPlanUpload`,\r\n\tparams: { filePath }\r\n});\r\n","import { enqueueSnackbar, UploadFile } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetLastImportRequest,\r\n\tGetCommissioningPlanTableRequest,\r\n\tGetCommissioningPlanExportRequest,\r\n\tImportCommissioningPlanRequest\r\n} from '../requests/CommissioningPlanRequests.js';\r\n\r\nexport const GET_LAST_IMPORT = 'GET_LAST_IMPORT';\r\nexport const GET_COMMISSIONING_PLAN_TABLE = 'GET_COMMISSIONING_PLAN_TABLE';\r\nexport const TOGGLE_IMPORT_MODAL_VISIBILITY = 'TOGGLE_IMPORT_MODAL_VISIBILITY';\r\n\r\nconst onGetLastImport = (value) => ({\r\n\ttype: GET_LAST_IMPORT,\r\n\tlastImport: value\r\n});\r\n\r\nexport const GetLastImport = () => async (dispatch) => {\r\n\tawait GetLastImportRequest().then(response => {\r\n\t\tdispatch(onGetLastImport(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 onGetCommissioningPlanTable = (value) => ({\r\n\ttype: GET_COMMISSIONING_PLAN_TABLE,\r\n\tcommissioningPlanTableData: value\r\n});\r\n\r\nexport const GetCommissioningPlanTable = () => async (dispatch) => {\r\n\tawait GetCommissioningPlanTableRequest().then(response => {\r\n\t\tdispatch(onGetCommissioningPlanTable(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 GetCommissioningPlanExport = () => async (dispatch) => {\r\n\tawait GetCommissioningPlanExportRequest().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\nconst onToggleImportModalVisibility = (visible) => ({\r\n\ttype: TOGGLE_IMPORT_MODAL_VISIBILITY,\r\n\timportModalVisibility: visible\r\n});\r\n\r\nexport const ToggleImportModalVisibility = (visible) => (dispatch) => {\r\n\tdispatch(onToggleImportModalVisibility(visible));\r\n};\r\n\r\nexport const ImportCommissioningPlan = (filePath) => async (dispatch) => {\r\n\tawait ImportCommissioningPlanRequest(filePath).then(response => {\r\n\t\tdispatch(GetCommissioningPlanTable());\r\n\t\tdispatch(GetLastImport());\r\n\t\tdispatch(enqueueSnackbar({ message: 'Commissioning Plan successfully imported!', options: { 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 UploadCommissioningPlan = (file) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(ImportCommissioningPlan(response.data));\r\n\t\tdispatch(ToggleImportModalVisibility(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_LAST_IMPORT,\r\n\tGET_COMMISSIONING_PLAN_TABLE,\r\n\tTOGGLE_IMPORT_MODAL_VISIBILITY\r\n} from '../actions/CommissioningPlanActions.js';\r\n\r\nconst initialState = {\r\n\tlastImport: '',\r\n\tcommissioningPlanTableData: [],\r\n\timportModalVisibility: false\r\n};\r\n\r\nconst commissioningPlanReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_LAST_IMPORT: {\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\tlastImport: action.lastImport\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_COMMISSIONING_PLAN_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\tcommissioningPlanTableData: action.commissioningPlanTableData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_IMPORT_MODAL_VISIBILITY: {\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\timportModalVisibility: action.importModalVisibility\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 commissioningPlanReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetUtranCellsLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetLastUtranCellsDate`\r\n});\r\n\r\nexport const GetUtranSitesRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetUtranSites`\r\n});\r\n\r\nexport const RunCpichValidationRequest = (sites, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/RunCpichValidation`,\r\n\tparams: { sites, userId }\r\n});\r\n\r\nexport const GetCpichValidationTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetCpichValidationHistory`\r\n});\r\n\r\nexport const GetCpichValidationExportRequest = (cpichValidationId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetCpichValidationExport`,\r\n\tparams: { cpichValidationId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetUtranCellsLastUpdateRequest,\r\n\tGetUtranSitesRequest,\r\n\tRunCpichValidationRequest,\r\n\tGetCpichValidationExportRequest,\r\n\tGetCpichValidationTableRequest\r\n} from '../requests/CpichValidationRequests.js';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_UTRANCELLS_LAST_UPDATE = 'GET_UTRANCELLS_LAST_UPDATE';\r\nexport const GET_UTRAN_SITES = 'GET_UTRAN_SITES';\r\nexport const GET_CPICH_VALIDATION_TABLE = 'GET_CPICH_VALIDATION_TABLE';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetUtranCellsLastUpdate = (value) => ({\r\n\ttype: GET_UTRANCELLS_LAST_UPDATE,\r\n\tutranCellsLastUpdate: value\r\n});\r\n\r\nexport const GetUtranCellsLastUpdate = () => async (dispatch) => {\r\n\tawait GetUtranCellsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetUtranCellsLastUpdate(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 onGetUtranSites = (value) => ({\r\n\ttype: GET_UTRAN_SITES,\r\n\tutranSites: value\r\n});\r\n\r\nexport const GetUtranSites = () => async (dispatch) => {\r\n\tawait GetUtranSitesRequest().then(response => {\r\n\t\tdispatch(onGetUtranSites(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 onGetCpichValidationTable = (value) => ({\r\n\ttype: GET_CPICH_VALIDATION_TABLE,\r\n\tcpichValidationTableData: value\r\n});\r\n\r\nexport const GetCpichValidationTable = () => async (dispatch) => {\r\n\tawait GetCpichValidationTableRequest().then(response => {\r\n\t\tdispatch(onGetCpichValidationTable(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 RunCpichValidation = (sites, userId) => async (dispatch) => {\r\n\tawait RunCpichValidationRequest(sites, userId).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 GetCpichValidationExport = (cpichValidationId) => async (dispatch) => {\r\n\tawait GetCpichValidationExportRequest(cpichValidationId).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\tSET_FORM_STATE,\r\n\tGET_UTRANCELLS_LAST_UPDATE,\r\n\tGET_UTRAN_SITES,\r\n\tGET_CPICH_VALIDATION_TABLE\r\n} from '../actions/CpichValidationActions';\r\n\r\nconst initialState = {\r\n\tformState: { sites: [] },\r\n\tutranCellsLastUpdate: '',\r\n\tutranSites: [],\r\n\tcpichValidationTableData: []\r\n};\r\n\r\nconst cpichValidationReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_UTRANCELLS_LAST_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\tutranCellsLastUpdate: action.utranCellsLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_UTRAN_SITES: {\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\tutranSites: action.utranSites\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_CPICH_VALIDATION_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\tcpichValidationTableData: action.cpichValidationTableData\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 cpichValidationReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetTrackerLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetTrackerLastUpdate`\r\n});\r\n\r\nexport const GetTrackerTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetTracker`\r\n});\r\n\r\nexport const SyncTrackerRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/TrackerUpload`\r\n});\r\n\r\nexport const DownloadTrackerRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/DownloadTracker`\r\n});\r\n\r\nexport const ImportTrackerRequest = (filePath) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/ImportTracker`,\r\n\tparams: { filePath }\r\n});\r\n","import { enqueueSnackbar, UploadFile } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetTrackerLastUpdateRequest,\r\n\tGetTrackerTableRequest,\r\n\tSyncTrackerRequest,\r\n\tDownloadTrackerRequest,\r\n\tImportTrackerRequest\r\n} from '../requests/TrackerRequests.js';\r\n\r\nexport const GET_TRACKER_LAST_UPDATE = 'GET_TRACKER_LAST_UPDATE';\r\nexport const GET_TRACKER_TABLE = 'GET_TRACKER_TABLE';\r\nexport const TOGGLE_IMPORT_MODAL_VISIBILITY = 'TOGGLE_IMPORT_MODAL_VISIBILITY';\r\n\r\nconst onGetTrackerLastUpdate = (value) => ({\r\n\ttype: GET_TRACKER_LAST_UPDATE,\r\n\ttrackerLastUpdate: value\r\n});\r\n\r\nexport const GetTrackerLastUpdate = () => async (dispatch) => {\r\n\tawait GetTrackerLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetTrackerLastUpdate(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 onGetTrackerTable = (value) => ({\r\n\ttype: GET_TRACKER_TABLE,\r\n\ttrackerTableData: value\r\n});\r\n\r\nexport const GetTrackerTable = () => async (dispatch) => {\r\n\tawait GetTrackerTableRequest().then(response => {\r\n\t\tdispatch(onGetTrackerTable(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 SyncTracker = () => async (dispatch) => {\r\n\tawait SyncTrackerRequest().then(response => {\r\n\t\tdispatch(GetTrackerTable());\r\n\t\tdispatch(GetTrackerLastUpdate());\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 DownloadTracker = () => async (dispatch) => {\r\n\tawait DownloadTrackerRequest().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\nconst onToggleImportModalVisibility = (visible) => ({\r\n\ttype: TOGGLE_IMPORT_MODAL_VISIBILITY,\r\n\timportModalVisibility: visible\r\n});\r\n\r\nexport const ToggleImportModalVisibility = (visible) => (dispatch) => {\r\n\tdispatch(onToggleImportModalVisibility(visible));\r\n};\r\n\r\nexport const ImportTracker = (filePath) => async (dispatch) => {\r\n\tawait ImportTrackerRequest(filePath).then(response => {\r\n\t\tdispatch(GetTrackerTable());\r\n\t\tdispatch(GetTrackerLastUpdate());\r\n\t\tdispatch(enqueueSnackbar({ message: 'Tracker successfully imported!', options: { 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 UploadTracker = (file) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(ImportTracker(response.data));\r\n\t\tdispatch(ToggleImportModalVisibility(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_TRACKER_LAST_UPDATE,\r\n\tGET_TRACKER_TABLE,\r\n\tTOGGLE_IMPORT_MODAL_VISIBILITY\r\n} from '../actions/TrackerActions.js';\r\n\r\nconst initialState = {\r\n\ttrackerLastUpdate: '',\r\n\ttrackerTableData: [],\r\n\timportModalVisibility: false\r\n};\r\n\r\nconst trackerReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_TRACKER_LAST_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\ttrackerLastUpdate: action.trackerLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TRACKER_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\ttrackerTableData: action.trackerTableData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_IMPORT_MODAL_VISIBILITY: {\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\timportModalVisibility: action.importModalVisibility\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 trackerReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetNbrRelationsLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetLastNbrRelationsDate`\r\n});\r\n\r\nexport const GetSitesRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetSites`\r\n});\r\n\r\nexport const RunNbrRelationsValidationRequest = (site, userId, filesPath) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/RunNbrRelationsValidation`,\r\n\tparams: { site, userId, filesPath }\r\n});\r\n\r\nexport const GetNbrRelationsValidationTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetNbrRelationsValidationHistory`\r\n});\r\n\r\nexport const GetNbrRelationsValidationExportRequest = (nbrRelationsValidationId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetNbrRelationsValidationExport`,\r\n\tparams: { nbrRelationsValidationId }\r\n});\r\n","import { enqueueSnackbar, UploadMultipleFiles } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetNbrRelationsLastUpdateRequest,\r\n\tGetSitesRequest,\r\n\tRunNbrRelationsValidationRequest,\r\n\tGetNbrRelationsValidationExportRequest,\r\n\tGetNbrRelationsValidationTableRequest\r\n} from '../requests/NbrRelationsValidationRequests.js';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_NBRRELATIONS_LAST_UPDATE = 'GET_NBRRELATIONS_LAST_UPDATE';\r\nexport const GET_SITES = 'GET_SITES';\r\nexport const GET_NBRRELATIONS_VALIDATION_TABLE = 'GET_NBRRELATIONS_VALIDATION_TABLE';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetNbrRelationsLastUpdate = (value) => ({\r\n\ttype: GET_NBRRELATIONS_LAST_UPDATE,\r\n\tnbrRelationsLastUpdate: value\r\n});\r\n\r\nexport const GetNbrRelationsLastUpdate = () => async (dispatch) => {\r\n\tawait GetNbrRelationsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsLastUpdate(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 onGetSites = (value) => ({\r\n\ttype: GET_SITES,\r\n\tsites: value\r\n});\r\n\r\nexport const GetSites = () => async (dispatch) => {\r\n\tawait GetSitesRequest().then(response => {\r\n\t\tdispatch(onGetSites(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 onGetNbrRelationsValidationTable = (value) => ({\r\n\ttype: GET_NBRRELATIONS_VALIDATION_TABLE,\r\n\tnbrRelationsValidationTableData: value\r\n});\r\n\r\nexport const GetNbrRelationsValidationTable = () => async (dispatch) => {\r\n\tawait GetNbrRelationsValidationTableRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsValidationTable(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 GetNbrRelationsValidationExport = (nbrRelationsValidationId) => async (dispatch) => {\r\n\tawait GetNbrRelationsValidationExportRequest(nbrRelationsValidationId).then(response => {\r\n\t\tif (response.data.includes(':\\\\')) {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t} else {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'success' } }));\r\n\t\t}\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 RunNbrRelationsValidation = (site, userId, filesPath) => async (dispatch) => {\r\n\tawait RunNbrRelationsValidationRequest(site, userId, filesPath).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 NbrRelationsValidationUploadRun = (site, userId, files) => async (dispatch) => {\r\n\tawait UploadMultipleFiles(files).then(response => {\r\n\t\tdispatch(RunNbrRelationsValidation(site, userId, 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\tSET_FORM_STATE,\r\n\tGET_NBRRELATIONS_LAST_UPDATE,\r\n\tGET_SITES,\r\n\tGET_NBRRELATIONS_VALIDATION_TABLE\r\n} from '../actions/NbrRelationsValidationActions';\r\n\r\nconst initialState = {\r\n\tformState: { siteId: '' },\r\n\tnbrRelationsLastUpdate: '',\r\n\tsites: [],\r\n\tNbrRelationsValidationTableData: []\r\n};\r\n\r\nconst nbrRelationsValidationReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_NBRRELATIONS_LAST_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\tnbrRelationsLastUpdate: action.nbrRelationsLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITES: {\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\tsites: action.sites\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_NBRRELATIONS_VALIDATION_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\tnbrRelationsValidationTableData: action.nbrRelationsValidationTableData\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 nbrRelationsValidationReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetHealthChecksExportRequest = (siteId, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetHealthChecksExport`,\r\n\tparams: { siteId, userId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetSitesRequest,\r\n\tGetNbrRelationsLastUpdateRequest\r\n} from '../requests/NbrRelationsValidationRequests.js';\r\n\r\nimport {\r\n\tGetHealthChecksExportRequest,\r\n} from '../requests/HealthChecksRequests.js';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_NBRRELATIONS_LAST_UPDATE = 'GET_NBRRELATIONS_LAST_UPDATE';\r\nexport const GET_SITES = 'GET_SITES';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetNbrRelationsLastUpdate = (value) => ({\r\n\ttype: GET_NBRRELATIONS_LAST_UPDATE,\r\n\tnbrRelationsLastUpdate: value\r\n});\r\n\r\nexport const GetNbrRelationsLastUpdate = () => async (dispatch) => {\r\n\tawait GetNbrRelationsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsLastUpdate(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 onGetSites = (value) => ({\r\n\ttype: GET_SITES,\r\n\tsites: value\r\n});\r\n\r\nexport const GetSites = () => async (dispatch) => {\r\n\tawait GetSitesRequest().then(response => {\r\n\t\tdispatch(onGetSites(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 GetHealthChecksExport = (siteId, userId) => async (dispatch) => {\r\n\tawait GetHealthChecksExportRequest(siteId, userId).then(response => {\r\n\t\tif (response.data.includes(':\\\\')) {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t} else {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'success' } }));\r\n\t\t}\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\tSET_FORM_STATE,\r\n\tGET_NBRRELATIONS_LAST_UPDATE,\r\n\tGET_SITES,\r\n} from '../actions/HealthChecksActions';\r\n\r\nconst initialState = {\r\n\tformState: { siteId: '' },\r\n\tnbrRelationsLastUpdate: '',\r\n\tsites: [],\r\n};\r\n\r\nconst healthChecksReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_NBRRELATIONS_LAST_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\tnbrRelationsLastUpdate: action.nbrRelationsLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITES: {\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\tsites: action.sites\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 healthChecksReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetLastImportRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetWorkOrderStatusLastImport`\r\n});\r\n\r\nexport const GetWorkOrderDeltaTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetWorkOrderStatusDelta`\r\n});\r\n\r\nexport const ImportWorkOrderStatusRequest = (filePath) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/WorkOrderStatusUpload`,\r\n\tparams: { filePath }\r\n});\r\n\r\nexport const GetWorkOrderStatusExportRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetWorkOrderStatusExcel`\r\n});\r\n\r\nexport const GetWorkOrderDeltaExportRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetWorkOrderStatusDeltaExcel`\r\n});\r\n","import { enqueueSnackbar, UploadFile } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetLastImportRequest,\r\n\tGetWorkOrderDeltaTableRequest,\r\n\tGetWorkOrderStatusExportRequest,\r\n\tGetWorkOrderDeltaExportRequest,\r\n\tImportWorkOrderStatusRequest\r\n} from '../requests/WorkOrderStatusRequests.js';\r\n\r\nexport const GET_LAST_IMPORT = 'GET_LAST_IMPORT';\r\nexport const GET_WORK_ORDER_DELTA_TABLE = 'GET_WORK_ORDER_DELTA_TABLE';\r\nexport const TOGGLE_IMPORT_MODAL_VISIBILITY = 'TOGGLE_IMPORT_MODAL_VISIBILITY';\r\n\r\nconst onGetLastImport = (value) => ({\r\n\ttype: GET_LAST_IMPORT,\r\n\tlastImport: value\r\n});\r\n\r\nexport const GetLastImport = () => async (dispatch) => {\r\n\tawait GetLastImportRequest().then(response => {\r\n\t\tdispatch(onGetLastImport(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 onGetWorkOrderDeltaTable = (value) => ({\r\n\ttype: GET_WORK_ORDER_DELTA_TABLE,\r\n\tworkOrderDeltaTableData: value\r\n});\r\n\r\nexport const GetWorkOrderDeltaTable = () => async (dispatch) => {\r\n\tawait GetWorkOrderDeltaTableRequest().then(response => {\r\n\t\tdispatch(onGetWorkOrderDeltaTable(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 GetWorkOrderStatusExport = () => async (dispatch) => {\r\n\tawait GetWorkOrderStatusExportRequest().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 GetWorkOrderDeltaExport = () => async (dispatch) => {\r\n\tawait GetWorkOrderDeltaExportRequest().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\nconst onToggleImportModalVisibility = (visible) => ({\r\n\ttype: TOGGLE_IMPORT_MODAL_VISIBILITY,\r\n\timportModalVisibility: visible\r\n});\r\n\r\nexport const ToggleImportModalVisibility = (visible) => (dispatch) => {\r\n\tdispatch(onToggleImportModalVisibility(visible));\r\n};\r\n\r\nexport const ImportWorkOrderStatus = (filePath) => async (dispatch) => {\r\n\tawait ImportWorkOrderStatusRequest(filePath).then(response => {\r\n\t\tdispatch(GetWorkOrderDeltaTable());\r\n\t\tdispatch(GetLastImport());\r\n\t\tdispatch(enqueueSnackbar({ message: 'Work Order Status successfully imported!', options: { 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 UploadWorkOrderStatus = (file) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(ImportWorkOrderStatus(response.data));\r\n\t\tdispatch(ToggleImportModalVisibility(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_LAST_IMPORT,\r\n\tGET_WORK_ORDER_DELTA_TABLE,\r\n\tTOGGLE_IMPORT_MODAL_VISIBILITY\r\n} from '../actions/WorkOrderStatusActions.js';\r\n\r\nconst initialState = {\r\n\tlastImport: '',\r\n\tworkOrderDeltaTableData: [],\r\n\timportModalVisibility: false\r\n};\r\n\r\nconst workOrderStatusReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_LAST_IMPORT: {\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\tlastImport: action.lastImport\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_WORK_ORDER_DELTA_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\tworkOrderDeltaTableData: action.workOrderDeltaTableData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_IMPORT_MODAL_VISIBILITY: {\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\timportModalVisibility: action.importModalVisibility\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 workOrderStatusReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const RunNbrRelationsOptimizationRequest = (userId, filesPath) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Optimization/RunNbrRelationsOptimization`,\r\n\tparams: { userId, filesPath }\r\n});\r\n\r\nexport const GetNbrRelationsOptimizationTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Optimization/GetNbrRelationsOptimizationHistory`\r\n});\r\n\r\nexport const GetNbrRelationsOptimizationExportRequest = (nbrRelationsOptimizationId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Optimization/GetNbrRelationsOptimizationExport`,\r\n\tparams: { nbrRelationsOptimizationId }\r\n});\r\n","import { enqueueSnackbar, UploadMultipleFiles } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tRunNbrRelationsOptimizationRequest,\r\n\tGetNbrRelationsOptimizationExportRequest,\r\n\tGetNbrRelationsOptimizationTableRequest\r\n} from '../requests/NbrRelationsOptimizationRequests.js';\r\n\r\nexport const GET_NBRRELATIONS_OPTIMIZATION_TABLE = 'GET_NBRRELATIONS_OPTIMIZATION_TABLE';\r\n\r\nconst onGetNbrRelationsOptimizationTable = (value) => ({\r\n\ttype: GET_NBRRELATIONS_OPTIMIZATION_TABLE,\r\n\tnbrRelationsOptimizationTableData: value\r\n});\r\n\r\nexport const GetNbrRelationsOptimizationTable = () => async (dispatch) => {\r\n\tawait GetNbrRelationsOptimizationTableRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsOptimizationTable(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 GetNbrRelationsOptimizationExport = (nbrRelationsOptimizationId) => async (dispatch) => {\r\n\tawait GetNbrRelationsOptimizationExportRequest(nbrRelationsOptimizationId).then(response => {\r\n\t\tif (response.data.includes(':\\\\')) {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t} else {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'success' } }));\r\n\t\t}\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 RunNbrRelationsOptimization = (userId, filesPath) => async (dispatch) => {\r\n\tawait RunNbrRelationsOptimizationRequest(userId, filesPath).then(response => {\r\n\t\tif (response.data.includes(':\\\\')) {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t} else {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'success' } }));\r\n\t\t}\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 NbrRelationsOptimizationUploadRun = (userId, files) => async (dispatch) => {\r\n\tawait UploadMultipleFiles(files).then(response => {\r\n\t\tdispatch(RunNbrRelationsOptimization(userId, 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_NBRRELATIONS_OPTIMIZATION_TABLE\r\n} from '../actions/NbrRelationsOptimizationActions';\r\n\r\nconst initialState = {\r\n\tnbrRelationsOptimizationTableData: []\r\n};\r\n\r\nconst nbrRelationsOptimizationReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_NBRRELATIONS_OPTIMIZATION_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\tnbrRelationsOptimizationTableData: action.nbrRelationsOptimizationTableData\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 nbrRelationsOptimizationReducer;\r\n","import { enqueueSnackbar, UploadMultipleFiles } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetFaultManagementTableRequest,\r\n\tGetFaultManagementSummaryTableRequest\r\n} from '../requests/FaultManagementRequests.js';\r\n\r\nexport const GET_FAULT_MANAGEMENT_TABLE = 'GET_FAULT_MANAGEMENT_TABLE';\r\nexport const GET_FAULT_MANAGEMENT_SUMMARY_TABLE = 'GET_FAULT_MANAGEMENT_SUMMARY_TABLE';\r\n\r\nconst onGetFaultManagementTable = (value) => ({\r\n\ttype: GET_FAULT_MANAGEMENT_TABLE,\r\n\tfaultManagementTableData: value\r\n});\r\n\r\nexport const GetFaultManagementTable = () => async (dispatch) => {\r\n\tawait GetFaultManagementTableRequest().then(response => {\r\n\t\tdispatch(onGetFaultManagementTable(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 onGetFaultManagementSummaryTable = (value) => ({\r\n\ttype: GET_FAULT_MANAGEMENT_SUMMARY_TABLE,\r\n\tfaultManagementSummaryTableData: value\r\n});\r\n\r\nexport const GetFaultManagementSummaryTable = () => async (dispatch) => {\r\n\tawait GetFaultManagementSummaryTableRequest().then(response => {\r\n\t\tdispatch(onGetFaultManagementSummaryTable(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_FAULT_MANAGEMENT_TABLE,\r\n\tGET_FAULT_MANAGEMENT_SUMMARY_TABLE\r\n} from '../actions/FaultManagementActions';\r\n\r\nconst initialState = {\r\n\tfaultManagementTableData: [],\r\n\tfaultManagementSummaryTableData: []\r\n};\r\n\r\nconst faultManagementReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_FAULT_MANAGEMENT_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\tfaultManagementTableData: action.faultManagementTableData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_FAULT_MANAGEMENT_SUMMARY_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\tfaultManagementSummaryTableData: action.faultManagementSummaryTableData\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 faultManagementReducer;\r\n","import { enqueueSnackbar, UploadMultipleFiles } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetConfigurationManagementSummaryTableRequest\r\n} from '../requests/ConfigurationManagementRequests.js';\r\n\r\nexport const GET_CONFIGURATION_MANAGEMENT_SUMMARY_TABLE = 'GET_CONFIGURATION_MANAGEMENT_SUMMARY_TABLE';\r\n\r\nconst onGetConfigurationManagementSummaryTable = (value) => ({\r\n\ttype: GET_CONFIGURATION_MANAGEMENT_SUMMARY_TABLE,\r\n\tconfigurationManagementSummaryTableData: value\r\n});\r\n\r\nexport const GetConfigurationManagementSummaryTable = () => async (dispatch) => {\r\n\tawait GetConfigurationManagementSummaryTableRequest().then(response => {\r\n\t\tdispatch(onGetConfigurationManagementSummaryTable(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_CONFIGURATION_MANAGEMENT_SUMMARY_TABLE\r\n} from '../actions/ConfigurationManagementActions';\r\n\r\nconst initialState = {\r\n\tconfigurationManagementSummaryTableData: []\r\n};\r\n\r\nconst configurationManagementReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_CONFIGURATION_MANAGEMENT_SUMMARY_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\tconfigurationManagementSummaryTableData: action.configurationManagementSummaryTableData\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 configurationManagementReducer;\r\n","import { enqueueSnackbar, UploadMultipleFiles } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetOverallSiteSummaryTableRequest\r\n} from '../requests/OverallSiteSummaryRequests.js';\r\n\r\nexport const GET_OVERALL_SITE_SUMMARY_TABLE = 'GET_OVERALL_SITE_SUMMARY_TABLE';\r\n\r\nconst onGetOverallSiteSummaryTable = (value) => ({\r\n\ttype: GET_OVERALL_SITE_SUMMARY_TABLE,\r\n\toverallSiteSummaryTableData: value\r\n});\r\n\r\nexport const GetOverallSiteSummaryTable = () => async (dispatch) => {\r\n\tawait GetOverallSiteSummaryTableRequest().then(response => {\r\n\t\tdispatch(onGetOverallSiteSummaryTable(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_OVERALL_SITE_SUMMARY_TABLE\r\n} from '../actions/OverallSiteSummaryActions';\r\n\r\nconst initialState = {\r\n\toverallSiteSummaryTableData: []\r\n};\r\n\r\nconst overallSiteSummaryReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_OVERALL_SITE_SUMMARY_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\toverallSiteSummaryTableData: action.overallSiteSummaryTableData\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 overallSiteSummaryReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetSiteListRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetSiteList`\r\n});\r\n\r\nexport const GetSiteReportRequest = (siteId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetSiteReport`,\r\n\tparams: { siteId }\r\n});\r\n\r\nexport const GetSiteReportEmailRequest = (siteId, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetSiteReportEmail`,\r\n\tparams: { siteId, userId }\r\n});\r\n\r\nexport const GetSiteReportEmailAcceptanceRequest = (siteId, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetSiteReportEmailAcceptance`,\r\n\tparams: { siteId, userId }\r\n});\r\n\r\nexport const GetSiteReportExcelRequest = (siteId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetSiteReportExcel`,\r\n\tparams: { siteId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetSiteReportRequest,\r\n\tGetSiteListRequest,\r\n\tGetSiteReportEmailRequest,\r\n\tGetSiteReportEmailAcceptanceRequest,\r\n\tGetSiteReportExcelRequest\r\n} from '../requests/SiteReportRequests.js';\r\n\r\nexport const GET_SITE_REPORT = 'GET_SITE_REPORT';\r\nexport const GET_SITE_LIST = 'GET_SITE_LIST';\r\nexport const SET_SELECTED_SITE = 'SET_SELECTED_SITE';\r\n\r\nconst onSetSelectedSite = (value) => ({\r\n\ttype: SET_SELECTED_SITE,\r\n\tselectedSite: value\r\n});\r\n\r\nexport const SetSelectedSite = (value) => (dispatch) => {\r\n\tdispatch(onSetSelectedSite(value));\r\n};\r\n\r\nconst onGetSiteList = (value) => ({\r\n\ttype: GET_SITE_LIST,\r\n\tsiteList: value\r\n});\r\n\r\nexport const GetSiteList = () => async (dispatch) => {\r\n\tawait GetSiteListRequest().then(response => {\r\n\t\tdispatch(onGetSiteList(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 onGetSiteReport = (value) => ({\r\n\ttype: GET_SITE_REPORT,\r\n\tsiteReport: value\r\n});\r\n\r\nexport const GetSiteReport = (siteId) => async (dispatch) => {\r\n\tawait GetSiteReportRequest(siteId).then(response => {\r\n\t\tdispatch(onGetSiteReport(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 GetSiteReportEmail = (siteId, userId) => async (dispatch) => {\r\n\tawait GetSiteReportEmailRequest(siteId, userId).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 GetSiteReportEmailAcceptance = (siteId, userId) => async (dispatch) => {\r\n\tawait GetSiteReportEmailAcceptanceRequest(siteId, userId).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 GetSiteReportExcel = (siteId, userId) => async (dispatch) => {\r\n\tawait GetSiteReportExcelRequest(siteId, userId).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_SITE_REPORT,\r\n\tGET_SITE_LIST,\r\n\tSET_SELECTED_SITE\r\n} from '../actions/SiteReportActions';\r\n\r\nconst initialState = {\r\n\tsiteReport: [],\r\n\tsiteList: [],\r\n\tselectedSite: ''\r\n};\r\n\r\nconst siteReportReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_SITE_REPORT: {\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\tsiteReport: action.siteReport\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_LIST: {\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\tsiteList: action.siteList\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_SELECTED_SITE: {\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\tselectedSite: action.selectedSite\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 siteReportReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetLogsLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetLogsLastImport`\r\n});\r\n\r\nexport const UploadLogsRequest = (filesPath, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Parser/ParseEricssonLogs`,\r\n\tparams: { filesPath, userId }\r\n});\r\n\r\nexport const GetMoBacthScriptsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Parser/GetMoBacthScripts`\r\n});\r\n","import { enqueueSnackbar, UploadMultipleFiles } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetLogsLastUpdateRequest,\r\n\tUploadLogsRequest,\r\n\tGetMoBacthScriptsRequest\r\n} from '../requests/UploadLogsRequests.js';\r\n\r\nexport const GET_LOGS_LAST_UPDATE = 'GET_LOGS_LAST_UPDATE';\r\n\r\nconst onGetLogsLastUpdate = (value) => ({\r\n\ttype: GET_LOGS_LAST_UPDATE,\r\n\tlogsLastUpdate: value\r\n});\r\n\r\nexport const GetLogsLastUpdate = () => async (dispatch) => {\r\n\tawait GetLogsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetLogsLastUpdate(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 GetMoBacthScripts = () => async (dispatch) => {\r\n\tawait GetMoBacthScriptsRequest().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 RunUploadLogFiles = (filesPath, userId) => async (dispatch) => {\r\n\tawait UploadLogsRequest(filesPath, userId).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: `Successfully parsed ${response.data} files.`, options: { 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 UploadLogFiles = (files, userId) => async (dispatch) => {\r\n\tawait UploadMultipleFiles(files).then(response => {\r\n\t\tdispatch(RunUploadLogFiles(response.data, userId));\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_LOGS_LAST_UPDATE\r\n} from '../actions/UploadLogsActions';\r\n\r\nconst initialState = {\r\n\tlogsLastUpdate: ''\r\n};\r\n\r\nconst uploadLogsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_LOGS_LAST_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\tlogsLastUpdate: action.logsLastUpdate\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 uploadLogsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetSitesRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetSites`\r\n});\r\n\r\nexport const RanShareNbrRelationsValidationRunRequest = (site, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/RunRanShareNbrRelationsValidation`,\r\n\tparams: { site, userId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetSitesRequest,\r\n\tRanShareNbrRelationsValidationRunRequest\r\n} from '../requests/RanShareNbrRelationsValidationRequests.js';\r\n\r\nimport {\r\n\tGetNbrRelationsLastUpdateRequest\r\n} from '../requests/NbrRelationsValidationRequests.js';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_NBRRELATIONS_LAST_UPDATE = 'GET_NBRRELATIONS_LAST_UPDATE';\r\nexport const GET_SITES = 'GET_SITES';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetNbrRelationsLastUpdate = (value) => ({\r\n\ttype: GET_NBRRELATIONS_LAST_UPDATE,\r\n\tnbrRelationsLastUpdate: value\r\n});\r\n\r\nexport const GetNbrRelationsLastUpdate = () => async (dispatch) => {\r\n\tawait GetNbrRelationsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsLastUpdate(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 onGetSites = (value) => ({\r\n\ttype: GET_SITES,\r\n\tsites: value\r\n});\r\n\r\nexport const GetSites = () => async (dispatch) => {\r\n\tawait GetSitesRequest().then(response => {\r\n\t\tdispatch(onGetSites(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 RanShareNbrRelationsValidationRun = (site, userId) => async (dispatch) => {\r\n\tawait RanShareNbrRelationsValidationRunRequest(site, userId).then(response => {\r\n\t\tif (response.data.includes(':\\\\')) {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t} else {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'success' } }));\r\n\t\t}\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\tSET_FORM_STATE,\r\n\tGET_NBRRELATIONS_LAST_UPDATE,\r\n\tGET_SITES\r\n} from '../actions/RanShareNbrRelationsValidationActions';\r\n\r\nconst initialState = {\r\n\tformState: { siteId: '' },\r\n\tnbrRelationsLastUpdate: '',\r\n\tsites: [],\r\n};\r\n\r\nconst ranshareNbrRelationsValidationReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_NBRRELATIONS_LAST_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\tnbrRelationsLastUpdate: action.nbrRelationsLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITES: {\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\tsites: action.sites\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 ranshareNbrRelationsValidationReducer;\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tGET_SITES,\r\n\tGET_NBRRELATIONS_LAST_UPDATE\r\n} from '../actions/NbrRelationsValidationActions';\r\n\r\nconst initialState = {\r\n\tformState: { siteId: '' },\r\n\tsites: [],\r\n\tnbrRelationsLastUpdate: '',\r\n};\r\n\r\nconst anrValidationReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_SITES: {\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\tsites: action.sites\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_NBRRELATIONS_LAST_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\tnbrRelationsLastUpdate: action.nbrRelationsLastUpdate\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 anrValidationReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest.js';\r\n\r\nexport const GetAnrNbrTrackingLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetAnrNbrTrackingLastUpdate`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetAnrNbrTrackingSitesRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetAnrNbrTrackingSites`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetAnrNbrTrackingTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetAnrNbrTrackingOverview`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetAnrNbrTrackingExportRequest = (sites, startDate, endDate) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetAnrNbrTrackingExport`,\r\n\tparams: { sites, startDate, endDate }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetAnrNbrTrackingLastUpdateRequest,\r\n\tGetAnrNbrTrackingSitesRequest,\r\n\tGetAnrNbrTrackingTableRequest,\r\n\tGetAnrNbrTrackingExportRequest\r\n} from '../requests/AnrNbrTrackingRequests.js';\r\n\r\nimport {\r\n\tGetNbrRelationsLastUpdateRequest\r\n} from '../requests/NbrRelationsValidationRequests.js';\r\n\r\nexport const GET_ANRNBRTRACKING_LAST_UPDATE = 'GET_ANRNBRTRACKING_LAST_UPDATE';\r\nexport const GET_ANRNBRTRACKING_SITES = 'GET_ANRNBRTRACKING_SITES';\r\nexport const GET_ANRNBRTRACKING_TABLE = 'GET_ANRNBRTRACKING_TABLE';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_NBRRELATIONS_LAST_UPDATE = 'GET_NBRRELATIONS_LAST_UPDATE';\r\n\r\nconst onGetNbrRelationsLastUpdate = (value) => ({\r\n\ttype: GET_NBRRELATIONS_LAST_UPDATE,\r\n\tnbrRelationsLastUpdate: value\r\n});\r\n\r\nexport const GetNbrRelationsLastUpdate = () => async (dispatch) => {\r\n\tawait GetNbrRelationsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsLastUpdate(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 onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetAnrNbrTrackingLastUpdate = (value) => ({\r\n\ttype: GET_ANRNBRTRACKING_LAST_UPDATE,\r\n\tanrNbrTrackingLastUpdate: value\r\n});\r\n\r\nexport const GetAnrNbrTrackingLastUpdate = () => async (dispatch) => {\r\n\tawait GetAnrNbrTrackingLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetAnrNbrTrackingLastUpdate(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 onGetAnrNbrTrackingSites = (value) => ({\r\n\ttype: GET_ANRNBRTRACKING_SITES,\r\n\tanrNbrTrackingSites: value\r\n});\r\n\r\nexport const GetAnrNbrTrackingSites = () => async (dispatch) => {\r\n\tawait GetAnrNbrTrackingSitesRequest().then(response => {\r\n\t\tdispatch(onGetAnrNbrTrackingSites(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 onGetAnrNbrTrackingTable = (value) => ({\r\n\ttype: GET_ANRNBRTRACKING_TABLE,\r\n\tanrNbrTrackingTableData: value\r\n});\r\n\r\nexport const GetAnrNbrTrackingTable = () => async (dispatch) => {\r\n\tawait GetAnrNbrTrackingTableRequest().then(response => {\r\n\t\tdispatch(onGetAnrNbrTrackingTable(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 GetAnrNbrTrackingExport = (sites, startDate, endDate) => async (dispatch) => {\r\n\tawait GetAnrNbrTrackingExportRequest(sites, startDate, endDate).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\tSET_FORM_STATE,\r\n\tGET_ANRNBRTRACKING_LAST_UPDATE,\r\n\tGET_ANRNBRTRACKING_SITES,\r\n\tGET_ANRNBRTRACKING_TABLE,\r\n\tGET_NBRRELATIONS_LAST_UPDATE\r\n} from '../actions/AnrNbrTrackingActions';\r\n\r\nconst initialState = {\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\tanrNbrTrackingLastUpdate: '',\r\n\tanrNbrTrackingSites: [],\r\n\tanrNbrTrackingTableData: [],\r\n\tnbrRelationsLastUpdate: '',\r\n};\r\n\r\nconst anrNbrTrackingReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_ANRNBRTRACKING_LAST_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\tanrNbrTrackingLastUpdate: action.anrNbrTrackingLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_ANRNBRTRACKING_SITES: {\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\tanrNbrTrackingSites: action.anrNbrTrackingSites\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_ANRNBRTRACKING_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\tanrNbrTrackingTableData: action.anrNbrTrackingTableData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_NBRRELATIONS_LAST_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\tnbrRelationsLastUpdate: action.nbrRelationsLastUpdate\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 anrNbrTrackingReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest.js';\r\n\r\nexport const GetCositeHealthCheckRequest = (siteId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetCositesHealthCheck`,\r\n\tparams: { siteId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetCositeHealthCheckRequest\r\n} from '../requests/CositeHealthCheckRequests.js';\r\n\r\nimport {\r\n\tGetNbrRelationsLastUpdateRequest\r\n} from '../requests/NbrRelationsValidationRequests.js';\r\n\r\nexport const GET_COSITE_HEALTHCHECK_TABLE = 'GET_COSITE_HEALTHCHECK_TABLE';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_NBRRELATIONS_LAST_UPDATE = 'GET_NBRRELATIONS_LAST_UPDATE';\r\n\r\nconst onGetNbrRelationsLastUpdate = (value) => ({\r\n\ttype: GET_NBRRELATIONS_LAST_UPDATE,\r\n\tnbrRelationsLastUpdate: value\r\n});\r\n\r\nexport const GetNbrRelationsLastUpdate = () => async (dispatch) => {\r\n\tawait GetNbrRelationsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsLastUpdate(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 onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetCositeHealthCheck = (value) => ({\r\n\ttype: GET_COSITE_HEALTHCHECK_TABLE,\r\n\tcositeHealthCheckData: value\r\n});\r\n\r\nexport const GetCositeHealthCheck = (siteId) => async (dispatch) => {\r\n\tawait GetCositeHealthCheckRequest(siteId).then(response => {\r\n\t\tdispatch(onGetCositeHealthCheck(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\tSET_FORM_STATE,\r\n\tGET_COSITE_HEALTHCHECK_TABLE,\r\n\tGET_NBRRELATIONS_LAST_UPDATE\r\n} from '../actions/CositeHealthCheckActions';\r\n\r\nconst initialState = {\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\tcositeHealthCheckData: [],\r\n\tnbrRelationsLastUpdate: ''\r\n};\r\n\r\nconst cositeHealthCheckReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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_COSITE_HEALTHCHECK_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\tcositeHealthCheckData: action.cositeHealthCheckData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_NBRRELATIONS_LAST_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\tnbrRelationsLastUpdate: action.nbrRelationsLastUpdate\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 cositeHealthCheckReducer;\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 parameterPlanningReducer from '../views/ParameterPlanning/reducers/ParameterPlanningReducer';\r\nimport commissioningPlanReducer from '../views/Tracking/reducers/CommissioningPlanReducer';\r\nimport cpichValidationReducer from '../views/Validation/reducers/CpichValidationReducer';\r\nimport trackerReducer from '../views/Tracking/reducers/TrackerReducer';\r\nimport nbrRelationsValidationReducer from '../views/Validation/reducers/NbrRelationsValidationReducer';\r\nimport healthChecksReducer from '../views/Validation/reducers/HealthChecksReducer';\r\nimport workOrderStatusReducer from '../views/Tracking/reducers/WorkOrderStatusReducer';\r\nimport nbrRelationsOptimizationReducer from '../views/Optimization/reducers/NbrRelationsOptimizationReducer';\r\nimport faultManagementReducer from '../views/Monitoring/reducers/FaultManagementReducer';\r\nimport configurationManagementReducer from '../views/Monitoring/reducers/ConfigurationManagementReducer';\r\nimport overallSiteSummaryReducer from '../views/Monitoring/reducers/OverallSiteSummaryReducer';\r\nimport siteReportReducer from '../views/Monitoring/reducers/SiteReportReducer';\r\nimport uploadLogsReducer from '../views/Monitoring/reducers/UploadLogsReducer';\r\nimport ranshareNbrRelationsValidationReducer from '../views/Validation/reducers/RanShareNbrRelationsValidationReducer';\r\nimport anrValidationReducer from '../views/Validation/reducers/ANRValidationReducer';\r\nimport anrNbrTrackingReducer from '../views/Validation/reducers/AnrNbrTrackingReducer';\r\nimport cositeHealthCheckReducer from '../views/Validation/reducers/CositeHealthCheckReducer';\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\tparameterPlanningReducer,\r\n\tcommissioningPlanReducer,\r\n\tcpichValidationReducer,\r\n\ttrackerReducer,\r\n\tnbrRelationsValidationReducer,\r\n\thealthChecksReducer,\r\n\tworkOrderStatusReducer,\r\n\tnbrRelationsOptimizationReducer,\r\n\tfaultManagementReducer,\r\n\tconfigurationManagementReducer,\r\n\toverallSiteSummaryReducer,\r\n\tsiteReportReducer,\r\n\tuploadLogsReducer,\r\n\transhareNbrRelationsValidationReducer,\r\n\tanrValidationReducer,\r\n\tanrNbrTrackingReducer,\r\n\tcositeHealthCheckReducer\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 React from 'react';\r\nimport { colors } from '@mui/material';\r\nimport BarChartIcon from '@mui/icons-material/BarChart';\r\nimport SupervisorAccountIcon from '@mui/icons-material/SupervisorAccount';\r\nimport CalendarTodayIcon from '@mui/icons-material/CalendarToday';\r\nimport ChatIcon from '@mui/icons-material/ChatOutlined';\r\nimport CodeIcon from '@mui/icons-material/Code';\r\nimport DashboardIcon from '@mui/icons-material/DashboardOutlined';\r\nimport ErrorIcon from '@mui/icons-material/ErrorOutline';\r\nimport FolderIcon from '@mui/icons-material/FolderOutlined';\r\nimport HomeIcon from '@mui/icons-material/HomeOutlined';\r\nimport ListAltIcon from '@mui/icons-material/ListAlt';\r\nimport LockOpenIcon from '@mui/icons-material/LockOpenOutlined';\r\nimport MailIcon from '@mui/icons-material/MailOutlined';\r\nimport PresentToAllIcon from '@mui/icons-material/PresentToAll';\r\nimport PeopleIcon from '@mui/icons-material/PeopleOutlined';\r\nimport PersonIcon from '@mui/icons-material/PersonOutlined';\r\nimport ReceiptIcon from '@mui/icons-material/ReceiptOutlined';\r\nimport SettingsIcon from '@mui/icons-material/SettingsOutlined';\r\nimport ViewModuleIcon from '@mui/icons-material/ViewModule';\r\nimport DesktopMacIcon from '@mui/icons-material/DesktopMac';\r\nimport SettingsInputAntennaIcon from '@mui/icons-material/SettingsInputAntenna';\r\nimport FactCheckOutlinedIcon from '@mui/icons-material/FactCheckOutlined';\r\nimport BuildIcon from '@mui/icons-material/Build';\r\nimport MonitorHeartOutlinedIcon from '@mui/icons-material/MonitorHeartOutlined';\r\nimport ShowChartIcon from '@mui/icons-material/ShowChart';\r\n\r\nimport { Label } from 'components';\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: 'Tracking',\r\n\t\t\t\thref: '/tracking',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tprojects: ['Operations'],\r\n\t\t\t\ticon: ListAltIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Commissioning Plan',\r\n\t\t\t\t\t\thref: '/tracking/commissioningplan',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Tracker',\r\n\t\t\t\t\t\thref: '/tracking/tracker',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Work Order Status',\r\n\t\t\t\t\t\thref: '/tracking/workorderstatus',\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: 'Planning',\r\n\t\t\t\thref: '/planning',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tprojects: ['Operations'],\r\n\t\t\t\ticon: SettingsInputAntennaIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Parameter Planning',\r\n\t\t\t\t\t\thref: '/planning/parameterplanning',\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: 'Validation',\r\n\t\t\t\thref: '/validation',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tprojects: ['Operations'],\r\n\t\t\t\ticon: FactCheckOutlinedIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'ANR Validation',\r\n\t\t\t\t\t\thref: '/validation/anrvalidation',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'ANR NBR Tracking',\r\n\t\t\t\t\t\thref: '/validation/anrnbrtracking',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Cosite Health Check',\r\n\t\t\t\t\t\thref: '/validation/cositeHealthCheck',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Cpich Validation',\r\n\t\t\t\t\t\thref: '/validation/cpichvalidation',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Nbr Relations Validation',\r\n\t\t\t\t\t\thref: '/validation/nbrRelationsValidation',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'RanShare Validation',\r\n\t\t\t\t\t\thref: '/validation/ranshareNbrRelationsValidation',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Health Checks',\r\n\t\t\t\t\t\thref: '/validation/healthChecks',\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: 'Optimization',\r\n\t\t\t\thref: '/optimization',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tprojects: ['Operations'],\r\n\t\t\t\ticon: BuildIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Nbr Relations Optimization',\r\n\t\t\t\t\t\thref: '/optimization/nbrRelationsOptimization',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'E2E Nbr Relations',\r\n\t\t\t\t\t\thref: '/optimization/e2eNbrRelations',\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: 'Monitoring',\r\n\t\t\t\thref: '/monitoring',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tprojects: ['Operations'],\r\n\t\t\t\ticon: MonitorHeartOutlinedIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Upload Logs',\r\n\t\t\t\t\t\thref: '/monitoring/uploadLogs',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Fault Management',\r\n\t\t\t\t\t\thref: '/monitoring/faultManagement',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Configuration Management',\r\n\t\t\t\t\t\thref: '/monitoring/configurationManagement',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Overall Site Summary',\r\n\t\t\t\t\t\thref: '/monitoring/overallSiteSummary',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Site Report',\r\n\t\t\t\t\t\thref: '/monitoring/siteReport',\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: 'Network Performance Monitoring',\r\n\t\t\t\thref: '/NetworkPerformanceMonitoring',\r\n\t\t\t\ticon: ShowChartIcon,\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tprojects: ['Ran'],\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Per site',\r\n\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring',\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: '2G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/2gOverview',\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: '3G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/3gOverview',\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: '4G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/4gOverview',\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: 'VoLTE',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/voLTEOverview',\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: '5G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/5gOverview',\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\ttitle: 'Per Cluster',\r\n\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/Cluster',\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: '2G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/Cluster/2G',\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: '3G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/Cluster/3G',\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: '4G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/Cluster/4G',\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: 'VoLTE',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/Cluster/voLTE',\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: '5G',\r\n\t\t\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/Cluster/5G',\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\ttitle: 'Drive Tests',\r\n\t\t\t\t\t\thref: '/NetworkPerformanceMonitoring/Map',\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: 'Activity Tracker',\r\n\t\t\t\thref: '/activityTracker',\r\n\t\t\t\ticon: ListAltIcon,\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\tprojects: ['Ran'],\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Tracker',\r\n\t\t\t\t\t\thref: '/activityTracker/tracker',\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: '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\tprojects: ['Operations'],\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Rollout',\r\n\t\t\t\t\t\thref: '/dashboards/dashboardRollout',\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// 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\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 } 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 _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\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\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\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 { 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\n\r\nimport { GetUsers, GetUsersStats, ToggleAddEditUserDialog } 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\r\n\tconst _addEditUserClose = () => {\r\n\t\tdispatch(ToggleAddEditUserDialog(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\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } from 'components';\r\n\r\nimport { GetParameterPlanningExport } from '../../actions/ParameterPlanningActions.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}));\r\n\r\nconst ParameterPlanningTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onGetParameterPlanning = (parameterPlanningId) => {\r\n\t\tdispatch(GetParameterPlanningExport(parameterPlanningId));\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\r\n\t\t\t\t\t _onGetParameterPlanning(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 _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: 'user',\r\n\t\t\t\tlabel: 'User',\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: 'site',\r\n\t\t\t\tlabel: 'Site 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'antenna',\r\n\t\t\t\tlabel: 'Antenna',\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: 'lteBands',\r\n\t\t\t\tlabel: 'Lte Bands',\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: 'runDate',\r\n\t\t\t\tlabel: 'Run Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nParameterPlanningTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default ParameterPlanningTable;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { SelectField } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\n\r\nimport { SetFormState, RunParameterPlanning } from '../../actions/ParameterPlanningActions.js';\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 ParameterPlanningForm = (props) => {\r\n\tconst { sites, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.parameterPlanningReducer.formState);\r\n\tconst antennaList = [{ value: 'AIR3227/78', text: 'AIR3227/78' }, { value: 'AIR6488', text: 'AIR6488' }, { value: 'AIR3218', text: 'AIR3218' }, { value: 'AIR3268', text: 'AIR3268' }];\r\n\tconst lteBandsList = [{ value: 'L700', text: 'L700' }, { value: 'L800', text: 'L800' }, { value: 'L1800', text: 'L1800' }, { value: 'L2100', text: 'L2100' }, { value: 'L2600', text: 'L2600' }];\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _onParameterPlanningClick = () => {\r\n\t\tdispatch(RunParameterPlanning(formState.siteId, formState.antenna, formState.lteBands.join(','), user.id));\r\n\t};\r\n\r\n\tconst _handleChange = (name, value) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\t[name]: value,\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('siteId', value.value); }}\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 { _handleChange(event.target.name, event.target.value); }}\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 { _handleChange(event.target.name, event.target.value); }}\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\tRun Planning\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\nParameterPlanningForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default ParameterPlanningForm;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport ParameterPlanningTable from './components/ParameterPlanningTable';\r\nimport ParameterPlanningForm from './components/ParameterPlanningForm';\r\n\r\nimport { GetVismonLastUpdate, GetSiteList, GetParameterPlanningTable } from '../actions/ParameterPlanningActions.js';\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 ParameterPlanning = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst parameterPlanningTableData = useSelector((state) => state.parameterPlanningReducer.parameterPlanningTableData);\r\n\tconst vismonLastUpdate = useSelector((state) => state.parameterPlanningReducer.vismonLastUpdate);\r\n\tconst siteList = useSelector((state) => state.parameterPlanningReducer.siteList);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetVismonLastUpdate());\r\n\t\tdispatch(GetParameterPlanningTable());\r\n\t\tdispatch(GetSiteList());\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\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\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\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 ParameterPlanning;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } 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\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}));\r\n\r\nconst CommissioningPlanTable = (props) => {\r\n\tconst { 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: 'localId',\r\n\t\t\t\tlabel: 'Local 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'technology',\r\n\t\t\t\tlabel: 'Technology',\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: 'equipCode',\r\n\t\t\t\tlabel: 'Equip Code',\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: 'equipName',\r\n\t\t\t\tlabel: 'Equip 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: 'supplier',\r\n\t\t\t\tlabel: 'Supplier',\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: 'workType',\r\n\t\t\t\tlabel: 'Work Type',\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: 'commDate',\r\n\t\t\t\tlabel: 'Comm Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'week',\r\n\t\t\t\tlabel: 'Week',\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: 'mkOwner',\r\n\t\t\t\tlabel: 'Mk Owner',\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: 'impOwner',\r\n\t\t\t\tlabel: 'Imp Owner',\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: 'btsArea',\r\n\t\t\t\tlabel: 'Bts Area',\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: 'btsTech',\r\n\t\t\t\tlabel: 'Bts Tech',\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: 'project',\r\n\t\t\t\tlabel: 'Project',\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: 'comments',\r\n\t\t\t\tlabel: 'Comments',\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: 'statResponse',\r\n\t\t\t\tlabel: 'Project',\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: 'bssTech',\r\n\t\t\t\tlabel: 'BssTech',\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: 'workOrder',\r\n\t\t\t\tlabel: 'Work Order',\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: 'localType',\r\n\t\t\t\tlabel: 'Local Type',\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: 'LastUpdate',\r\n\t\t\t\tlabel: 'Last Update',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\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\nCommissioningPlanTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default CommissioningPlanTable;\r\n","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { FilesDropzone } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { enqueueSnackbar } from 'actions';\r\n\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport { UploadCommissioningPlan } from '../../actions/CommissioningPlanActions.js';\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 CommissioningPlanImportModal = (props) => {\r\n\tconst { onClose, open, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onConfirmClick = file => {\r\n\t\tif (file[0].size > 10000000) {\r\n\t\t\tdispatch(\r\n\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\tmessage: `File ${file[0].name} not valid. Please check file size.`,\r\n\t\t\t\t\toptions: { variant: 'warning' }\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t\tdispatch(UploadCommissioningPlan(file[0]));\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\nCommissioningPlanImportModal.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default CommissioningPlanImportModal;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Button, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport FileUploadIcon from '@mui/icons-material/FileUpload';\r\nimport FileDownloadIcon from '@mui/icons-material/FileDownload';\r\n\r\nimport CommissioningPlanTable from './components/CommissioningPlanTable';\r\nimport CommissioningPlanImportModal from './components/CommissioningPlanImportModal';\r\n\r\nimport { GetLastImport, GetCommissioningPlanTable, GetCommissioningPlanExport, ToggleImportModalVisibility } from '../actions/CommissioningPlanActions.js';\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 CommissioningPlan = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst lastImport = useSelector((state) => state.commissioningPlanReducer.lastImport);\r\n\tconst commissioningPlanTableData = useSelector((state) => state.commissioningPlanReducer.commissioningPlanTableData);\r\n\tconst importModalVisibility = useSelector((state) => state.commissioningPlanReducer.importModalVisibility);\r\n\r\n\tconst _onImportClick = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(true));\r\n\t};\r\n\r\n\tconst _onCloseImportModal = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(false));\r\n\t};\r\n\r\n\tconst _onExportClick = () => {\r\n\t\tdispatch(GetCommissioningPlanExport());\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetLastImport());\r\n\t\tdispatch(GetCommissioningPlanTable());\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\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tonClick={_onImportClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tImport\r\n\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tonClick={_onExportClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tExport\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\t\r\n\t\t\t\t\r\n\t\t\t\t\t{importModalVisibility && (\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 CommissioningPlan;\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } from 'components';\r\n\r\nimport { GetCpichValidationExport } from '../../actions/CpichValidationActions.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}));\r\n\r\nconst CpichValidationTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onGetCpichValidationExport = (cpichValidationId) => {\r\n\t\tdispatch(GetCpichValidationExport(cpichValidationId));\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\r\n\t\t\t\t\t _onGetCpichValidationExport(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 _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: 'user',\r\n\t\t\t\tlabel: 'User',\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: 'sites',\r\n\t\t\t\tlabel: 'Sites',\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: 'runDate',\r\n\t\t\t\tlabel: 'Run Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCpichValidationTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default CpichValidationTable;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { SelectField } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\n\r\nimport { SetFormState, RunCpichValidation } from '../../actions/CpichValidationActions.js';\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 CpichValidationForm = (props) => {\r\n\tconst { sites, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.cpichValidationReducer.formState);\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _onCpichValidationClick = () => {\r\n\t\tdispatch(RunCpichValidation(formState.sites.map(site => site.value).toString(), user.id));\r\n\t};\r\n\r\n\tconst _handleChange = (name, value) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\t[name]: value,\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('sites', value); }}\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\tRun Validation\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\nCpichValidationForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default CpichValidationForm;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport CpichValidationTable from './components/CpichValidationTable';\r\nimport CpichValidationForm from './components/CpichValidationForm';\r\n\r\nimport { GetUtranCellsLastUpdate, GetUtranSites, GetCpichValidationTable } from '../actions/CpichValidationActions.js';\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 CpichValidation = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst cpichValidationTableData = useSelector((state) => state.cpichValidationReducer.cpichValidationTableData);\r\n\tconst utranCellsLastUpdate = useSelector((state) => state.cpichValidationReducer.utranCellsLastUpdate);\r\n\tconst utranSites = useSelector((state) => state.cpichValidationReducer.utranSites);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetUtranCellsLastUpdate());\r\n\t\tdispatch(GetUtranSites());\r\n\t\tdispatch(GetCpichValidationTable());\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\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\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\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 CpichValidation;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } 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\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}));\r\n\r\nconst TrackerTable = (props) => {\r\n\tconst { 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: 'localId',\r\n\t\t\t\tlabel: 'Local 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'equipName',\r\n\t\t\t\tlabel: 'Equip 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: 'supplier',\r\n\t\t\t\tlabel: 'Supplier',\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: 'commDate',\r\n\t\t\t\tlabel: 'Comm Date',\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: 'mkOwner',\r\n\t\t\t\tlabel: 'Mk Owner',\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: 'impOwner',\r\n\t\t\t\tlabel: 'Imp Owner',\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: 'project',\r\n\t\t\t\tlabel: 'Project',\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: 'comments',\r\n\t\t\t\tlabel: 'Comments',\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: 'bssTech',\r\n\t\t\t\tlabel: 'Bss Tech',\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: 'localType',\r\n\t\t\t\tlabel: 'Local Type',\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: 'scheduleStatus',\r\n\t\t\t\tlabel: 'Schedule 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'dateEntry',\r\n\t\t\t\tlabel: 'Date Entry',\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: 'week',\r\n\t\t\t\tlabel: 'Week',\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: 'dayCount',\r\n\t\t\t\tlabel: 'Day Count',\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: 'currentStatus',\r\n\t\t\t\tlabel: 'Current 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'deliveredDate',\r\n\t\t\t\tlabel: 'Delivered Date',\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nTrackerTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default TrackerTable;\r\n","import React, { 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 { MoreVert, Sync } from '@mui/icons-material';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst ActionsButton = (props) => {\r\n\tconst { syncTracker } = 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\tconst _syncTracker = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\tsyncTracker();\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\tsyncTracker: PropTypes.func\r\n};\r\n\r\nexport default memo(ActionsButton);\r\n","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { FilesDropzone } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { enqueueSnackbar } from 'actions';\r\n\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport { UploadTracker } from '../../actions/TrackerActions.js';\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 TrackerImportModal = (props) => {\r\n\tconst { onClose, open, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onConfirmClick = file => {\r\n\t\tif (file[0].size > 10000000) {\r\n\t\t\tdispatch(\r\n\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\tmessage: `File ${file[0].name} not valid. Please check file size.`,\r\n\t\t\t\t\toptions: { variant: 'warning' }\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t\tdispatch(UploadTracker(file[0]));\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\nTrackerImportModal.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default TrackerImportModal;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Button } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport FileUploadIcon from '@mui/icons-material/FileUpload';\r\nimport FileDownloadIcon from '@mui/icons-material/FileDownload';\r\n\r\nimport TrackerTable from './components/TrackerTable';\r\nimport ActionsButton from './components/ActionsButton';\r\nimport TrackerImportModal from './components/TrackerImportModal';\r\n\r\nimport { GetTrackerLastUpdate, GetTrackerTable, SyncTracker, DownloadTracker, ToggleImportModalVisibility } from '../actions/TrackerActions.js';\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 Tracker = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst trackerTableData = useSelector((state) => state.trackerReducer.trackerTableData);\r\n\tconst trackerLastUpdate = useSelector((state) => state.trackerReducer.trackerLastUpdate);\r\n\tconst importModalVisibility = useSelector((state) => state.trackerReducer.importModalVisibility);\r\n\r\n\tconst _syncTracker = () => {\r\n\t\tdispatch(SyncTracker());\r\n\t};\r\n\r\n\tconst _onExportClick = () => {\r\n\t\tdispatch(DownloadTracker());\r\n\t};\r\n\r\n\tconst _onImportClick = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(true));\r\n\t};\r\n\r\n\tconst _onCloseImportModal = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(false));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetTrackerLastUpdate());\r\n\t\tdispatch(GetTrackerTable());\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\t\tonClick={_onImportClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tImport\r\n\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tonClick={_onExportClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tExport\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\r\n\t\t\t\t\r\n\t\t\t\t\t{importModalVisibility && (\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 Tracker;\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } from 'components';\r\n\r\nimport { GetNbrRelationsValidationExport } from '../../actions/NbrRelationsValidationActions.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}));\r\n\r\nconst NbrRelationsValidationTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onGetNbrRelationsValidationExport = (NbrRelationsValidationId) => {\r\n\t\tdispatch(GetNbrRelationsValidationExport(NbrRelationsValidationId));\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\r\n\t\t\t\t\t _onGetNbrRelationsValidationExport(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 _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: 'user',\r\n\t\t\t\tlabel: 'User',\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: 'sites',\r\n\t\t\t\tlabel: 'Sites',\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: 'files',\r\n\t\t\t\tlabel: 'Files',\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: 'runDate',\r\n\t\t\t\tlabel: 'Run Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nNbrRelationsValidationTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default NbrRelationsValidationTable;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { SelectField, FilesDropzone } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\n\r\nimport { SetFormState, NbrRelationsValidationUploadRun } from '../../actions/NbrRelationsValidationActions.js';\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 NbrRelationsValidationForm = (props) => {\r\n\tconst { sites, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.nbrRelationsValidationReducer.formState);\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _NbrRelationsFilesUpload = files => {\r\n\t\tfiles.forEach(file => {\r\n\t\t\tif (!file.size > 10000000) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: `File ${file.name} not valid. Please check file size.`,\r\n\t\t\t\t\t\toptions: { variant: 'warning' }\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\tdispatch(NbrRelationsValidationUploadRun(formState.siteId, user.id, files));\r\n\t};\r\n\r\n\tconst _handleChange = (name, value) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\t[name]: value,\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('siteId', value.value); }}\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\nNbrRelationsValidationForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default NbrRelationsValidationForm;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport NbrRelationsValidationTable from './components/NbrRelationsValidationTable';\r\nimport NbrRelationsValidationForm from './components/NbrRelationsValidationForm';\r\n\r\nimport { GetNbrRelationsLastUpdate, GetSites, GetNbrRelationsValidationTable } from '../actions/NbrRelationsValidationActions.js';\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 NbrRelationsValidation = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst nbrRelationsValidationTableData = useSelector((state) => state.nbrRelationsValidationReducer.nbrRelationsValidationTableData);\r\n\tconst nbrRelationsLastUpdate = useSelector((state) => state.nbrRelationsValidationReducer.nbrRelationsLastUpdate);\r\n\tconst sites = useSelector((state) => state.nbrRelationsValidationReducer.sites);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetNbrRelationsLastUpdate());\r\n\t\tdispatch(GetSites());\r\n\t\tdispatch(GetNbrRelationsValidationTable());\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\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\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\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 NbrRelationsValidation;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { SelectField, FilesDropzone } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\n\r\nimport { SetFormState, RanShareNbrRelationsValidationRun } from '../../actions/RanShareNbrRelationsValidationActions.js';\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 RanShareNbrRelationsValidationForm = (props) => {\r\n\tconst { sites, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.ranshareNbrRelationsValidationReducer.formState);\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _RanShareNbrRelationsValidatioExport = files => {\r\n\t\tdispatch(RanShareNbrRelationsValidationRun(formState.siteId, user.id));\r\n\t};\r\n\r\n\tconst _handleChange = (name, value) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\t[name]: value,\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('siteId', value.value); }}\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\tRanShare Nbr Relations Validation\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\nRanShareNbrRelationsValidationForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default RanShareNbrRelationsValidationForm;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport RanShareNbrRelationsValidationForm from './components/RanShareNbrRelationsValidationForm';\r\n\r\nimport { GetNbrRelationsLastUpdate, GetSites } from '../actions/RanShareNbrRelationsValidationActions.js';\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 RanShareNbrRelationsValidation = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst nbrRelationsLastUpdate = useSelector((state) => state.ranshareNbrRelationsValidationReducer.nbrRelationsLastUpdate);\r\n\tconst sites = useSelector((state) => state.ranshareNbrRelationsValidationReducer.sites);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetNbrRelationsLastUpdate());\r\n\t\tdispatch(GetSites());\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\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 RanShareNbrRelationsValidation;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { SelectField, FilesDropzone } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\n\r\nimport { SetFormState, GetHealthChecksExport } from '../../actions/HealthChecksActions.js';\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 HealthChecksForm = (props) => {\r\n\tconst { sites, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.healthChecksReducer.formState);\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _GetHealthChecksExport = files => {\r\n\t\tdispatch(GetHealthChecksExport(formState.siteId, user.id));\r\n\t};\r\n\r\n\tconst _handleChange = (name, value) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\t[name]: value,\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('siteId', value.value); }}\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\tGet Health Checks\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\nHealthChecksForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default HealthChecksForm;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport { GetNbrRelationsLastUpdate, GetSites } from '../actions/HealthChecksActions.js';\r\nimport HealthChecksForm from './components/HealthChecksForm';\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 HealthChecks = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst nbrRelationsLastUpdate = useSelector((state) => state.healthChecksReducer.nbrRelationsLastUpdate);\r\n\tconst sites = useSelector((state) => state.healthChecksReducer.sites);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetNbrRelationsLastUpdate());\r\n\t\tdispatch(GetSites());\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\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 HealthChecks;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } 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\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}));\r\n\r\nconst WorkOrderDeltaTable = (props) => {\r\n\tconst { 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: 'siteId',\r\n\t\t\t\tlabel: 'Site 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'woType',\r\n\t\t\t\tlabel: 'WO Type',\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: 'woId',\r\n\t\t\t\tlabel: 'WO 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'trackerStatus',\r\n\t\t\t\tlabel: 'Tracker 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'wowStatus',\r\n\t\t\t\tlabel: 'WOW 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'wowCloseDate',\r\n\t\t\t\tlabel: 'WOW Close Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'wowLastChange',\r\n\t\t\t\tlabel: 'WOW Last Change',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'trackerLastUpdate',\r\n\t\t\t\tlabel: 'Tracker Last Update',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'wowLastUpdate',\r\n\t\t\t\tlabel: 'WOW Last Update',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\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: 'Action',\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nWorkOrderDeltaTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default WorkOrderDeltaTable;\r\n","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { FilesDropzone } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { enqueueSnackbar } from 'actions';\r\n\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport { UploadWorkOrderStatus } from '../../actions/WorkOrderStatusActions.js';\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 WorkOrderStatusImportModal = (props) => {\r\n\tconst { onClose, open, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onConfirmClick = file => {\r\n\t\tif (file[0].size > 10000000) {\r\n\t\t\tdispatch(\r\n\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\tmessage: `File ${file[0].name} not valid. Please check file size.`,\r\n\t\t\t\t\toptions: { variant: 'warning' }\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t\tdispatch(UploadWorkOrderStatus(file[0]));\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\nWorkOrderStatusImportModal.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default WorkOrderStatusImportModal;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Button, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport FileUploadIcon from '@mui/icons-material/FileUpload';\r\nimport FileDownloadIcon from '@mui/icons-material/FileDownload';\r\n\r\nimport WorkOrderDeltaTable from './components/WorkOrderDeltaTable';\r\nimport WorkOrderStatusImportModal from './components/WorkOrderStatusImportModal';\r\n\r\nimport { GetLastImport, GetWorkOrderDeltaTable, GetWorkOrderStatusExport, GetWorkOrderDeltaExport, ToggleImportModalVisibility } from '../actions/WorkOrderStatusActions.js';\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 WorkOrderStatus = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst lastImport = useSelector((state) => state.workOrderStatusReducer.lastImport);\r\n\tconst workOrderDeltaTableData = useSelector((state) => state.workOrderStatusReducer.workOrderDeltaTableData);\r\n\tconst importModalVisibility = useSelector((state) => state.workOrderStatusReducer.importModalVisibility);\r\n\r\n\tconst _onImportClick = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(true));\r\n\t};\r\n\r\n\tconst _onCloseImportModal = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(false));\r\n\t};\r\n\r\n\tconst _onExportStatus = () => {\r\n\t\tdispatch(GetWorkOrderStatusExport(false));\r\n\t};\r\n\r\n\tconst _onExportDelta = () => {\r\n\t\tdispatch(GetWorkOrderDeltaExport(false));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetLastImport());\r\n\t\tdispatch(GetWorkOrderDeltaTable());\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\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tonClick={_onImportClick}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tImport Status\r\n\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tonClick={_onExportStatus}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tExport Status\r\n\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tonClick={_onExportDelta}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tExport Delta\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\t\r\n\t\t\t\t\r\n\t\t\t\t\t{importModalVisibility && (\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 WorkOrderStatus;\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } from 'components';\r\n\r\nimport { GetNbrRelationsOptimizationExport } from '../../actions/NbrRelationsOptimizationActions.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}));\r\n\r\nconst NbrRelationsOptimizationTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _onGetNbrRelationsOptimizationExport = (NbrRelationsOptimizationId) => {\r\n\t\tdispatch(GetNbrRelationsOptimizationExport(NbrRelationsOptimizationId));\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\r\n\t\t\t\t\t _onGetNbrRelationsOptimizationExport(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 _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: 'user',\r\n\t\t\t\tlabel: 'User',\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: 'sites',\r\n\t\t\t\tlabel: 'Sites',\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: 'files',\r\n\t\t\t\tlabel: 'Files',\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: 'runDate',\r\n\t\t\t\tlabel: 'Run Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nNbrRelationsOptimizationTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default NbrRelationsOptimizationTable;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert, FilesDropzone } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport _ from 'underscore';\r\n\r\nimport NbrRelationsOptimizationTable from './components/NbrRelationsOptimizationTable';\r\n\r\nimport { GetNbrRelationsOptimizationTable, NbrRelationsOptimizationUploadRun } from '../actions/NbrRelationsOptimizationActions.js';\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 NbrRelationsOptimization = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst nbrRelationsOptimizationTableData = useSelector((state) => state.nbrRelationsOptimizationReducer.nbrRelationsOptimizationTableData);\r\n\r\n\tconst _NbrRelationsFilesUpload = files => {\r\n\t\tfiles.forEach(file => {\r\n\t\t\tif (!file.size > 10000000) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: `File ${file.name} not valid. Please check file size.`,\r\n\t\t\t\t\t\toptions: { variant: 'warning' }\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\tdispatch(NbrRelationsOptimizationUploadRun(user.id, files));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetNbrRelationsOptimizationTable());\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\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\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\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 NbrRelationsOptimization;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert, FilesDropzone } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider, Button } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport _ from 'underscore';\r\nimport FileDownloadIcon from '@mui/icons-material/FileDownload';\r\n\r\nimport { UploadLogFiles, GetMoBacthScripts, GetLogsLastUpdate } from '../actions/UploadLogsActions.js';\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 UploadLogs = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst logsLastUpdate = useSelector((state) => state.uploadLogsReducer.logsLastUpdate);\r\n\r\n\tconst _LogsUpload = files => {\r\n\t\tfiles.forEach(file => {\r\n\t\t\tif (!file.size > 10000000) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: `File ${file.name} not valid. Please check file size.`,\r\n\t\t\t\t\t\toptions: { variant: 'warning' }\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\tdispatch(UploadLogFiles(files, user.id));\r\n\t};\r\n\r\n\tconst _getMoBatchScripts = () => {\r\n\t\tdispatch(GetMoBacthScripts());\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetLogsLastUpdate());\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\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tonClick={_getMoBatchScripts}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tGet MoBatch Scripts\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\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 UploadLogs;\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } 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\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}));\r\n\r\nconst FaultManagementTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'siteId',\r\n\t\t\t\tlabel: 'Site 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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Site Id - ${v}`\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: 'siteName',\r\n\t\t\t\tlabel: 'Site 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: 'nodeName',\r\n\t\t\t\tlabel: 'NodeName',\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: 'tech',\r\n\t\t\t\tlabel: 'Technology',\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: 'alarmDatetime',\r\n\t\t\t\tlabel: 'Alarm Datetime',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'AlarmName',\r\n\t\t\t\tlabel: 'Alarm 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: 'moName',\r\n\t\t\t\tlabel: 'Mo 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: 'info',\r\n\t\t\t\tlabel: 'Information',\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nFaultManagementTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default FaultManagementTable;\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } 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\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\tokCell: {\r\n\t\tbackgroundColor: '#a5d6a7',\r\n\t},\r\n\tnokCell: {\r\n\t\tbackgroundColor: '#ef9a9a',\r\n\t}\r\n}));\r\n\r\nconst FaultManagementSummaryTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'siteId',\r\n\t\t\t\tlabel: 'Site 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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Site Id - ${v}`\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: 'siteName',\r\n\t\t\t\tlabel: 'Site 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: 'nodeName',\r\n\t\t\t\tlabel: 'NodeName',\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: 'tech',\r\n\t\t\t\tlabel: 'Technology',\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: 'commissioningDate',\r\n\t\t\t\tlabel: 'Commissioning Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'currentStatus',\r\n\t\t\t\tlabel: 'Current Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Current Status - ${v}`\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: 'alarmStatus',\r\n\t\t\t\tlabel: 'Alarm Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Alarm Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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: 'alarmCount',\r\n\t\t\t\tlabel: 'Alarm Count',\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: 'alarmComments',\r\n\t\t\t\tlabel: 'Alarm Comments',\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nFaultManagementSummaryTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default FaultManagementSummaryTable;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert, FilesDropzone } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider, Button } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport _ from 'underscore';\r\n\r\nimport FaultManagementTable from './components/FaultManagementTable';\r\nimport FaultManagementSummaryTable from './components/FaultManagementSummaryTable';\r\n\r\nimport { GetLogsLastUpdate } from '../actions/UploadLogsActions.js';\r\nimport { GetFaultManagementSummaryTable, GetFaultManagementTable } from '../actions/FaultManagementActions.js';\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 FaultManagement = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst faultManagementTableData = useSelector((state) => state.faultManagementReducer.faultManagementTableData);\r\n\tconst faultManagementSummaryTableData = useSelector((state) => state.faultManagementReducer.faultManagementSummaryTableData);\r\n\tconst logsLastUpdate = useSelector((state) => state.uploadLogsReducer.logsLastUpdate);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetFaultManagementTable());\r\n\t\tdispatch(GetFaultManagementSummaryTable());\r\n\t\tdispatch(GetLogsLastUpdate());\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\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\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 FaultManagement;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetFaultManagementTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetFaultManagement`\r\n});\r\n\r\nexport const GetFaultManagementSummaryTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetFaultManagementSummary`\r\n});\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } 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\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\tokCell: {\r\n\t\tbackgroundColor: '#a5d6a7',\r\n\t},\r\n\tnokCell: {\r\n\t\tbackgroundColor: '#ef9a9a',\r\n\t}\r\n}));\r\n\r\nconst ConfigurationManagementSummaryTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'siteId',\r\n\t\t\t\tlabel: 'Site 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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Site Id - ${v}`\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: 'siteName',\r\n\t\t\t\tlabel: 'Site 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: 'nodeName',\r\n\t\t\t\tlabel: 'NodeName',\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: 'tech',\r\n\t\t\t\tlabel: 'Technology',\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: 'commissioningDate',\r\n\t\t\t\tlabel: 'Commissioning Date',\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) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'currentStatus',\r\n\t\t\t\tlabel: 'Current Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Current Status - ${v}`\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: 'radioStatus',\r\n\t\t\t\tlabel: 'Radio Configuration Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Radio Configuration Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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: 'radioComments',\r\n\t\t\t\tlabel: 'Radio Configuration Comments',\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: 'coreStatus',\r\n\t\t\t\tlabel: 'Core Configuration Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Core Configuration Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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: 'coreComments',\r\n\t\t\t\tlabel: 'Core Configuration Comments',\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nConfigurationManagementSummaryTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default ConfigurationManagementSummaryTable;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert, FilesDropzone } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider, Button } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport _ from 'underscore';\r\n\r\nimport ConfigurationManagementSummaryTable from './components/ConfigurationManagementSummaryTable';\r\nimport { GetLogsLastUpdate } from '../actions/UploadLogsActions.js';\r\nimport { GetConfigurationManagementSummaryTable } from '../actions/ConfigurationManagementActions.js';\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 ConfigurationManagement = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst configurationManagementSummaryTableData = useSelector((state) => state.configurationManagementReducer.configurationManagementSummaryTableData);\r\n\tconst logsLastUpdate = useSelector((state) => state.uploadLogsReducer.logsLastUpdate);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetConfigurationManagementSummaryTable());\r\n\t\tdispatch(GetLogsLastUpdate());\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\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 ConfigurationManagement;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetConfigurationManagementSummaryTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetConfigurationManagementSummary`\r\n});\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } 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\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\tokCell: {\r\n\t\tbackgroundColor: '#a5d6a7',\r\n\t},\r\n\tnokCell: {\r\n\t\tbackgroundColor: '#ef9a9a',\r\n\t}\r\n}));\r\n\r\nconst OverallSiteSummaryTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'siteId',\r\n\t\t\t\tlabel: 'Site 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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Site Id - ${v}`\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: 'siteName',\r\n\t\t\t\tlabel: 'Site 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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Site Name - ${v}`\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: 'commissioningDate',\r\n\t\t\t\tlabel: 'Commissioning Date',\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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Commissioning Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'currentStatus',\r\n\t\t\t\tlabel: 'Current Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Current Status - ${v}`\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: 'overallSiteStatus',\r\n\t\t\t\tlabel: 'Overall Site Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Overall Site Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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: 'performanceStatus',\r\n\t\t\t\tlabel: 'Performance Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Performance Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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: 'alarmStatus',\r\n\t\t\t\tlabel: 'Alarm Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Alarm Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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: 'radioStatus',\r\n\t\t\t\tlabel: 'Radio Configuration Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Radio Configuration Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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: 'coreStatus',\r\n\t\t\t\tlabel: 'Core Configuration Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Core Configuration Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nOverallSiteSummaryTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default OverallSiteSummaryTable;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert, FilesDropzone } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider, Button } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport _ from 'underscore';\r\n\r\nimport OverallSiteSummaryTable from './components/OverallSiteSummaryTable';\r\n\r\nimport { GetLogsLastUpdate } from '../actions/UploadLogsActions.js';\r\nimport { GetOverallSiteSummaryTable } from '../actions/OverallSiteSummaryActions.js';\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 OverallSiteSummary = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst overallSiteSummaryTableData = useSelector((state) => state.overallSiteSummaryReducer.overallSiteSummaryTableData);\r\n\tconst logsLastUpdate = useSelector((state) => state.uploadLogsReducer.logsLastUpdate);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetOverallSiteSummaryTable());\r\n\t\tdispatch(GetLogsLastUpdate());\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\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 OverallSiteSummary;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOverallSiteSummaryTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Monitoring/GetOverallSiteSummary`\r\n});\r\n","import React, { useState, useEffect } from 'react';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } 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\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\tokCell: {\r\n\t\tbackgroundColor: '#a5d6a7',\r\n\t},\r\n\tnokCell: {\r\n\t\tbackgroundColor: '#ef9a9a',\r\n\t}\r\n}));\r\n\r\nconst SiteReportTable = (props) => {\r\n\tconst { name, structure, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst [columns, setColumns] = useState(structure);\r\n\r\n\tuseEffect(() => {\r\n\t\tsetColumns(\r\n\t\t\tstructure.map((column) => ({\r\n\t\t\t\tname: column.name,\r\n\t\t\t\tlabel: column.label,\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: column.options.display,\r\n\t\t\t\t\tfilterType: column.options.filterType,\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `${column.label} - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: value => ({\r\n\t\t\t\t\t\tclassName: clsx({\r\n\t\t\t\t\t\t\t[classes.okCell]: value === 'OK',\r\n\t\t\t\t\t\t\t[classes.nokCell]: value === 'NOK'\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}, [data]);\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\nSiteReportTable.propTypes = {\r\n\tname: PropTypes.string.isRequired,\r\n\tstructure: PropTypes.array.isRequired,\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default SiteReportTable;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Tabs, Tab, CardContent, Autocomplete, createFilterOptions, TextField, Card, Button } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport _ from 'underscore';\r\nimport TableViewIcon from '@mui/icons-material/TableView';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\n\r\nimport SiteReportTable from './components/SiteReportTable';\r\n\r\nimport { GetLogsLastUpdate } from '../actions/UploadLogsActions.js';\r\nimport { GetSiteReport, GetSiteList, SetSelectedSite, GetSiteReportEmail, GetSiteReportExcel, GetSiteReportEmailAcceptance } from '../actions/SiteReportActions.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\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\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t}\r\n}));\r\n\r\nconst tabs = [\r\n\t{ value: 'Summary', label: 'Summary' },\r\n\t{ value: 'RET Information', label: 'RET Information' },\r\n\t{ value: 'Alarms', label: 'Alarms' },\r\n\t{ value: 'Configuration Check 2G', label: 'Configuration Check 2G' },\r\n\t{ value: 'Configuration Check 3G', label: 'Configuration Check 3G' },\r\n\t{ value: 'Configuration Check 4G', label: 'Configuration Check 4G' },\r\n\t{ value: 'Configuration Check 5G', label: 'Configuration Check 5G' },\r\n\t{ value: 'Configuration Check NBIoT', label: 'Configuration Check NBIoT' }\r\n];\r\n\r\nconst SiteReport = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst [tab, setTab] = useState('Summary');\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst logsLastUpdate = useSelector((state) => state.uploadLogsReducer.logsLastUpdate);\r\n\tconst siteReport = useSelector((state) => state.siteReportReducer.siteReport);\r\n\tconst siteList = useSelector((state) => state.siteReportReducer.siteList);\r\n\tconst selectedSite = useSelector((state) => state.siteReportReducer.selectedSite);\r\n\tconst siteReportTabs = useSelector((state) => state.siteReportReducer.siteReportTabs);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSiteList());\r\n\t\tdispatch(GetLogsLastUpdate());\r\n\t}, []);\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t};\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _handleSiteChange = (value) => {\r\n\t\tdispatch(SetSelectedSite(value));\r\n\t\tdispatch(GetSiteReport(value));\r\n\t};\r\n\r\n\tconst _onExcelExportClick = () => {\r\n\t\tdispatch(GetSiteReportExcel(selectedSite));\r\n\t};\r\n\r\n\tconst _onEmailExportClick = () => {\r\n\t\tdispatch(GetSiteReportEmail(selectedSite, user.id));\r\n\t};\r\n\r\n\tconst _onEmailAcceptanceClick = () => {\r\n\t\tdispatch(GetSiteReportEmailAcceptance(selectedSite, user.id));\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\t\t `${option.text}`}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\t\t\tonChange={(event, value) => { _handleSiteChange(value.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\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tonClick={_onEmailAcceptanceClick}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tEmail Acceptance\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\tonClick={_onEmailExportClick}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tEmail Report\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\tonClick={_onExcelExportClick}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tExcel Report\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{tabs.map((item) => (\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{tab === 'Summary' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Site Summary')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Site Summary')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'Summary' && (
)}\r\n\t\t\t\t{tab === 'Summary' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Commissioning Information')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Commissioning Information')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'RET Information' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'RET Information')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'RET Information')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'Alarms' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Alarms')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Alarms')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'Configuration Check 2G' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 2G')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 2G')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'Configuration Check 3G' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 3G')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 3G')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'Configuration Check 4G' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 4G')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 4G')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'Configuration Check 5G' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 5G')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check 5G')].TableData : []}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) }\r\n\t\t\t\t{tab === 'Configuration Check NBIoT' && (\r\n\t\t\t\t\t 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check NBIoT')].TableStructure : []}\r\n\t\t\t\t\t\tdata={siteReport.length > 0 ? siteReport[siteReport.findIndex(x => x.TableName === 'Configuration Check NBIoT')].TableData : []}\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 SiteReport;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetSitesRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/GetANRSites`\r\n});\r\n\r\nexport const RunANRValidationRequest = (sites, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Validation/RunANRValidation`,\r\n\tparams: { sites, userId }\r\n});\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { SelectField } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\n\r\nimport { SetFormState, RunANRValidation } from '../../actions/ANRValidationActions.js';\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 ANRValidationForm = (props) => {\r\n\tconst { sites, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst formState = useSelector((state) => state.anrValidationReducer.formState);\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _onANRValidationClick = () => {\r\n\t\tdispatch(RunANRValidation(formState.sites.map(site => site.value).toString(), user.id));\r\n\t};\r\n\r\n\tconst _handleChange = (name, value) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\t[name]: value,\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('sites', value); }}\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\tRun Validation\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\nANRValidationForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default ANRValidationForm;\r\n","import { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetSitesRequest,\r\n\tRunANRValidationRequest\r\n} from '../requests/ANRValidationRequests.js';\r\n\r\nimport {\r\n\tGetNbrRelationsLastUpdateRequest\r\n} from '../requests/NbrRelationsValidationRequests.js';\r\n\r\nexport const GET_SITES = 'GET_SITES';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_NBRRELATIONS_LAST_UPDATE = 'GET_NBRRELATIONS_LAST_UPDATE';\r\n\r\nconst onGetNbrRelationsLastUpdate = (value) => ({\r\n\ttype: GET_NBRRELATIONS_LAST_UPDATE,\r\n\tnbrRelationsLastUpdate: value\r\n});\r\n\r\nexport const GetNbrRelationsLastUpdate = () => async (dispatch) => {\r\n\tawait GetNbrRelationsLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetNbrRelationsLastUpdate(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 onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nconst onGetSites = (value) => ({\r\n\ttype: GET_SITES,\r\n\tsites: value\r\n});\r\n\r\nexport const GetSites = () => async (dispatch) => {\r\n\tawait GetSitesRequest().then(response => {\r\n\t\tdispatch(onGetSites(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 RunANRValidation = (sites, userId) => async (dispatch) => {\r\n\tawait RunANRValidationRequest(sites, userId).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 clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport ANRValidationForm from './components/ANRValidationForm';\r\nimport { GetSites, GetNbrRelationsLastUpdate } from '../actions/ANRValidationActions.js';\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 ANRValidation = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst sites = useSelector((state) => state.anrValidationReducer.sites);\r\n\tconst nbrRelationsLastUpdate = useSelector((state) => state.anrValidationReducer.nbrRelationsLastUpdate);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSites());\r\n\t\tdispatch(GetNbrRelationsLastUpdate());\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\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 ANRValidation;\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } 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\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}));\r\n\r\nconst CositeHealthCheckTable = (props) => {\r\n\tconst { title, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'cosites2G2G',\r\n\t\t\t\tlabel: '2G 2G',\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: 'cosites3G2G',\r\n\t\t\t\tlabel: '3G 2G',\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: 'cosites3G3G',\r\n\t\t\t\tlabel: '3G 3G',\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: 'cosites4G2G',\r\n\t\t\t\tlabel: '4G 2G',\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: 'cosites4G3G',\r\n\t\t\t\tlabel: '4G 3G',\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: 'cosites4G4G',\r\n\t\t\t\tlabel: '4G 4G',\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: 'cosites5G4G',\r\n\t\t\t\tlabel: '5G 4G',\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: 'cosites5G5G',\r\n\t\t\t\tlabel: '5G 5G',\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCositeHealthCheckTable.propTypes = {\r\n\ttitle: PropTypes.string.isRequired,\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default CositeHealthCheckTable;\r\n","import React, { useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { DatePicker } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\nimport moment from 'moment';\r\nimport validate from 'validate.js';\r\nimport _ from 'underscore';\r\n\r\nimport { SetFormState, GetCositeHealthCheck } from '../../actions/CositeHealthCheckActions.js';\r\n\r\nconst schema = {\r\n\tsiteId: {\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\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 CositeHealthCheckForm = (props) => {\r\n\tconst { sites, ...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.cositeHealthCheckReducer.formState);\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\r\n\tconst _handleChange = (name, value) => {\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[name]: 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[name]: true,\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\tconst _onClickCheckCositeHealth = () => {\r\n\t\tsetFormState({ ...formState, submit: true });\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(GetCositeHealthCheck(formState.values.siteId.value));\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('siteId', value); }}\r\n\t\t\t\t\t\terror={_hasError('siteId')}\r\n\t\t\t\t\t\thelperText={\r\n\t\t\t\t\t\t\t_hasError('siteId')\r\n\t\t\t\t\t\t\t\t? formState.errors.siteId[0]\r\n\t\t\t\t\t\t\t\t: null\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\tCheck Cosite Health\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\nCositeHealthCheckForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default CositeHealthCheckForm;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport CositeHealthCheckTable from './components/CositeHealthCheckTable';\r\nimport CositeHealthCheckForm from './components/CositeHealthCheckForm';\r\n\r\nimport { GetAnrNbrTrackingSites, GetNbrRelationsLastUpdate } from '../actions/AnrNbrTrackingActions.js';\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 CositeHealthCheck = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst anrNbrTrackingSites = useSelector((state) => state.anrNbrTrackingReducer.anrNbrTrackingSites);\r\n\tconst cositeHealthCheckData = useSelector((state) => state.cositeHealthCheckReducer.cositeHealthCheckData);\r\n\tconst nbrRelationsLastUpdate = useSelector((state) => state.cositeHealthCheckReducer.nbrRelationsLastUpdate);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetAnrNbrTrackingSites());\r\n\t\tdispatch(GetNbrRelationsLastUpdate());\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\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\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\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 CositeHealthCheck;\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\nimport { DataTable } 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\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}));\r\n\r\nconst AnrNbrTrackingTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'runDate',\r\n\t\t\t\tlabel: 'Run Date',\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) => <>{moment(value).format('DD-MM-YYYY').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'siteId',\r\n\t\t\t\tlabel: 'Site 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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'change',\r\n\t\t\t\tlabel: 'Change',\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: 'changeCount',\r\n\t\t\t\tlabel: 'Change Count',\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\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nAnrNbrTrackingTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default AnrNbrTrackingTable;\r\n","import React, { useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { DatePicker } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Button, Autocomplete, TextField, createFilterOptions } from '@mui/material';\r\nimport moment from 'moment';\r\nimport validate from 'validate.js';\r\nimport _ from 'underscore';\r\n\r\nimport { SetFormState, GetAnrNbrTrackingExport } from '../../actions/AnrNbrTrackingActions.js';\r\n\r\nconst schema = {\r\n\tsiteId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tstartDate: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tendDate: {\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\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 AnrNbrTrackingForm = (props) => {\r\n\tconst { sites, ...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.anrNbrTrackingReducer.formState);\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 50\r\n\t});\r\n\r\n\tconst _hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\r\n\tconst _handleChange = (name, value) => {\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[name]: 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[name]: true,\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\tconst _onClickGetAnrNbrTracking = () => {\r\n\t\tsetFormState({ ...formState, submit: true });\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(GetAnrNbrTrackingExport(formState.values.siteId.map(site => site.value).toString(), formState.values.startDate, formState.values.endDate));\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 `${option.text}`}\r\n\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChange('siteId', value); }}\r\n\t\t\t\t\t\terror={_hasError('siteId')}\r\n\t\t\t\t\t\thelperText={\r\n\t\t\t\t\t\t\t_hasError('siteId')\r\n\t\t\t\t\t\t\t\t? formState.errors.siteId[0]\r\n\t\t\t\t\t\t\t\t: null\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 _handleChange('startDate', value)}\r\n\t\t\t\t\t\terror={_hasError('startDate')}\r\n\t\t\t\t\t\thelperText={\r\n\t\t\t\t\t\t\t_hasError('startDate')\r\n\t\t\t\t\t\t\t\t? formState.errors.startDate[0]\r\n\t\t\t\t\t\t\t\t: null\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 _handleChange('endDate', value)}\r\n\t\t\t\t\t\terror={_hasError('endDate')}\r\n\t\t\t\t\t\thelperText={\r\n\t\t\t\t\t\t\t_hasError('endDate')\r\n\t\t\t\t\t\t\t\t? formState.errors.endDate[0]\r\n\t\t\t\t\t\t\t\t: null\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\tGet Anr Nbr Tracking\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\nAnrNbrTrackingForm.propTypes = {\r\n\tsites: PropTypes.array.isRequired\r\n};\r\n\r\nexport default AnrNbrTrackingForm;\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport _ from 'underscore';\r\n\r\nimport AnrNbrTrackingTable from './components/AnrNbrTrackingTable';\r\nimport AnrNbrTrackingForm from './components/AnrNbrTrackingForm';\r\n\r\nimport { GetAnrNbrTrackingLastUpdate, GetAnrNbrTrackingSites, GetAnrNbrTrackingTable, GetNbrRelationsLastUpdate } from '../actions/AnrNbrTrackingActions.js';\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 AnrNbrTracking = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst anrNbrTrackingLastUpdate = useSelector((state) => state.anrNbrTrackingReducer.anrNbrTrackingLastUpdate);\r\n\tconst nbrRelationsLastUpdate = useSelector((state) => state.anrNbrTrackingReducer.nbrRelationsLastUpdate);\r\n\tconst anrNbrTrackingSites = useSelector((state) => state.anrNbrTrackingReducer.anrNbrTrackingSites);\r\n\tconst anrNbrTrackingTableData = useSelector((state) => state.anrNbrTrackingReducer.anrNbrTrackingTableData);\r\n\tconst message = `${_.isUndefined(anrNbrTrackingLastUpdate) ? 'Date unavailable!' : anrNbrTrackingLastUpdate} - \r\n\t${_.isUndefined(nbrRelationsLastUpdate) ? 'Dump date unavailable!' : nbrRelationsLastUpdate}`;\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetAnrNbrTrackingLastUpdate());\r\n\t\tdispatch(GetAnrNbrTrackingSites());\r\n\t\tdispatch(GetAnrNbrTrackingTable());\r\n\t\tdispatch(GetNbrRelationsLastUpdate());\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\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\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\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\nexport default AnrNbrTracking;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const RunE2ENbrRelationsRequest = (filesPath) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Optimization/RunE2ENbrRelations`,\r\n\tparams: { filesPath }\r\n});\r\n","import clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Page, Header, Alert, FilesDropzone } from 'components';\r\nimport { Card, CardContent } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport _ from 'underscore';\r\n\r\nimport { E2ENbrRelationsUploadRun } from '../actions/E2ENbrRelationsActions.js';\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 E2ENbrRelations = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst _NbrRelationsFilesUpload = files => {\r\n\t\tfiles.forEach(file => {\r\n\t\t\tif (!file.size > 10000000) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: `File ${file.name} not valid. Please check file size.`,\r\n\t\t\t\t\t\toptions: { variant: 'warning' }\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\tdispatch(E2ENbrRelationsUploadRun(files));\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\r\n\t);\r\n};\r\n\r\nexport default E2ENbrRelations;\r\n","import { enqueueSnackbar, UploadMultipleFiles } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tRunE2ENbrRelationsRequest\r\n} from '../requests/E2ENbrRelationsRequests.js';\r\n\r\nexport const RunE2ENbrRelations = (filesPath) => async (dispatch) => {\r\n\tawait RunE2ENbrRelationsRequest(filesPath).then(response => {\r\n\t\tif (response.data.includes(':\\\\')) {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t} else {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'success' } }));\r\n\t\t}\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 E2ENbrRelationsUploadRun = (files) => async (dispatch) => {\r\n\tawait UploadMultipleFiles(files).then(response => {\r\n\t\tdispatch(RunE2ENbrRelations(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","/* 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 ParameterPlanning from './views/ParameterPlanning/components/ParameterPlanning.js';\r\nimport CommissioningPlan from './views/Tracking/components/CommissioningPlan.js';\r\nimport CpichValidation from './views/Validation/components/CpichValidation.js';\r\nimport Tracker from './views/Tracking/components/Tracker.js';\r\nimport NbrRelationsValidation from './views/Validation/components/NbrRelationsValidation.js';\r\nimport RanShareNbrRelationsValidation from './views/Validation/components/RanShareNbrRelationsValidation.js';\r\nimport HealthChecks from './views/Validation/components/HealthChecks.js';\r\nimport WorkOrderStatus from './views/Tracking/components/WorkOrderStatus.js';\r\nimport NbrRelationsOptimization from './views/Optimization/components/NbrRelationsOptimization.js';\r\nimport UploadLogs from './views/Monitoring/components/UploadLogs.js';\r\nimport FaultManagement from './views/Monitoring/components/FaultManagement.js';\r\nimport ConfigurationManagement from './views/Monitoring/components/ConfigurationManagement.js';\r\nimport OverallSiteSummary from './views/Monitoring/components/OverallSiteSummary.js';\r\nimport SiteReport from './views/Monitoring/components/SiteReport.js';\r\nimport ANRValidation from './views/Validation/components/ANRValidation.js';\r\nimport CositeHealthCheck from './views/Validation/components/CositeHealthCheck.js';\r\nimport AnrNbrTracking from './views/Validation/components/AnrNbrTracking.js';\r\nimport E2ENbrRelations from './views/Optimization/components/E2ENbrRelations.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: '/planning',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\tprojects: ['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: '/planning/parameterplanning',\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: ParameterPlanning()\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: '/tracking',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\tprojects: ['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: '/tracking/commissioningplan',\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: CommissioningPlan()\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: '/tracking/tracker',\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: Tracker()\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: '/tracking/workorderstatus',\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: WorkOrderStatus()\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: '/validation',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\tprojects: ['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: '/validation/anrvalidation',\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: ANRValidation()\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: '/validation/anrnbrtracking',\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: AnrNbrTracking()\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: '/validation/cositeHealthCheck',\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: CositeHealthCheck()\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: '/validation/cpichvalidation',\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: CpichValidation()\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: '/validation/nbrRelationsValidation',\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: NbrRelationsValidation()\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: '/validation/ranshareNbrRelationsValidation',\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: RanShareNbrRelationsValidation()\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: '/validation/healthChecks',\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: HealthChecks()\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: '/optimization',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\tprojects: ['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: '/optimization/nbrRelationsOptimization',\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: NbrRelationsOptimization()\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: '/optimization/e2eNbrRelations',\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: E2ENbrRelations()\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: '/monitoring',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\tprojects: ['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: '/monitoring/uploadLogs',\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: UploadLogs()\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: '/monitoring/faultManagement',\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: FaultManagement()\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: '/monitoring/configurationManagement',\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: ConfigurationManagement()\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: '/monitoring/overallSiteSummary',\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: OverallSiteSummary()\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: '/monitoring/siteReport',\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: SiteReport()\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: '/dashboards',\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: '/dashboards/dashboardRollout',\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: 'Dashboard Rollout', 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\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: '/NetworkPerformanceMonitoring',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tprojects: ['Ran'],\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: '/NetworkPerformanceMonitoring/2gOverview',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 3 } }, pageTitle: '2G Performance', 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: '/NetworkPerformanceMonitoring/3gOverview',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 5 } }, pageTitle: '3G Performance', 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: '/NetworkPerformanceMonitoring/4gOverview',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 8 } }, pageTitle: '4G Performance', 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: '/NetworkPerformanceMonitoring/voLTEOverview',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 9 } }, pageTitle: 'voLTE Performance', 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: '/NetworkPerformanceMonitoring/5gOverview',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 10 } }, pageTitle: '5G Performance', 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: '/NetworkPerformanceMonitoring/Cluster/2G',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 11 } }, pageTitle: '2G Performance Clusters', 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: '/NetworkPerformanceMonitoring/Cluster/3G',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 12 } }, pageTitle: '3G Performance Clusters', 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: '/NetworkPerformanceMonitoring/Cluster/4G',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 13 } }, pageTitle: '4G Performance Clusters', 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: '/NetworkPerformanceMonitoring/Cluster/voLTE',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 15 } }, pageTitle: 'VoLTE Performance Clusters', 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: '/NetworkPerformanceMonitoring/Cluster/5G',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 14 } }, pageTitle: '5G Performance Clusters', 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: '/NetworkPerformanceMonitoring/Map',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 7 } }, pageTitle: 'PerformanceMap', 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\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: '/activityTracker',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tprojects: ['Ran'],\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: '/activityTracker/tracker',\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\tprojects: ['Ran'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 6 } }, pageTitle: 'Activity Tracker', 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],\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\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\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","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","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","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 _ 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 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 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 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 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\nexport const UploadMultipleFiles = (files) => {\r\n\tconst formData = new FormData();\r\n\tfiles.forEach(file => {\r\n\t\tif (!file.size < 10000000) {\r\n\t\t\tformData.append('file', file);\r\n\t\t}\r\n\t});\r\n\treturn AxiosRequest({\r\n\t\tmethod: 'POST',\r\n\t\turl: `${config.API_URL}File/UploadMultiple`,\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","import { useContext } from 'react';\r\nimport { __RouterContext } from 'react-router';\r\n\r\nexport default () => useContext(__RouterContext);\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":""}