{"version":3,"sources":["utils/gradients.js","components/DataTable/DataTable.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/IncidentTracker/requests/IncidentTrackerRequests.js","views/IncidentTracker/actions/IncidentTrackerActions.js","views/IncidentTracker/reducers/IncidentTrackerReducer.js","views/ReportKpis/requests/ReportsRequests.js","views/ReportKpis/actions/ReportsActions.js","views/ReportKpis/reducers/ReportsReducer.js","views/SiteTracker/requests/SiteTrackerRequests.js","views/SiteTracker/actions/SiteTrackerActions.js","views/SiteTracker/reducers/SiteTrackerReducer.js","views/WeeklyReport/actions/WeeklyReportActions.js","views/WeeklyReport/reducers/WeeklyReportReducer.js","views/StreetScapeTracker/requests/StreetScapeTrackerRequests.js","views/StreetScapeTracker/actions/StreetScapeTrackerActions.js","views/StreetScapeTracker/reducers/StreetScapeTrackerReducer.js","views/StreetScape Reports/requests/SSReportsRequests.js","views/StreetScape Reports/actions/SSReportsActions.js","views/StreetScape Reports/reducers/SSReportsReducer.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/Home/Home.js","views/Management/components/Users/components/Card/Card.js","views/Management/components/Users/components/UsersDataTable/UsersDataTable.js","components/ModalDialog/components/DialogTitle.js","components/ModalDialog/components/DialogContent.js","components/ModalDialog/ModalDialog.js","views/Management/components/Users/components/AddEditUserDialog/components/AddEditUserForm/AddEditUserForm.js","views/Management/components/Users/components/AddEditUserDialog/AddEditUserDialog.js","views/Management/components/Users/components/DeleteUserDialog/DeleteUserDialog.js","views/Management/components/Users/Users.js","views/Management/components/Operators/components/OperatorCard/OperatorCard.js","views/Management/components/Operators/components/OperatorsList/OperatorsList.js","views/Management/components/Operators/components/AddOperatorDialog/components/AddOperatorForm/AddOperatorForm.js","views/Management/components/Operators/components/AddOperatorDialog/AddOperatorDialog.js","views/Management/components/Operators/Operators.js","views/Management/components/OperatorDetails/components/Overview/components/Details/Details.js","views/Management/components/OperatorDetails/components/Overview/components/Picture/Picture.js","views/Management/components/OperatorDetails/components/Overview/Overview.js","views/Management/components/OperatorDetails/components/Projects/components/ProjectsDataTable/components/ActionsButton/ActionsButton.js","views/Management/components/OperatorDetails/components/Projects/components/ProjectsDataTable/ProjectsDataTable.js","views/Management/components/OperatorDetails/components/Projects/components/AddProjectDialog/components/AddProjectForm/AddProjectForm.js","views/Management/components/OperatorDetails/components/Projects/components/AddProjectDialog/AddProjectDialog.js","views/Management/components/OperatorDetails/components/Projects/Projects.js","views/Management/components/OperatorDetails/components/Users/components/UsersDataTable/UsersDataTable.js","views/Management/components/OperatorDetails/components/Users/Users.js","views/Management/components/OperatorDetails/OperatorDetails.js","views/Management/components/Settings/components/General/components/GeneralForm/GeneralForm.js","views/Management/components/Settings/components/General/General.js","views/Management/components/Settings/components/Notifications/Notifications.js","views/Management/components/Settings/components/Security/Security.js","views/Management/components/Settings/Settings.js","views/Management/components/Settings/components/Subscription/Subscription.js","views/Dashboard/components/Inspect/components/OptionsButton/OptionsButton.js","views/Dashboard/components/Inspect/DashboardInspect.js","views/ReportKpis/components/Reports/components/SiteList.js","views/ReportKpis/components/Reports/components/ActionsButton.js","views/ReportKpis/components/Reports/LUReports.js","views/Downloads/components/DownloadList/components/DownloadListItem/DownloadListItem.js","views/Downloads/components/DownloadList/DownloadList.js","views/ReportKpis/components/Reports/components/Downloads.js","views/WeeklyReport/components/components/WeeklyReportTable.js","views/WeeklyReport/components/WeeklyReport.js","views/IncidentTracker/components/components/IncidentTrackerDatatable.js","views/IncidentTracker/components/components/IncidentTrackerDialog/components/components/IncidentTrackerComments.js","views/IncidentTracker/components/components/IncidentTrackerDialog/components/IncidentTrackerDialogForm.js","views/IncidentTracker/components/components/IncidentTrackerDialog/IncidentTrackerDialog.js","views/IncidentTracker/components/components/IncidentTrackerDialog/IncidentTrackerDeleteDialog.js","views/IncidentTracker/components/components/IncidentTrackerDialog/components/components/IncidentTrackerAddFileDialog.js","views/IncidentTracker/components/components/IncidentTrackerDialog/components/components/IncidentTrackerDeleteFileDialog.js","views/IncidentTracker/components/components/IncidentTrackerDialog/components/components/IncidentTrackerOptionsForm.js","views/IncidentTracker/components/components/IncidentTrackerDialog/IncidentTrackerOptionsDialog.js","views/IncidentTracker/components/IncidentTracker.js","views/SiteTracker/components/components/SiteTrackerTableUpdate.js","views/SiteTracker/components/components/SiteTrackerTableNewEntries.js","views/SiteTracker/components/components/SiteTrackerTable.js","views/SiteTracker/components/components/SiteTrackerDialogFormCreate.js","views/SiteTracker/components/components/CommentsHistoryTable.js","views/SiteTracker/components/components/SiteTrackerDialogFormEdit.js","views/SiteTracker/components/components/SiteTrackerDialog.js","views/SiteTracker/components/components/ImportSiteTrackerModal.js","views/SiteTracker/components/SiteTracker.js","views/NominationForm/components/components/NominationPDFForm.js","views/NominationForm/components/components/NominationPDFTable.js","views/NominationForm/components/NominationForm.js","views/StreetScapeTracker/components/components/StreetScapeTrackerTable.js","views/StreetScapeTracker/components/components/StreetScapeTrackerDialogFormCreate.js","views/StreetScapeTracker/components/components/CommentsHistoryTable.js","views/StreetScapeTracker/components/components/StreetScapeTrackerDialogFormEdit.js","views/StreetScapeTracker/components/components/StreetScapeTrackerDialog.js","views/StreetScapeTracker/components/StreetScapeTracker.js","views/StreetScape Reports/components/SiteList.js","views/StreetScape Reports/components/ActionsButton.js","views/StreetScape Reports/SSReports.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","actions/notifierActions.js","components/SelectField/SelectField.js","utils/getInitials.js","configuration/configuration.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/Calendar.js","components/FilePicker/FilePicker.js","components/PowerBIDashboard/PowerBIDashboard.js","components/FiltersDrawer/FiltersDrawer.js","utils/AxiosRequest.js","components/Label/Label.js","components/TableauDashboard/TableauDashboard.js","components/Checkbox/Checkbox.js","components/DatePicker/DatePicker.js","components/AuthGuard/AuthGuard.js","utils/useRouter.js","actions/sessionActions.js"],"names":["buildGradient","start","end","grey","colors","blue","indigo","green","orange","red","DataTable","props","id","title","data","columns","options","showDownload","showPrint","selectableRows","rowsPerPage","filterType","tableBodyMaxHeight","rest","injectFirst","theme","outerTheme","tableBodyCellMaxWidth","actionColumnWidth","createTheme","adaptV4Theme","overrides","MUIDataTable","MUIDataTableHead","MUIDataTableHeadCell","MUIDataTableHeadRow","MUIDataTableBody","MUIDataTableBodyRow","root","backgroundColor","MuiTableCell","head","fontWeight","color","body","maxWidth","width","MUIDataTablePagination","MUIDataTableViewCol","MUIDataTableSearch","MUIDataTableToolbar","MUIDataTableFilter","MUIDataTableFilterList","getMuiTheme","rowsPerPageOptions","download","print","responsive","onRowSelectionChange","currentRowsSelected","allRowsSelected","rowsSelected","onRowSelection","filter","dt","index","indexOf","white","black","primary","contrastText","dark","main","light","secondary","A400","error","text","blueGrey","link","icon","background","default","paper","divider","h1","palette","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","styleOverrides","deletable","input","opacity","borderRadius","overflow","colorPrimary","minWidth","MuiButton","contained","boxShadow","MuiCardActions","padding","MuiCardContent","MuiCardHeader","MuiChip","MuiIconButton","MuiInputBase","MuiLinearProgress","MuiListItemIcon","MuiOutlinedInput","notchedOutline","borderColor","MuiPaper","elevation1","MuiTableHead","typography","borderBottom","MuiTableRow","MuiToggleButton","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","MuiTypography","gutterBottom","marginBottom","components","token","localStorage","getItem","config","TOKEN_KEY","initialState","loggedIn","user","notifications","isLoading","loadingCount","downloads","downloadskey","decoded","jwt","currentDate","Date","getTime","exp","sessionReducer","state","action","type","actionTypes","role","defaultState","GetUsersRequest","AxiosRequest","method","url","API_URL","params","GetRolesRequest","GetOperatorProjectsRequest","operatorIds","GetUserRequest","userId","ResendConfirmationEmailRequest","DeactivateUserRequest","DeleteUserRequest","GET_USERS","GET_USERS_STATS","TOGGLE_ADD_EDIT_USER_DIALOG","TOGGLE_DELETE_USER_DIALOG","GET_ROLES","GET_OPERATORS","GET_OPERATOR_PROJECTS","SET_FORM_STATE","GET_USER","GetUsers","dispatch","a","then","response","value","users","catch","enqueueSnackbar","message","variant","GetUsersStats","usersStats","ToggleAddEditUserDialog","openAddEditUserDialog","openAddEditUserDialogId","onToggleAddEditUserDialog","ToggleDeleteUserDialog","openDeleteUserDialog","openDeleteUserDialogId","onToggleDeleteUserDialog","SetFormState","formState","onSetFormState","roles","operators","operatorProjects","isValid","values","touched","errors","usersReducer","GetOperatorRequest","operatorId","UpdateImageRequest","operator","DeleteProjectRequest","projectId","UpdateOperatorRequest","TOGGLE_ADD_OPERATOR_DIALOG","NAVIGATE_DETAILS","GET_OPERATOR","TOGGLE_ADD_PROJECT_DIALOG","GetOperators","ToggleAddOperatorDialog","openAddEditOperatorDialog","openAddOperatorDialog","NavigateDetails","detailsOperatorId","onNavigateDetails","GetOperator","UpdateImage","ToggleAddProjectDialog","openAddEditProjectDialog","openAddProjectDialog","operatorsReducer","GetOperatorsRequest","UpdateSettingsRequest","ChangePasswordRequest","settingsReducer","DashboardInspectRequest","dashboardId","DASHBOARD_INSPECT","dashboard","reportsReducer","UPDATE_COORDINATES","ADD_MAP","UPDATE_TOPOLOGY","UPDATE_LEGEND","UPDATE_POPUP","UPDATE_OVERLAYS","lat","lon","zoom","maps","mapUpdated","undefined","zoomToUpdate","AddNewMap","mapAlreadyExists","find","el","newAddMaps","slice","map","push","coordinates","CenterLatitude","CenterLongitude","topology","twoG","threeG","fourG","legend","legendElements","updateEnd","UpdateCoordinates","newUpdateMaps","item","newCoordinates","UpdateTopology","newTopologyMaps","newTopology","UpdateLegend","newLegendMaps","newLegend","UpdatePopup","newMaps","control","activePopup","UpdateOverlays","activeLayers","MapReducer","GetIncidentsRequest","GetIncidentDetailsRequest","tableId","EditIncidentDetailsRequest","incidentTrackerDto","CreateIncidentRequest","DeleteIncidentRequest","ExportIncidentsRequest","GetAutocompleteFieldsRequest","siteId","AddAttachmentRequest","incidentId","tempFilePath","DownloadAttachmentRequest","RemoveAttachmentRequest","GetCommentsRequest","AddCommentRequest","comment","AddDropdownFieldRequest","name","relations","RemoveDropdownFieldRequest","RESET_FIELDS","GET_INCIDENT_TRACKER_TRACKER","TOGGLE_INCIDENT_TRACKER_DIALOG","GET_INCIDENT_TRACKER_TRACKER_DETAILS","GET_INCIDENT_TRACKER_TRACKER_DROPDOWNS","TOGGLE_DELETE_INCIDENT_TRACKER_DIALOG","GET_INCIDENT_TRACKER_AUTOCOMPLETE","TOGGLE_ATTACH_FILE_INCIDENT_TRACKER_DIALOG","TOGGLE_REMOVE_FILE_INCIDENT_TRACKER_DIALOG","TOGGLE_OPTIONS_INCIDENT_TRACKER_DIALOG","TOGGLE_OPTIONS_INCIDENT_TRACKER_FORM","GET_COMMENTS","ADD_DROPDOWN_FIELD","onAddDropdownField","newDropdownField","ResetFields","GetIncidents","incidents","ToggleIncidentTrackerDialog","visible","onToggleIncidentTrackerDialog","GetIncidentDetails","incidentDetails","GetIncidentDropdowns","dropdowns","ToggleDeleteIncidentTrackerDialog","onToggleDeleteIncidentTrackerDialog","AddAttachment","filePath","ToggleAttachFileIncidentTrackerDialog","onToggleAttachFileIncidentTrackerDialog","ToggleRemoveFileIncidentTrackerDialog","onToggleRemoveFileIncidentTrackerDialog","ToggleOptionsIncidentTrackerDialog","onToggleOptionsIncidentTrackerDialog","ToggleOptionsIncidentTrackerForm","dropdownLabel","dropdownName","dropdownValue","dropdownId","onToggleOptionsIncidentTrackerForm","GetComments","comments","IncidentTrackerDialogVisibility","deleteIncidentTrackerDialogVisibility","attachFileIncidentTrackerDialogVisibility","removeFileIncidentTrackerDialogVisibility","optionsIncidentTrackerDialogVisibility","optionsIncidentTrackerFormVisibility","autocompleteFields","inputFilePath","incidentTrackerReducer","drives","dates","GenerateReportRequest","siteList","username","GET_SITES","SET_SELECTED_SITES","GET_TRACKER_LAST_UPDATE","GetSites","sites","SetSelectedSites","selectedSites","GetTrackerLastUpdate","lastUpdate","SyncTracker","CreateSiteEntryRequest","siteTrackerCreateDto","GetSiteTrackerBSHDropdownWlcsRequest","lcs","GetSiteTypeDropdownRequest","GetSiteTrackerSiteNameDropdownRequest","siteType","GetSiteTrackerDasZoneDropdownRequest","siteLCS","siteBSH","GetSiteTrackerToEditRequest","GetCommentsHistoryRequest","commentType","ImportSiteTrackerRequest","siteTrackerFilePath","RemoveSiteEntryRequest","GetReportEmailRequest","UpdateSiteActivationDatesRequest","siteIdsToUpdate","CreateNewSiteTrackerEntriesRequest","lcsToCreate","TOGGLE_SITE_TRACKER_DIALOG","GET_SITE_TRACKER_TABLE","GET_DROPDOWNS","GET_BSH_DROPDOWN","GET_SITE_NAME_DROPDOWN","GET_SITE_DASZONE_DROPDOWN","GET_SITE_TRACKER","GET_SITE_TRACKER_TO_EDIT","GET_COMMENTS_HISTORY","TOGGLE_IMPORT_MODAL_VISIBILITY","GET_SITE_TYPE_DROPDOWN","GET_SITE_TRACKER_UPDATE_TABLE","GET_SITE_TRACKER_CREATE_LCS_TABLE","TOGGLE_SITE_TRACKER_UPDATE_VISIBILITY","TOGGLE_SITE_TRACKER_LCS_CREATE_VISIBILITY","ToggleSiteTrackerDialog","siteTrackerId","onToggleSiteTrackerDialog","GetSiteTrackerTable","siteTrackerTable","GetSiteTrackerUpdateTable","siteTrackerUpdateTable","ToggleSiteTrackerUpdateVisibility","siteTrackerUpdateVisibility","onToggleSiteTrackerUpdateVisibility","GetSiteTrackerLcsCreateTable","siteTrackerCreateLCSTable","ToggleSiteTrackerLcsCreateVisibility","siteTrackerLCSCreateVisibility","onToggleSiteTrackerLcsCreateVisibility","CreateSiteEntry","EditSiteEntry","siteTrackerForm","SiteTracker","GetDropdowns","GetCommentsHistory","commentsHistory","GetSiteDasZoneDropdown","siteDasZoneDropdown","ImportSiteTracker","ToggleImportModalVisibility","importModalVisibility","onToggleImportModalVisibility","siteListToUpdate","siteTrackerDialogVisibility","selectedSiteId","siteNameDropdown","siteBshDropdown","siteTypeDropdown","submit","siteTrackerReducer","siteTracker","GET_WEEKLY_REPORT_TABLE","weeklyReportTable","weeklyReportReducer","CreateStreetScapeEntryRequest","streetScapeTrackerCreateDto","GetStreetScapeTrackerToEditRequest","RemoveStreetScapeEntryRequest","EditStreetScapeEntryRequest","streetScapeTrackerForm","GetStreetScapeClusterDropdownRequest","local","GetStreetScapeSiteNameDropdownRequest","cluster","GET_STREETSCAPE_TRACKER_TABLE","GET_STREETSCAPE_TRACKER","GET_STREETSCAPE_TRACKER_TO_EDIT","TOGGLE_STREETSCAPE_TRACKER_DIALOG","GET_LOCAL_DROPDOWN","GET_CLUSTER_DROPDOWN","GET_SITENAME_DROPDOWN","GET_ACTIVATION_STATUS_DROPDOWN","GET_D7_STATUS_DROPDOWN","GetStreetScapeTrackerTable","streetScapeTrackerTable","ToggleStreetScapeTrackerDialog","streetScapeTrackerId","onToggleStreetScapeTrackerDialog","CreateStreetScapeEntry","EditStreetScapeEntry","GetActivationStatusDropdown","activationStatusDropdown","selectedStreetScapeId","streetScapeDialogVisibility","siteLocalDropdown","siteClusterDropdown","d7StatusDropdown","streetScapeTrackerReducer","streetScapeTracker","ssReportsReducer","rootReducer","combineReducers","session","notifierReducer","ENQUEUE_SNACKBAR","key","notification","CLOSE_SNACKBAR","dismissAll","dismissed","REMOVE_SNACKBAR","dashboardInspectReducer","mapReducer","useStyles","makeStyles","Topbar","className","classes","AppBar","clsx","Toolbar","to","alt","src","style","maxHeight","content","height","paddingTop","breakpoints","up","Auth","route","fallback","LinearProgress","renderRoutes","routes","Error","startSignalRConnection","connection","origin","err","NotificationHub","useRef","useDispatch","NotificationRecieved","info","actions","Math","random","useEffect","current","urlRoot","connectionHub","HubConnectionBuilder","withUrl","build","on","onclose","setTimeout","stop","pages","href","HomeIcon","children","ShowChartIcon","BarChartIcon","DashboardIcon","SupervisorAccountIcon","target","DesktopMacIcon","SettingsIcon","overflowY","spacing","profile","display","flexDirection","alignItems","minHeight","avatar","marginTop","navigation","NavBar","openMobile","onMobileClose","router","useRouter","useSelector","location","pathname","projects","management","navigationConfig","hangfire","replace","hangfireindex","findIndex","splice","managementIndex","navbarContent","Avatar","component","RouterLink","getInitials","firstname","lastname","Typography","Divider","list","includes","_","intersection","length","userRole","userProjects","Hidden","lgUp","Drawer","anchor","onClose","open","lgDown","Paper","elevation","square","flexGrow","search","flexBasis","searchIcon","marginRight","searchInput","searchPopper","zIndex","appBar","searchPopperContent","trialButton","marginLeft","trialIcon","notificationsButton","notificationsBadge","logoutButton","logoutIcon","TopBar","onOpenNavBarMobile","history","notificationsRef","useState","pricingModalOpen","setPricingModalOpen","openNotifications","setOpenNotifications","shallowEqual","IconButton","onClick","ref","size","Badge","badgeContent","i","readed","badge","Button","anchorEl","instance","axios","create","drawer","listItemText","lastActivity","whiteSpace","fab","position","bottom","right","topBar","container","flex","navBar","Dashboard","openNavBarMobile","setOpenNavBarMobile","md","margin","Home","Grid","statsInner","justifyContent","lg","xs","align","details","flexWrap","label","backgroundImage","gradients","TodaysMoney","Card","inner","nameCell","primaryButton","errorButton","UsersDataTable","_resendConfirmationEmail","ResendConfirmationEmail","_deactivateUser","DeactivateUser","_renderActions","tableMeta","rowData","Tooltip","edge","viewColumns","customBodyRender","split","sortBy","val","Label","sort","empty","updateValue","expandableRows","DialogTitle","withStyles","closeButton","top","disableTypography","DialogContent","MuiDialogContent","ModalDialog","cancelLabel","confirmLabel","hasConfirm","onConfirmClicked","isDisabled","modal","autoScrollBodyContent","dialogProps","Dialog","fullWidth","disableEscapeKeyDown","DialogActions","disabled","schema","presence","allowEmpty","email","roleId","fields","submitButton","AddEditUserForm","isEdit","setFormState","hasOperatorIdsChanged","usePrevious","validate","handleChange","event","checked","hasError","field","TextField","helperText","onChange","SelectField","hintText","menuItems","isMultiSelect","projectIds","AddEditUserDialog","header","textAlign","author","alignContent","applyButton","onApply","getData","useCallback","userData","CreateUser","DeleteUserDialog","Users","_addUser","module","view","sm","online","active","client","registered","results","paddingBottom","description","tags","detailsButton","deleteButton","OperatorCard","deleteOperator","navigateDetails","CardHeader","CardContent","left","gridList","Projects","AddOperatorForm","AddOperatorDialog","Operators","_addOperator","OperatorsList","saveButton","Details","CardActions","UpdateOperator","textAlgin","removeButton","addButton","Picture","inputFile","click","updateOperator","accept","files","reader","FileReader","addEventListener","result","readAsDataURL","deliverables","members","Overview","xl","ActionsButton","moreRef","openMenu","setOpenMenu","anchorOrigin","vertical","horizontal","menu","transformOrigin","MenuItem","ListItemIcon","ListItemText","memo","ProjectsDataTable","_deleteProject","DeleteProject","AddProjectForm","AddProjectDialog","project","projectList","tabs","alert","OperatorDetails","tab","setTab","t","Tabs","scrollButtons","Tab","userList","GeneralForm","getUserInfo","General","oldpassword","newpassword","confirmnewpassword","equality","Security","overview","down","product","productImage","notice","Settings","OptionsButton","exportPdf","fullScreen","DashboardInspect","match","pageTitle","headerHidden","handle","useFullScreenHandle","_getDashboard","_fullScreen","enter","hidden","ShowExportPDFDialog","TableauDashboard","reportId","serverId","accessToken","fontWeightMedium","warning","generate","reportTypes","SiteList","_dateChange","site","newSite","findWhere","sow","format","newSiteList","List","ListItem","siteName","activationStatus","actionStatus","DatePicker","scheduleDate","moment","commissioningDate","reportType","bis","_handleChange","DownloadFile","GenerateReport","syncTracker","loadOneDrive","Sync","card","cursor","date","flexShrink","avatarBlue","avatarGreen","avatarOrange","avatarRed","group","file","sitelist","LUReports","isUndefined","toString","Autocomplete","getOptionLabel","option","siteDZ","renderInput","multiple","disableCloseOnSelect","infoButton","generate_weekly","IncidentTrackerDatatable","setCellProps","_handleStyle","IncidentTrackerComments","commentValue","setCommentValue","userName","creationTimestamp","disableUnderline","persist","trim","placeholder","AddComment","jvcoId","status","IncidentTrackerDialogForm","_hasError","React","statusClosedDate","setStatusClosedDate","_handleChangeLevels","levelsTwo","levelsRelation","x","levelOneId","levelTwoId","levelTwoName","Map","levelsThree","levelThreeId","levelThreeName","_handleDateChange","newTouched","each","keys","fullMessages","closedDate","globalStatus","useMemo","polygon","levelOne","levelTwo","area","cell","defaultValue","tech","minutesStep","solutionType","levelThree","cfnOwner","incNumber","InputProps","readOnly","executionDate","hasAttachment","agreeButton","DownloadAttachment","IncidentTrackerDialog","selectedDates","selectedFailures","object","CreateIncident","IncidentTrackerDeleteDialog","DeleteIncident","InputBase","inputProps","IncidentTrackerAddFileDialog","UploadFile","UploadAttachment","IncidentTrackerDeleteFileDialog","RemoveAttachment","IncidentTrackerOptionsForm","dropdownValueAdded","setdropdownValueAdded","_handleClose","console","log","Box","sx","m","noValidate","autoComplete","AddDropdownField","RemoveDropdownField","IncidentTrackerOptionsDialog","expanded","setExpanded","panel","isExpanded","_handleChangeDropDown","_addField","_deleteField","Accordion","AccordionSummary","expandIcon","AccordionDetails","e","IncidentTracker","incidentTrackerDialogVisibility","_onCreateSiteIncidentClick","_onExportIncidentsClick","ExportIncidents","_handleSpeedDialClick","SpeedDial","ariaLabel","SpeedDialIcon","SpeedDialAction","tooltipTitle","reason","SiteTrackerTableUpdate","setSelectedSiteToUpdate","UpdateSiteActivationDates","customFilterListOptions","render","v","customBodyRenderLite","dataIndex","Checkbox","row","_handleRowSelect","SiteTrackerTableUNewEntries","setLcsToCreate","CreateNewSiteTrackerEntries","SiteTrackerTable","setOpen","siteTrackerIdToRemove","setSiteTrackerIdToRemove","handleClose","_onReportEmailClick","GetReportEmail","filterList","DialogContentText","RemoveSiteEntry","bsh","dasZone","activationDate","vendor","fieldPartner","noBorder","border","SiteTrackerDialogFormCreate","sow2","join","lcsNotListed","inputFormat","CommentsHistoryTable","rows","TableContainer","Table","TableBody","TableRow","TableCell","accordion","SiteTrackerDialogFormEdit","_handleAccordionChange","d1Status","d7ReportStatusDate","rescheduledDate","currentStatus","Comments","multiline","minRows","InputLabelProps","shrink","d1ReportOwner","d1ReportStatusDate","D1PCVReportComments","d1PCVReportComments","D1BISReportComments","d1BISReportComments","d7ReportOwner","d7Status","D7PCVReportComments","d7PCVReportComments","D7NewCellsReportComments","d7NewCellsReportComments","ttoSubmitDate","ttoApprovedDate","titleTypographyProps","Stack","SiteTrackerDialog","selectedSite","obj","ImportSiteTrackerModal","acceptedTypes","upload","UploadTrackerFiles","popover","pointerEvents","_onExportTrackerClick","StreetScapeTrackerTable","streetScapeIdToRemove","setStreetScapeTrackerIdToRemove","RemoveStreetScapeEntry","schemaPlanned","StreetScapeTrackerDialogFormCreate","StreetScapeTrackerDialogFormEdit","SreetScapeTrackerDialog","StreetScapeTracker","StreetScapeTrackerDialog","SSReports","path","exact","AuthGuard","DashboardLayout","AuthLayout","lazy","ErrorLayout","displayed","Notifier","store","useSnackbar","closeSnackbar","forEach","myKey","onExited","removeSnackbar","Chart","helpers","extend","elements","Rectangle","prototype","draw","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","borderWidth","cornerRadius","base","y","barSize","min","abs","halfStroke","borderLeft","borderRight","borderTop","beginPath","fillStyle","strokeStyle","lineWidth","corners","startCorner","cornerAt","corner","moveTo","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","updateLocale","relativeTime","future","past","s","ss","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","statistics","payout","visitors","watching","uuid","price","currency","updated_at","subtract","todos","deadline","done","add","created_at","subscription","proposalsLeft","templatesLeft","invitesLeft","adsLeft","hasAnalytics","hasEmailAlerts","settings","draft","events","desc","allDay","conversations","otherUser","messages","sender","authUser","contentType","unread","groups","connections","customers","spent","rating","summary","zipCode","address1","address2","iban","autoCC","verified","invoices","vat","balance","emails","paymentMethod","logs","IP","seen","favorited","labels","subject","receiver","start_date","end_date","bio","brief","mimeType","activities","subject_type","action_type","action_desc","subscribers","cover","common_connections","posts","liked","likes","media","reviews","reviewer","pricePerHour","hours","common","invoice","due_date","issue_date","customer","company","nzbn","address","products","subtotal","taxes","total","lists","tasks","progress","orders","payment","order","promoCode","city","items","cuantity","billing","referrals","initials","cyan","image","subscriptions","earnings","createBrowserHistory","basename","process","preloadedState","middlewares","thunkMiddleware","middlewareEnhancer","composeWithDevTools","applyMiddleware","enhancers","composedEnhancers","compose","createStore","configureStore","interceptor","App","StyledEngineProvider","ThemeProvider","maxSnack","autoHideDuration","LocalizationProvider","dateAdapter","DateAdapter","Boolean","window","hostname","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister","chips","chip","formControlStyle","customRenderValue","setLabelWidth","InputLabelRef","offsetWidth","htmlFor","renderValue","selected","toUpperCase","fileInput","shape","success","lightBlue","paddingLeft","icons","Alert","forwardRef","Collapse","in","displayName","defaultProps","trimCode","codeLines","shift","pop","indexOfFirstChar","output","line","substr","CodeBlock","async","source","language","Component","Prism","outline","CookiesNotification","Cookies","get","Link","underline","set","bytes","decimals","k","dm","sizes","parseFloat","pow","toFixed","dropZone","dragActive","FilesDropzone","maxSize","setFiles","handleDrop","acceptedFiles","f","concat","useDropzone","onDrop","getRootProps","getInputProps","isDragActive","suppressScrollX","primaryTypographyProps","bytesToSize","REACT_APP_GA_MEASUREMENT_ID","textDecoration","CustomRouterLink","itemLeaf","buttonLeaf","fontWeightRegular","NavigationListItem","depth","Icon","openProp","disableGutters","o","activeClassName","NavigationList","reduce","page","matchPath","reduceChildRoutes","Navigation","listItem","arrowForwardIcon","NotificationList","avatars","disablePadding","NotificationMarkAsRead","ListItemAvatar","addedDate","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","EmptyList","NotificationsPopover","Popover","GA_MEASUREMENT_ID","Page","gtag","page_path","page_name","Helmet","listStyle","userSelect","activeLink","break","breakLink","next","nextLink","pageLink","previous","previousLink","Paginate","pageCount","pageRangeDisplayed","onPageChange","activeLinkClassName","breakClassName","breakLabel","breakLinkClassName","containerClassName","disabledClassName","marginPagesDisplayed","nextClassName","nextLabel","nextLinkClassName","pageClassName","pageLinkClassName","previousClassName","previousLabel","previousLinkClassName","subContainerClassName","bubble","time","likeButton","likedButton","shareButton","shareIcon","subheader","accessTimeIcon","mediaArea","backgroundPosition","transition","transitions","easing","sharp","duration","leavingScreen","transform","recommended","contact","startButton","PricingModal","subtitle","learnMoreButton","starIcon","starFilledIcon","amber","starBorderIcon","ReviewStars","starCount","starNodes","starNode","activeButton","alpha","FormatQuoteIcon","FormatListBulletedIcon","FormatListNumberedIcon","CodeIcon","FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon","FormatBoldIcon","FormatItalicIcon","FormatUnderlined","newBlockRenderMap","unstyled","element","paragraph","ScrollReset","DefaultDraftBlockRenderMap","merge","editorContainer","fontFamily","textAlignLeft","textAlignCenter","textAlignRight","textAlignJustify","scrollTo","buttonIcon","contentSection","contentSectionHeader","contentSectionContent","formGroup","fieldGroup","minAmount","maxAmount","radioGroup","searchButton","filterButton","filterIcon","more","StackAvatars","limit","avatarNodes","small","medium","large","StatusBullet","rootClassName","backdrop","Loading","Backdrop","CircularProgress","Header","iconButton","selectedDate","handleDateChange","useSate","selectedStateDate","setSelectedDate","CalendarPicker","FilePicker","orientation","PowerBIDashboard","embedConfig","embedUrl","tokenType","models","TokenType","Aad","panes","filters","BackgroundType","Default","cssClassName","getEmbeddedComponent","embeddedReport","report","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","MaterialCheckbox","onCheck","labelPlacement","labelStyle","muiName","onOpen","p","inputVariant","emptyLabel","propTypes","PropTypes","node","array","isRequired","useContext","__RouterContext","SESSION_LOGIN","SESSION_LOGOUT","SET_NOTIFICATIONS","USER_INFO","SET_LOADING","REDIRECT_TO_ERROR","SET_DOWNLOADS","onLogin","onRedirectToError","login","password","setItem","logout","removeItem","recover","CompleteRegistration","rpassword","ResetPassword","FetchNotifications","FetchDownloads","formData","FormData","append","ShowFile","blob","filename","decodeURIComponent","newBlob","Blob","msSaveOrOpenBlob","URL","createObjectURL","createElement","appendChild","removeChild","revokeObjectURL","responseType"],"mappings":"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CVjF,SAAUrV,OAASuV,IAAI,EAAG,SAE3B,CACC9tC,GAAIstC,OACJhlB,IAAK,KACL9C,KAAM,WACNvlB,MAAO,wCACPyuC,KACC,2EACDvb,QAAS,CACR,+BACA,gCAEDP,MAAO,EACPzc,SAAU,EACV08B,SAAU,EACVjF,SAAUrV,OAASuV,IAAI,EAAG,SAE3B,CACC9tC,GAAIstC,OACJhlB,IAAK,KACL9C,KAAM,WACNvlB,MACC,+DACDyuC,KACC,8FACDvb,QAAS,CAAC,iCACVP,MAAO,EACPzc,SAAU,EACV08B,SAAU,EACVjF,SAAUrV,OAASuV,IAAI,EAAG,SAE3B,CACC9tC,GAAIstC,OACJhlB,IAAK,KACL9C,KAAM,WACNvlB,MAAO,uBACPyuC,KACC,8FACDvb,QAAS,CACR,+BACA,+BACA,gCAEDP,MAAO,EACPzc,SAAU,EACV08B,SAAU,EACVjF,SAAUrV,OAASuV,IAAI,EAAG,SAE3B,CACC9tC,GAAIstC,OACJhlB,IAAK,KACL9C,KAAM,cACNvlB,MAAO,uCACPyuC,KACC,8FACDvb,QAAS,CAAC,iCACVP,MAAO,EACPzc,SAAU,EACV08B,SAAU,GACVjF,SAAUrV,OAASuV,IAAI,EAAG,UAE3B,CACC9tC,GAAIstC,OACJhlB,IAAK,KACL9C,KAAM,cACNvlB,MAAO,4BACPyuC,KACC,8FACDvb,QAAS,CACR,gCACA,iCAEDP,MAAO,EACPzc,SAAU,EACV08B,SAAU,GACVjF,SAAUrV,OAASuV,IAAI,EAAG,UAE3B,CACC9tC,GAAIstC,OACJhlB,IAAK,KACL9C,KAAM,YACNvlB,MACC,+DACDyuC,KACC,8FACDvb,QAAS,CACR,+BACA,+BACA,gCAEDP,MAAO,EACPzc,SAAU,EACV08B,SAAU,GACVjF,SAAUrV,OAASmV,SAAS,EAAG,SAEhC,CACC1tC,GAAIstC,OACJhlB,IAAK,KACL9C,KAAM,YACNvlB,MAAO,uBACPyuC,KACC,8FACDvb,QAAS,CACR,+BACA,+BACA,+BACA,gCAEDP,MAAO,EACPzc,SAAU,EACV08B,SAAU,GACVjF,SAAUrV,OAASmV,SAAS,EA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","file":"static/js/main.6e18f9f5.chunk.js","sourcesContent":["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","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\t\troot: {\r\n\t\t\t\t\t\t'&:nth-child(odd)': {\r\n\t\t\t\t\t\t\tbackgroundColor: '#f2f2f2'\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\tMuiTableCell: {\r\n\t\t\t\t\thead: {\r\n\t\t\t\t\t\tbackgroundColor: '#1565c0 !important',\r\n\t\t\t\t\t\tfontWeight: 'bold',\r\n\t\t\t\t\t\tcolor: 'white'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbody: {\r\n\t\t\t\t\t\tmaxWidth: tableBodyCellMaxWidth,\r\n\t\t\t\t\t\t'&:last-child': {\r\n\t\t\t\t\t\t\twidth: actionColumnWidth\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMUIDataTablePagination: {},\r\n\t\t\t\tMUIDataTableViewCol: {},\r\n\t\t\t\tMUIDataTableSearch: {},\r\n\t\t\t\tMUIDataTableToolbar: {},\r\n\t\t\t\tMUIDataTableFilter: {},\r\n\t\t\t\tMUIDataTableFilterList: {}\r\n\t\t\t}\r\n\t\t}));\r\n\t};\r\n\r\n\tconst _onRowSelection = (currentRowsSelected, allRowsSelected, rowsSelected) => {\r\n\t\tconst { onRowSelection } = props;\r\n\t\tconst selectedRows = data.filter((dt, index) => rowsSelected.indexOf(index) !== -1);\r\n\t\tonRowSelection(selectedRows);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t ({ ...getMuiTheme(outerTheme) })}>\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nDataTable.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\ttitle: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tcolumns: PropTypes.array.isRequired,\r\n\toptions: PropTypes.object,\r\n\tpagination: PropTypes.bool,\r\n\tshowDownload: PropTypes.bool,\r\n\tshowPrint: PropTypes.bool,\r\n\tselectableRows: PropTypes.string,\r\n\trowsPerPage: PropTypes.number,\r\n\tfilterType: PropTypes.string,\r\n\ttableBodyCellMaxWidth: PropTypes.string || PropTypes.number,\r\n\tactionColumnWidth: PropTypes.string || PropTypes.number,\r\n\tonRowSelection: PropTypes.func,\r\n\ttableBodyMaxHeight: PropTypes.string\r\n};\r\n\r\nexport default DataTable;\r\n","import { 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\tdownloads: [],\r\n\tdownloadskey: 'all',\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_DOWNLOADS: {\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\tdownloads: action.downloads || [],\r\n\t\t\t\t\t\t\tdownloadskey: action.downloadskey || 'all'\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SET_LOADING: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\t\t\t\tloadingCount: action.isLoading ? state.loadingCount++ : state.loadingCount--,\r\n\t\t\t\t\t\t\tisLoading: state.loadingCount > 0,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default sessionReducer;\r\n","import { ENQUEUE_SNACKBAR, CLOSE_SNACKBAR, REMOVE_SNACKBAR } from 'actions';\r\n\r\nconst defaultState = {\r\n\tnotifications: [],\r\n};\r\n\r\nexport default (state = defaultState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase ENQUEUE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: [\r\n\t\t\t\t\t\t\t\t...state.notifications,\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkey: action.key,\r\n\t\t\t\t\t\t\t\t\t...action.notification,\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tcase CLOSE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: state.notifications.map(notification => (\r\n\t\t\t\t\t\t\t\t(action.dismissAll || notification.key === action.key)\r\n\t\t\t\t\t\t\t\t\t? { ...notification, dismissed: true }\r\n\t\t\t\t\t\t\t\t\t: { ...notification }\r\n\t\t\t\t\t\t\t)),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tcase REMOVE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: state.notifications.filter(\r\n\t\t\t\t\t\t\t\tnotification => notification.key !== action.key,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn state;\r\n\t}\r\n};\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetUsersRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetUsers`,\r\n\tparams: { role }\r\n});\r\n\r\nexport const GetUsersStatsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetUsersStats`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetRolesRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetRoles`,\r\n\tparams: { role }\r\n});\r\n\r\nexport const GetOperatorsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetOperators`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetOperatorProjectsRequest = (operatorIds) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetOperatorProjects`,\r\n\tparams: { operatorIds }\r\n});\r\n\r\nexport const CreateUserRequest = (user) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/CreateUser`,\r\n\tdata: user\r\n});\r\n\r\nexport const EditUserRequest = (user) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/EditUser`,\r\n\tdata: user\r\n});\r\n\r\nexport const GetUserRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetUserById`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const ResendConfirmationEmailRequest = (userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/ResendConfirmationEmail`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const DeactivateUserRequest = (userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/DeactivateUser`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const DeleteUserRequest = (userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/DeleteUser`,\r\n\tparams: { userId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetUsersRequest,\r\n\tGetUsersStatsRequest,\r\n\tGetRolesRequest,\r\n\tGetOperatorsRequest,\r\n\tGetOperatorProjectsRequest,\r\n\tCreateUserRequest,\r\n\tGetUserRequest,\r\n\tEditUserRequest,\r\n\tResendConfirmationEmailRequest,\r\n\tDeactivateUserRequest,\r\n\tDeleteUserRequest\r\n} from '../requests/UsersRequests.js';\r\n\r\nexport const GET_USERS = 'GET_USERS';\r\nexport const GET_USERS_STATS = 'GET_USERS_STATS';\r\nexport const TOGGLE_ADD_EDIT_USER_DIALOG = 'TOGGLE_ADD_EDIT_USER_DIALOG';\r\nexport const TOGGLE_DELETE_USER_DIALOG = 'TOGGLE_DELETE_USER_DIALOG';\r\nexport const GET_ROLES = 'GET_ROLES';\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const GET_OPERATOR_PROJECTS = 'GET_OPERATOR_PROJECTS';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_USER = 'GET_USER';\r\n\r\nconst onGetUsers = (value) => ({\r\n\ttype: GET_USERS,\r\n\tusers: value\r\n});\r\n\r\nconst onGetUsersStats = (value) => ({\r\n\ttype: GET_USERS_STATS,\r\n\tusersStats: value\r\n});\r\n\r\nconst onToggleAddEditUserDialog = (openAddEditUserDialog, openAddEditUserDialogId) => ({\r\n\ttype: TOGGLE_ADD_EDIT_USER_DIALOG,\r\n\topenAddEditUserDialog,\r\n\topenAddEditUserDialogId\r\n});\r\n\r\nconst onToggleDeleteUserDialog = (openDeleteUserDialog, openDeleteUserDialogId) => ({\r\n\ttype: TOGGLE_DELETE_USER_DIALOG,\r\n\topenDeleteUserDialog,\r\n\topenDeleteUserDialogId\r\n});\r\n\r\nconst onGetRoles = (value) => ({\r\n\ttype: GET_ROLES,\r\n\troles: value\r\n});\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onGetOperatorProjects = (value) => ({\r\n\ttype: GET_OPERATOR_PROJECTS,\r\n\toperatorProjects: value\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetUser = (value) => ({\r\n\ttype: GET_USER,\r\n\tuser: value\r\n});\r\n\r\nexport const GetUsers = (role) => async (dispatch) => {\r\n\tawait GetUsersRequest(role).then(response => {\r\n\t\tdispatch(onGetUsers(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetUsersStats = () => async (dispatch) => {\r\n\tawait GetUsersStatsRequest().then(response => {\r\n\t\tdispatch(onGetUsersStats(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddEditUserDialog = (openAddEditUserDialog, openAddEditUserDialogId) => (dispatch) => {\r\n\tdispatch(onToggleAddEditUserDialog(openAddEditUserDialog, openAddEditUserDialogId));\r\n};\r\n\r\nexport const ToggleDeleteUserDialog = (openDeleteUserDialog, openDeleteUserDialogId) => (dispatch) => {\r\n\tdispatch(onToggleDeleteUserDialog(openDeleteUserDialog, openDeleteUserDialogId));\r\n};\r\n\r\nexport const GetRoles = (role) => async (dispatch) => {\r\n\tawait GetRolesRequest(role).then(response => {\r\n\t\tdispatch(onGetRoles(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetOperators = () => async (dispatch) => {\r\n\tawait GetOperatorsRequest().then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetOperatorProjects = (operatorIds) => async (dispatch) => {\r\n\tawait GetOperatorProjectsRequest(operatorIds).then(response => {\r\n\t\tdispatch(onGetOperatorProjects(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const CreateUser = (userData, role) => async (dispatch) => {\r\n\tawait CreateUserRequest(userData).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New user created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t\tdispatch(ToggleAddEditUserDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const EditUser = (userData, role) => async (dispatch) => {\r\n\tawait EditUserRequest(userData).then(response => {\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t\tdispatch(ToggleAddEditUserDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const GetUser = (userId) => async (dispatch) => {\r\n\tawait GetUserRequest(userId).then(response => {\r\n\t\tdispatch(onGetUser(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ResendConfirmationEmail = (userId) => async (dispatch) => {\r\n\tawait ResendConfirmationEmailRequest(userId).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Confirmation email sent!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeactivateUser = (userId, role) => async (dispatch) => {\r\n\tawait DeactivateUserRequest(userId).then(response => {\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteUser = (userId, role) => async (dispatch) => {\r\n\tawait DeleteUserRequest(userId).then(response => {\r\n\t\tdispatch(GetUsers(role));\r\n\t\tdispatch(GetUsersStats());\r\n\t\tdispatch(ToggleDeleteUserDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tGET_USERS,\r\n\tGET_USERS_STATS,\r\n\tTOGGLE_ADD_EDIT_USER_DIALOG,\r\n\tTOGGLE_DELETE_USER_DIALOG,\r\n\tGET_ROLES,\r\n\tGET_OPERATORS,\r\n\tGET_OPERATOR_PROJECTS,\r\n\tSET_FORM_STATE,\r\n\tGET_USER\r\n} from '../actions/UsersActions.js';\r\n\r\nconst initialState = {\r\n\tusers: [],\r\n\tusersStats: {},\r\n\topenAddEditUserDialog: false,\r\n\topenAddEditUserDialogId: null,\r\n\topenDeleteUserDialog: false,\r\n\topenDeleteUserDialogId: null,\r\n\troles: [],\r\n\toperators: [],\r\n\toperatorProjects: [],\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t}\r\n};\r\n\r\nconst usersReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_USERS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tusers: action.users\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_USERS_STATS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tusersStats: action.usersStats\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_EDIT_USER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddEditUserDialog: action.openAddEditUserDialog,\r\n\t\t\t\t\t\t\topenAddEditUserDialogId: action.openAddEditUserDialogId,\r\n\t\t\t\t\t\t\tformState: initialState.formState,\r\n\t\t\t\t\t\t\troles: [],\r\n\t\t\t\t\t\t\toperators: [],\r\n\t\t\t\t\t\t\toperatorProjects: [],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_DELETE_USER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenDeleteUserDialog: action.openDeleteUserDialog,\r\n\t\t\t\t\t\t\topenDeleteUserDialogId: action.openDeleteUserDialogId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_ROLES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\troles: action.roles\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPERATOR_PROJECTS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperatorProjects: action.operatorProjects\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_USER: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.user }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default usersReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOperatorsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Operators/GetOperators`,\r\n\tparams: {}\r\n});\r\n\r\nexport const CreateOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/CreateOperator`,\r\n\tdata: operator\r\n});\r\n\r\nexport const DeleteOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'DELETE',\r\n\turl: `${config.API_URL}Operators/DeleteOperator`,\r\n\tdata: operator\r\n});\r\n\r\nexport const GetOperatorRequest = (operatorId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Operators/GetOperator`,\r\n\tparams: { operatorId }\r\n});\r\n\r\nexport const UpdateImageRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/UpdateImage`,\r\n\tdata: operator\r\n});\r\n\r\nexport const DeleteProjectRequest = (projectId) => AxiosRequest({\r\n\tmethod: 'DELETE',\r\n\turl: `${config.API_URL}Operators/DeleteProject`,\r\n\tparams: { projectId }\r\n});\r\n\r\nexport const CreateProjectRequest = (project) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/CreateProject`,\r\n\tdata: project\r\n});\r\n\r\nexport const UpdateOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/UpdateOperator`,\r\n\tdata: operator\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetOperatorsRequest,\r\n\tCreateOperatorRequest,\r\n\tDeleteOperatorRequest,\r\n\tGetOperatorRequest,\r\n\tUpdateImageRequest,\r\n\tDeleteProjectRequest,\r\n\tCreateProjectRequest,\r\n\tUpdateOperatorRequest\r\n} from '../requests/OperatorsRequests.js';\r\n\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const TOGGLE_ADD_OPERATOR_DIALOG = 'TOGGLE_ADD_OPERATOR_DIALOG';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const NAVIGATE_DETAILS = 'NAVIGATE_DETAILS';\r\nexport const GET_OPERATOR = 'GET_OPERATOR';\r\nexport const TOGGLE_ADD_PROJECT_DIALOG = 'TOGGLE_ADD_PROJECT_DIALOG';\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onToggleAddOperatorDialog = (openAddOperatorDialog) => ({\r\n\ttype: TOGGLE_ADD_OPERATOR_DIALOG,\r\n\topenAddOperatorDialog,\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onNavigateDetails = (value) => ({\r\n\ttype: NAVIGATE_DETAILS,\r\n\tdetailsOperatorId: value\r\n});\r\n\r\nconst onGetOperator = (value) => ({\r\n\ttype: GET_OPERATOR,\r\n\toperator: value\r\n});\r\n\r\nconst onToggleAddProjectDialog = (openAddProjectDialog) => ({\r\n\ttype: TOGGLE_ADD_PROJECT_DIALOG,\r\n\topenAddProjectDialog,\r\n});\r\n\r\nexport const GetOperators = () => async (dispatch) => {\r\n\tawait GetOperatorsRequest().then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddOperatorDialog = (openAddEditOperatorDialog) => (dispatch) => {\r\n\tdispatch(onToggleAddOperatorDialog(openAddEditOperatorDialog));\r\n};\r\n\r\nexport const CreateOperator = (data) => async (dispatch) => {\r\n\tawait CreateOperatorRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New operator created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetOperators());\r\n\t\tdispatch(ToggleAddOperatorDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteOperator = (data) => async (dispatch) => {\r\n\tawait DeleteOperatorRequest(data).then(response => {\r\n\t\tdispatch(GetOperators());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const NavigateDetails = (value) => (dispatch) => {\r\n\tdispatch(onNavigateDetails(value));\r\n};\r\n\r\nexport const GetOperator = (operatorId) => async (dispatch) => {\r\n\tawait GetOperatorRequest(operatorId).then(response => {\r\n\t\tdispatch(onGetOperator(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UpdateImage = (operator) => async (dispatch) => {\r\n\tawait UpdateImageRequest(operator).then(response => {\r\n\t\tdispatch(GetOperator(operator.id));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteProject = (projectId, operatorId) => async (dispatch) => {\r\n\tawait DeleteProjectRequest(projectId).then(response => {\r\n\t\tdispatch(GetOperator(operatorId));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddProjectDialog = (openAddEditProjectDialog) => (dispatch) => {\r\n\tdispatch(onToggleAddProjectDialog(openAddEditProjectDialog));\r\n};\r\n\r\nexport const CreateProject = (data) => async (dispatch) => {\r\n\tawait CreateProjectRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New project created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetOperator(data.operatorId));\r\n\t\tdispatch(ToggleAddProjectDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UpdateOperator = (operator) => async (dispatch) => {\r\n\tawait UpdateOperatorRequest(operator).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Operator updated!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tTOGGLE_ADD_OPERATOR_DIALOG,\r\n\tGET_OPERATORS,\r\n\tSET_FORM_STATE,\r\n\tNAVIGATE_DETAILS,\r\n\tGET_OPERATOR,\r\n\tTOGGLE_ADD_PROJECT_DIALOG\r\n} from '../actions/OperatorsActions.js';\r\n\r\nconst initialState = {\r\n\toperators: [],\r\n\topenAddOperatorDialog: false,\r\n\tdetailsOperatorId: null,\r\n\toperator: {},\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t},\r\n\topenAddProjectDialog: false,\r\n};\r\n\r\nconst operatorsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_OPERATOR_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddOperatorDialog: action.openAddOperatorDialog,\r\n\t\t\t\t\t\t\tformState: initialState.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase NAVIGATE_DETAILS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdetailsOperatorId: action.detailsOperatorId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPERATOR: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperator: action.operator,\r\n\t\t\t\t\t\t\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.operator }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_PROJECT_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddProjectDialog: action.openAddProjectDialog,\r\n\t\t\t\t\t\t\tformState: initialState.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default operatorsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOperatorsRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Account/GetUserOperators`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const UpdateSettingsRequest = (data) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Account/UpdateSettings`,\r\n\tdata\r\n});\r\n\r\nexport const ChangePasswordRequest = (data) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Account/ChangePassword`,\r\n\tdata\r\n});\r\n","import { enqueueSnackbar, getUserInfo } from 'actions';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport {\r\n\tGetOperatorsRequest,\r\n\tUpdateSettingsRequest,\r\n\tChangePasswordRequest\r\n} from '../requests/SettingsRequests.js';\r\n\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const GetOperators = (userId) => async (dispatch) => {\r\n\tawait GetOperatorsRequest(userId).then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const UpdateSettings = (data) => async (dispatch) => {\r\n\tawait UpdateSettingsRequest(data).then(response => {\r\n\t\tdispatch(getUserInfo(localStorage.getItem(config.TOKEN_KEY)));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ChangePassword = (data) => async (dispatch) => {\r\n\tawait ChangePasswordRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Password changed!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tGET_OPERATORS,\r\n\tSET_FORM_STATE\r\n} from '../actions/SettingsActions.js';\r\n\r\nconst initialState = {\r\n\toperators: [],\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t}\r\n};\r\n\r\nconst settingsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default settingsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const DashboardInspectRequest = (dashboardId, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Dashboard/Inspect`,\r\n\tparams: { dashboardId, userId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tDashboardInspectRequest,\r\n} from '../requests/DashboardInspectRequests.js';\r\n\r\nexport const DASHBOARD_INSPECT = 'DASHBOARD_INSPECT';\r\n\r\nconst onDashboardInspect = (value) => ({\r\n\ttype: DASHBOARD_INSPECT,\r\n\tdashboard: value\r\n});\r\n\r\nexport const DashboardInspect = (dashboardId, userId) => async dispatch => {\r\n\tawait DashboardInspectRequest(dashboardId, userId).then(response => {\r\n\t\tdispatch(onDashboardInspect(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tDASHBOARD_INSPECT\r\n} from '../actions/DashboardInspectActions.js';\r\n\r\nconst initialState = {\r\n\tdashboard: {\r\n\t}\r\n};\r\n\r\nconst reportsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase DASHBOARD_INSPECT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdashboard: action.dashboard\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default reportsReducer;\r\n","export const UPDATE_COORDINATES = 'UPDATE_COORDINATES';\r\nexport const ADD_MAP = 'ADD_MAP';\r\nexport const UPDATE_TOPOLOGY = 'UPDATE_TOPOLOGY';\r\nexport const UPDATE_LEGEND = 'UPDATE_LEGEND';\r\nexport const UPDATE_POPUP = 'UPDATE_POPUP';\r\nexport const UPDATE_OVERLAYS = 'UPDATE_OVERLAYS';\r\n\r\nexport const onAddMap = (value) => ({\r\n\ttype: ADD_MAP,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateCoordinates = (value) => ({\r\n\ttype: UPDATE_COORDINATES,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateTopology = (value) => ({\r\n\ttype: UPDATE_TOPOLOGY,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateLegend = (value) => ({\r\n\ttype: UPDATE_LEGEND,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdatePopup = (value) => ({\r\n\ttype: UPDATE_POPUP,\r\n\tvalue\r\n});\r\n\r\nexport const onUpdateOverlays = (value) => ({\r\n\ttype: UPDATE_OVERLAYS,\r\n\tvalue\r\n});\r\n","import * as actionTypes from '../actions/MapActions.js';\r\n\r\n// 36.746675\r\n// -6.375104\r\nconst initialState = {\r\n\tlat: 38.741647270880264,\r\n\tlon: -9.204503840513995,\r\n\tzoom: 6,\r\n\tmaps: [],\r\n\tmapUpdated: undefined,\r\n\tzoomToUpdate: 9\r\n};\r\n\r\nconst AddNewMap = (state, action) => {\r\n\tconst mapAlreadyExists = state.maps.find((el) => el.id === action.value.id) !== undefined;\r\n\t// make a copy of the existing array\r\n\tlet newAddMaps = state.maps.slice();\r\n\r\n\tif (mapAlreadyExists) {\r\n\t\tnewAddMaps = newAddMaps.filter(map => map.id !== action.value.id);\r\n\t\tnewAddMaps.push({\r\n\t\t\t...action.value,\r\n\t\t\tcoordinates: {\r\n\t\t\t\tCenterLatitude: state.lat,\r\n\t\t\t\tCenterLongitude: state.lon,\r\n\t\t\t\tzoom: state.zoom\r\n\t\t\t},\r\n\t\t\ttopology: { twoG: [], threeG: [], fourG: [] },\r\n\t\t\tlegend: { legendElements: [], title: '' },\r\n\t\t\tupdateEnd: false\r\n\t\t});\r\n\t} else {\r\n\t\t// modify the COPY, not the original\r\n\t\tnewAddMaps.push({\r\n\t\t\t...action.value,\r\n\t\t\tcoordinates: {\r\n\t\t\t\tCenterLatitude: state.lat,\r\n\t\t\t\tCenterLongitude: state.lon,\r\n\t\t\t\tzoom: state.zoom\r\n\t\t\t},\r\n\t\t\ttopology: { twoG: [], threeG: [], fourG: [] },\r\n\t\t\tlegend: { legendElements: [], title: '' },\r\n\t\t\tupdateEnd: false\r\n\t\t});\r\n\t}\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newAddMaps\r\n\t};\r\n};\r\n\r\nconst UpdateCoordinates = (state, action) => {\r\n\tconst newUpdateMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tcoordinates: action.value.newCoordinates,\r\n\t\t\tupdateEnd: false\r\n\t\t};\r\n\t});\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newUpdateMaps,\r\n\t\tmapUpdated: action.value.id,\r\n\t};\r\n};\r\n\r\nconst UpdateTopology = (state, action) => {\r\n\tconst newTopologyMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\ttopology: action.value.newTopology,\r\n\t\t\tupdateEnd: true\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newTopologyMaps,\r\n\t\tmapUpdated: action.value.id,\r\n\t};\r\n};\r\n\r\nconst UpdateLegend = (state, action) => {\r\n\t// console.log('update legend', action.value.id)\r\n\tconst newLegendMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tlegend: action.value.newLegend,\r\n\t\t\tupdateEnd: true\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newLegendMaps,\r\n\t\tmapUpdated: action.value.id,\r\n\t};\r\n};\r\n\r\nconst UpdatePopup = (state, action) => {\r\n\tconst newMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tcontrol: {\r\n\t\t\t\t...item.control,\r\n\t\t\t\tstate: {\r\n\t\t\t\t\t...item.control.state,\r\n\t\t\t\t\tactivePopup: [...action.value.activePopup]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newMaps,\r\n\t\tmapUpdated: null,\r\n\t};\r\n};\r\n\r\nconst UpdateOverlays = (state, action) => {\r\n\tconst newMaps = state.maps.map((item) => {\r\n\t\tif (item.id !== action.value.id) {\r\n\t\t\t// This isn't the item we care about - keep it as-is\r\n\t\t\treturn item;\r\n\t\t}\r\n\t\t// Otherwise, this is the one we want - return an updated value\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tcontrol: {\r\n\t\t\t\t...item.control,\r\n\t\t\t\tstate: {\r\n\t\t\t\t\t...item.control.state,\r\n\t\t\t\t\tactiveLayers: [...action.value.activeLayers]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\tmaps: newMaps,\r\n\t\tmapUpdated: null,\r\n\t};\r\n};\r\n\r\nconst MapReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase actionTypes.ADD_MAP:\r\n\t\t\t\t\t\treturn AddNewMap(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_COORDINATES:\r\n\t\t\t\t\t\treturn UpdateCoordinates(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_TOPOLOGY:\r\n\t\t\t\t\t\treturn UpdateTopology(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_LEGEND:\r\n\t\t\t\t\t\treturn UpdateLegend(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_POPUP:\r\n\t\t\t\t\t\treturn UpdatePopup(state, action);\r\n\t\t\t\t\tcase actionTypes.UPDATE_OVERLAYS:\r\n\t\t\t\t\t\treturn UpdateOverlays(state, action);\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn state;\r\n\t}\r\n};\r\n\r\nexport default MapReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/GetIncidents`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const GetIncidentDetailsRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/GetIncidentDetails`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const GetIncidentDropdownsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/GetIncidentDropdowns`\r\n});\r\n\r\nexport const EditIncidentDetailsRequest = incidentTrackerDto => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}IncidentTracker/EditIncidentDetails`,\r\n\tdata: incidentTrackerDto\r\n});\r\n\r\nexport const CreateIncidentRequest = incidentTrackerDto => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}IncidentTracker/CreateIncident`,\r\n\tdata: incidentTrackerDto\r\n});\r\n\r\nexport const DeleteIncidentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/DeleteIncident`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const ExportIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/ExportIncidents`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const GetAutocompleteFieldsRequest = siteId => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/GetAutocompleteFields`,\r\n\tparams: { siteId }\r\n});\r\n\r\nexport const AddAttachmentRequest = (userId, incidentId, tempFilePath) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}IncidentTracker/AddAttachment`,\r\n\tdata: { userId, incidentId, tempFilePath }\r\n});\r\n\r\nexport const DownloadAttachmentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/DownloadAttachment`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const RemoveAttachmentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/RemoveAttachment`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const GetCommentsRequest = id => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}IncidentTracker/GetComments`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const AddCommentRequest = (id, userId, comment) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}IncidentTracker/AddComment`,\r\n\tdata: { id, userId, comment }\r\n});\r\n\r\nexport const AddDropdownFieldRequest = (userId, name, value, relations) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}IncidentTracker/AddDropdownField`,\r\n\tdata: { userId, name, value, relations }\r\n});\r\n\r\nexport const RemoveDropdownFieldRequest = (userId, name, value, id, relations) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}IncidentTracker/RemoveDropdownField`,\r\n\tdata: { userId, name, value, id, relations }\r\n});\r\n","import { DownloadFile, enqueueSnackbar, UploadFile } from 'actions';\r\nimport {\r\n\tGetIncidentsRequest,\r\n\tGetIncidentDetailsRequest,\r\n\tGetIncidentDropdownsRequest,\r\n\tEditIncidentDetailsRequest,\r\n\tCreateIncidentRequest,\r\n\tDeleteIncidentRequest,\r\n\tExportIncidentsRequest,\r\n\tGetAutocompleteFieldsRequest,\r\n\tAddAttachmentRequest,\r\n\tDownloadAttachmentRequest,\r\n\tRemoveAttachmentRequest,\r\n\tGetCommentsRequest,\r\n\tAddCommentRequest,\r\n\tAddDropdownFieldRequest,\r\n\tRemoveDropdownFieldRequest\r\n} from '../requests/IncidentTrackerRequests';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const RESET_FIELDS = 'RESET_FIELDS';\r\nexport const GET_INCIDENT_TRACKER_TRACKER = 'GET_INCIDENT_TRACKER_TRACKER';\r\nexport const TOGGLE_INCIDENT_TRACKER_DIALOG = 'TOGGLE_INCIDENT_TRACKER_DIALOG';\r\nexport const GET_INCIDENT_TRACKER_TRACKER_DETAILS = 'GET_INCIDENT_TRACKER_TRACKER_DETAILS';\r\nexport const GET_INCIDENT_TRACKER_TRACKER_DROPDOWNS = 'GET_INCIDENT_TRACKER_TRACKER_DROPDOWNS';\r\nexport const TOGGLE_DELETE_INCIDENT_TRACKER_DIALOG = 'TOGGLE_DELETE_INCIDENT_TRACKER_DIALOG';\r\nexport const GET_INCIDENT_TRACKER_AUTOCOMPLETE = 'GET_INCIDENT_TRACKER_AUTOCOMPLETE';\r\nexport const TOGGLE_ATTACH_FILE_INCIDENT_TRACKER_DIALOG = 'TOGGLE_ATTACH_FILE_INCIDENT_TRACKER_DIALOG';\r\nexport const TOGGLE_REMOVE_FILE_INCIDENT_TRACKER_DIALOG = 'TOGGLE_REMOVE_FILE_INCIDENT_TRACKER_DIALOG';\r\nexport const TOGGLE_OPTIONS_INCIDENT_TRACKER_DIALOG = 'TOGGLE_OPTIONS_INCIDENT_TRACKER_DIALOG';\r\nexport const TOGGLE_OPTIONS_INCIDENT_TRACKER_FORM = 'TOGGLE_OPTIONS_INCIDENT_TRACKER_FORM';\r\nexport const GET_COMMENTS = 'GET_COMMENTS';\r\nexport const ADD_DROPDOWN_FIELD = 'ADD_DROPDOWN_FIELD';\r\n\r\nconst onSetFormState = value => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onResetFields = () => ({\r\n\ttype: RESET_FIELDS\r\n});\r\n\r\nconst onGetIncidents = value => ({\r\n\ttype: GET_INCIDENT_TRACKER_TRACKER,\r\n\tincidents: value\r\n});\r\n\r\nconst onToggleIncidentTrackerDialog = (visible, tableId) => ({\r\n\ttype: TOGGLE_INCIDENT_TRACKER_DIALOG,\r\n\tvisible,\r\n\ttableId\r\n});\r\n\r\nconst onGetIncidentDetails = value => ({\r\n\ttype: GET_INCIDENT_TRACKER_TRACKER_DETAILS,\r\n\tincidentDetails: value\r\n});\r\n\r\nconst onGetIncidentDropdowns = value => ({\r\n\ttype: GET_INCIDENT_TRACKER_TRACKER_DROPDOWNS,\r\n\tdropdowns: value\r\n});\r\n\r\nconst onToggleDeleteIncidentTrackerDialog = (visible, tableId) => ({\r\n\ttype: TOGGLE_DELETE_INCIDENT_TRACKER_DIALOG,\r\n\tvisible,\r\n\ttableId\r\n});\r\n\r\nconst onGetAutocompleteFields = value => ({\r\n\ttype: GET_INCIDENT_TRACKER_AUTOCOMPLETE,\r\n\tautocompleteFields: value\r\n});\r\n\r\nconst onToggleAttachFileIncidentTrackerDialog = visible => ({\r\n\ttype: TOGGLE_ATTACH_FILE_INCIDENT_TRACKER_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleRemoveFileIncidentTrackerDialog = visible => ({\r\n\ttype: TOGGLE_REMOVE_FILE_INCIDENT_TRACKER_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleOptionsIncidentTrackerDialog = visible => ({\r\n\ttype: TOGGLE_OPTIONS_INCIDENT_TRACKER_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleOptionsIncidentTrackerForm = (visible, dropdownLabel, dropdownName, dropdownValue, dropdownId) => ({\r\n\ttype: TOGGLE_OPTIONS_INCIDENT_TRACKER_FORM,\r\n\tvisible,\r\n\tdropdownLabel,\r\n\tdropdownName,\r\n\tdropdownValue,\r\n\tdropdownId\r\n});\r\n\r\nconst onGetComments = value => ({\r\n\ttype: GET_COMMENTS,\r\n\tcomments: value\r\n});\r\n\r\nconst onAddDropdownField = value => ({\r\n\ttype: ADD_DROPDOWN_FIELD,\r\n\tnewDropdownField: value\r\n});\r\n\r\nexport const SetFormState = value => dispatch => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const ResetFields = () => dispatch => {\r\n\tdispatch(onResetFields());\r\n};\r\n\r\nexport const GetIncidents = (userId, role) => async dispatch => {\r\n\tawait GetIncidentsRequest(userId, role)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(onGetIncidents(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const ToggleIncidentTrackerDialog = (visible, tableId) => dispatch => {\r\n\tdispatch(onToggleIncidentTrackerDialog(visible, tableId));\r\n};\r\n\r\nexport const GetIncidentDetails = (\r\n\tuserId,\r\n\ttableId\r\n) => async dispatch => {\r\n\tawait GetIncidentDetailsRequest(userId, tableId)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(onGetIncidentDetails(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const GetIncidentDropdowns = (\r\n\tuserId,\r\n\ttableId\r\n) => async dispatch => {\r\n\tawait GetIncidentDropdownsRequest(userId, tableId)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(onGetIncidentDropdowns(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const EditIncidentDetails = incidentTrackerDto => async dispatch => {\r\n\tawait EditIncidentDetailsRequest(incidentTrackerDto)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(GetIncidents());\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const CreateIncident = incidentTrackerDto => async dispatch => {\r\n\tawait CreateIncidentRequest(incidentTrackerDto)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(GetIncidents());\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const ToggleDeleteIncidentTrackerDialog = (visible, tableId) => dispatch => {\r\n\tdispatch(onToggleDeleteIncidentTrackerDialog(visible, tableId));\r\n};\r\n\r\nexport const DeleteIncident = (userId, tableId) => async dispatch => {\r\n\tawait DeleteIncidentRequest(userId, tableId)\r\n\t\t.then(response => { })\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const ExportIncidents = (userId, role) => async dispatch => {\r\n\tawait ExportIncidentsRequest(userId, role)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const GetAutocompleteFields = siteId => async dispatch => {\r\n\tawait GetAutocompleteFieldsRequest(siteId)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(onGetAutocompleteFields(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const AddAttachment = (\r\n\tuserId,\r\n\tincidentId,\r\n\tfilePath\r\n) => async dispatch => {\r\n\tawait AddAttachmentRequest(userId, incidentId, filePath)\r\n\t\t.then(response => {\r\n\t\t\t// dispatch(GetRepositoryFiles());\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const UploadAttachment = (\r\n\tuserId,\r\n\tincidentId,\r\n\tfile\r\n) => async dispatch => {\r\n\tawait UploadFile(file)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(AddAttachment(userId, incidentId, response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const ToggleAttachFileIncidentTrackerDialog = visible => dispatch => {\r\n\tdispatch(onToggleAttachFileIncidentTrackerDialog(visible));\r\n};\r\n\r\nexport const DownloadAttachment = (userId, tableId) => async dispatch => {\r\n\tawait DownloadAttachmentRequest(userId, tableId)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(DownloadFile(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const ToggleRemoveFileIncidentTrackerDialog = visible => dispatch => {\r\n\tdispatch(onToggleRemoveFileIncidentTrackerDialog(visible));\r\n};\r\n\r\nexport const ToggleOptionsIncidentTrackerDialog = visible => dispatch => {\r\n\tdispatch(onToggleOptionsIncidentTrackerDialog(visible));\r\n};\r\n\r\nexport const ToggleOptionsIncidentTrackerForm = (visible, dropdownLabel, dropdownName, dropdownValue, dropdownId) => dispatch => {\r\n\tdispatch(onToggleOptionsIncidentTrackerForm(visible, dropdownLabel, dropdownName, dropdownValue, dropdownId));\r\n};\r\n\r\nexport const RemoveAttachment = (userId, tableId) => async dispatch => {\r\n\tawait RemoveAttachmentRequest(userId, tableId)\r\n\t\t.then(response => {\r\n\t\t\t// dispatch(DownloadFile(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const GetComments = id => async dispatch => {\r\n\tawait GetCommentsRequest(id)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(onGetComments(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const AddComment = (id, userId, comment) => async dispatch => {\r\n\tawait AddCommentRequest(id, userId, comment)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(GetComments(id));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const AddDropdownField = (userId, name, value, relations) => async dispatch => {\r\n\tawait AddDropdownFieldRequest(userId, name, value, relations)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(GetIncidentDropdowns());\r\n\t\t\tdispatch(onAddDropdownField(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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\r\nexport const RemoveDropdownField = (userId, name, value, id, relations) => async dispatch => {\r\n\tawait RemoveDropdownFieldRequest(userId, name, value, id, relations)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(GetIncidentDropdowns());\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\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","import {\r\n\tSET_FORM_STATE,\r\n\tRESET_FIELDS,\r\n\tGET_INCIDENT_TRACKER_TRACKER,\r\n\tTOGGLE_INCIDENT_TRACKER_DIALOG,\r\n\tGET_INCIDENT_TRACKER_TRACKER_DETAILS,\r\n\tGET_INCIDENT_TRACKER_TRACKER_DROPDOWNS,\r\n\tTOGGLE_DELETE_INCIDENT_TRACKER_DIALOG,\r\n\tGET_INCIDENT_TRACKER_AUTOCOMPLETE,\r\n\tTOGGLE_ATTACH_FILE_INCIDENT_TRACKER_DIALOG,\r\n\tTOGGLE_REMOVE_FILE_INCIDENT_TRACKER_DIALOG,\r\n\tTOGGLE_OPTIONS_INCIDENT_TRACKER_DIALOG,\r\n\tTOGGLE_OPTIONS_INCIDENT_TRACKER_FORM,\r\n\tGET_COMMENTS,\r\n\tADD_DROPDOWN_FIELD\r\n} from '../actions/IncidentTrackerActions';\r\n\r\nconst initialState = {\r\n\tincidents: [],\r\n\tIncidentTrackerDialogVisibility: false,\r\n\tincidentDetails: [],\r\n\tdropdowns: [],\r\n\tincidentTrackerDto: [],\r\n\ttableId: '',\r\n\tdeleteIncidentTrackerDialogVisibility: false,\r\n\tattachFileIncidentTrackerDialogVisibility: false,\r\n\tremoveFileIncidentTrackerDialogVisibility: false,\r\n\toptionsIncidentTrackerDialogVisibility: false,\r\n\toptionsIncidentTrackerFormVisibility: false,\r\n\tdropdownLabel: '',\r\n\tdropdownName: '',\r\n\tdropdownValue: '',\r\n\tdropdownId: undefined,\r\n\tautocompleteFields: [],\r\n\tcomments: [],\r\n\tnewDropdownField: '',\r\n\tformState: {\r\n\t\tvalues: {\r\n\t\t\tinputFilePath: ''\r\n\t\t},\r\n\t\tisValid: false,\r\n\t\ttouched: {},\r\n\t\terrors: {}\r\n\t}\r\n};\r\n\r\nconst incidentTrackerReducer = (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 RESET_FIELDS: {\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\tdrives: [],\r\n\t\t\t\t\t\t\tdates: []\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_INCIDENT_TRACKER_TRACKER: {\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\tincidents: action.incidents\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_INCIDENT_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tIncidentTrackerDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\ttableId: action.tableId,\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 GET_INCIDENT_TRACKER_TRACKER_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\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.incidentDetails }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_INCIDENT_TRACKER_TRACKER_DROPDOWNS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdropdowns: action.dropdowns\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_DELETE_INCIDENT_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdeleteIncidentTrackerDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\ttableId: action.tableId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_INCIDENT_TRACKER_AUTOCOMPLETE: {\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\tautocompleteFields: action.autocompleteFields\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ATTACH_FILE_INCIDENT_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tattachFileIncidentTrackerDialogVisibility: action.visible\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_REMOVE_FILE_INCIDENT_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tremoveFileIncidentTrackerDialogVisibility: action.visible\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_OPTIONS_INCIDENT_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toptionsIncidentTrackerDialogVisibility: action.visible\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_OPTIONS_INCIDENT_TRACKER_FORM: {\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\toptionsIncidentTrackerFormVisibility: action.visible,\r\n\t\t\t\t\t\t\tdropdownLabel: action.dropdownLabel,\r\n\t\t\t\t\t\t\tdropdownName: action.dropdownName,\r\n\t\t\t\t\t\t\tdropdownValue: action.dropdownValue,\r\n\t\t\t\t\t\t\tdropdownId: action.dropdownId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_COMMENTS: {\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\tcomments: action.comments\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase ADD_DROPDOWN_FIELD: {\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\tnewDropdownField: action.newDropdownField\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 incidentTrackerReducer;\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}ReportKpis/GetSites`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GenerateReportRequest = (siteList, username, userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}ReportKpis/GenerateReport`,\r\n\tdata: { siteList, username, userId }\r\n});\r\n\r\nexport const SyncTrackerRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/LoadTracker`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetTrackerLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}ReportKpis/GetLastUpdate`,\r\n\tparams: {}\r\n});\r\n\r\nexport const LoadOneDriveRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}ReportKpis/ProcessFiles`,\r\n\tparams: {}\r\n});\r\n","import { enqueueSnackbar, DownloadFile } from 'actions';\r\n\r\nimport {\r\n\tGetSitesRequest,\r\n\tGenerateReportRequest,\r\n\tSyncTrackerRequest,\r\n\tGetTrackerLastUpdateRequest,\r\n\tLoadOneDriveRequest\r\n} from '../requests/ReportsRequests';\r\n\r\nexport const GET_SITES = 'GET_SITES';\r\nexport const SET_SELECTED_SITES = 'SET_SELECTED_SITES';\r\nexport const GET_TRACKER_LAST_UPDATE = 'GET_TRACKER_LAST_UPDATE';\r\n\r\nconst onGetSites = (value) => ({\r\n\ttype: GET_SITES,\r\n\tsites: value\r\n});\r\n\r\nconst onSetSelectedSites = (value) => ({\r\n\ttype: SET_SELECTED_SITES,\r\n\tselectedSites: value\r\n});\r\n\r\nconst onGetTrackerLastUpdate = (value) => ({\r\n\ttype: GET_TRACKER_LAST_UPDATE,\r\n\tlastUpdate: 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 GenerateReport = (siteList, username, userId) => async (dispatch) => {\r\n\tawait GenerateReportRequest(siteList, username, 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 SetSelectedSites = (selectedSites) => (dispatch) => {\r\n\tdispatch(onSetSelectedSites(selectedSites));\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\nexport const SyncTracker = () => async (dispatch) => {\r\n\tawait SyncTrackerRequest().then(response => {\r\n\t\tdispatch(GetSites());\r\n\t\tdispatch(GetTrackerLastUpdate());\r\n\t\tdispatch(enqueueSnackbar({ message: 'Tracker synchronized successfully!', 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 LoadOneDrive = () => async (dispatch) => {\r\n\tawait LoadOneDriveRequest().then(response => {\r\n\t\tdispatch(SyncTracker());\r\n\t\tdispatch(enqueueSnackbar({ message: 'OneDrive data loaded successfully!', 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","import {\r\n\tGET_SITES,\r\n\tSET_SELECTED_SITES,\r\n\tGET_TRACKER_LAST_UPDATE\r\n} from '../actions/ReportsActions';\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\tsites: [],\r\n\tselectedSites: [],\r\n\tlastUpdate: null\r\n};\r\n\r\nconst reportsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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 SET_SELECTED_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\tselectedSites: action.selectedSites\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\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\tlastUpdate: action.lastUpdate\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","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetSiteTrackerTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerTable`\r\n});\r\n\r\nexport const GetSiteTrackerUpdateTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerUpdateTable`\r\n});\r\n\r\nexport const GetSiteTrackerLcsCreateTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerCreateLcsTable`\r\n});\r\n\r\nexport const CreateSiteEntryRequest = (siteTrackerCreateDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/CreateSiteTracker`,\r\n\tdata: siteTrackerCreateDto\r\n});\r\n\r\nexport const EditSiteEntryRequest = (SiteTracker) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/EditSiteTracker`,\r\n\tdata: SiteTracker\r\n});\r\n\r\nexport const GetSiteTrackerDropdownsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerDropdowns`\r\n});\r\n\r\nexport const GetSiteTrackerBSHDropdownRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerBSHDropdown`\r\n});\r\n\r\nexport const GetSiteTrackerBSHDropdownWlcsRequest = (lcs) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerBSHDropdownWlcs`,\r\n\tparams: { lcs }\r\n});\r\n\r\nexport const GetSiteTypeDropdownRequest = (lcs) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerSiteTypeDropdown`,\r\n\tparams: { lcs }\r\n});\r\n\r\nexport const GetSiteTrackerSiteNameDropdownRequest = (lcs, siteType) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerSiteNameDropdown`,\r\n\tparams: { lcs, siteType }\r\n});\r\n\r\nexport const GetSiteTrackerDasZoneDropdownRequest = (siteLCS, siteBSH, siteType) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerDasZoneDropdown`,\r\n\tparams: { siteLCS, siteBSH, siteType }\r\n});\r\n\r\nexport const GetSiteTrackerRequest = (id) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTracker`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const GetSiteTrackerToEditRequest = (id) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerToEdit`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const GetCommentsHistoryRequest = (id, commentType) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetCommentsHistory`,\r\n\tparams: { id, commentType }\r\n});\r\n\r\nexport const GetExportTrackerRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteTrackerExport`\r\n});\r\n\r\nexport const ImportSiteTrackerRequest = (siteTrackerFilePath, user) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/ImportSiteTracker`,\r\n\tparams: { siteTrackerFilePath, user }\r\n});\r\n\r\nexport const ExportSiteTrackerTemplateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/ExportSiteTrackerTemplate`\r\n});\r\n\r\nexport const RemoveSiteEntryRequest = (id, user) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/RemoveSiteTrackerEntry`,\r\n\tparams: { id, user }\r\n});\r\n\r\nexport const GetReportEmailRequest = (id, user) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetSiteDReportEmail`,\r\n\tparams: { id, user }\r\n});\r\n\r\nexport const UpdateSiteActivationDatesRequest = (siteIdsToUpdate) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/UpdateSiteActivationDates`,\r\n\tdata: siteIdsToUpdate\r\n});\r\n\r\nexport const CreateNewSiteTrackerEntriesRequest = (lcsToCreate) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/CreateNewSiteTrackerEntries`,\r\n\tdata: lcsToCreate\r\n});\r\n","import { enqueueSnackbar, UploadFile } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetSiteTrackerTableRequest,\r\n\tCreateSiteEntryRequest,\r\n\tEditSiteEntryRequest,\r\n\tGetSiteTrackerDropdownsRequest,\r\n\tGetSiteTrackerBSHDropdownRequest,\r\n\tGetSiteTrackerBSHDropdownWlcsRequest,\r\n\tGetSiteTrackerSiteNameDropdownRequest,\r\n\tGetSiteTrackerRequest,\r\n\tGetSiteTrackerToEditRequest,\r\n\tGetCommentsHistoryRequest,\r\n\tGetExportTrackerRequest,\r\n\tGetSiteTrackerDasZoneDropdownRequest,\r\n\tImportSiteTrackerRequest,\r\n\tExportSiteTrackerTemplateRequest,\r\n\tRemoveSiteEntryRequest,\r\n\tGetReportEmailRequest,\r\n\tGetSiteTypeDropdownRequest,\r\n\tGetSiteTrackerUpdateTableRequest,\r\n\tUpdateSiteActivationDatesRequest,\r\n\tGetSiteTrackerLcsCreateTableRequest,\r\n\tCreateNewSiteTrackerEntriesRequest\r\n} from '../requests/SiteTrackerRequests';\r\n\r\nexport const TOGGLE_SITE_TRACKER_DIALOG = 'TOGGLE_SITE_TRACKER_DIALOG';\r\nexport const GET_SITE_TRACKER_TABLE = 'GET_SITE_TRACKER_TABLE';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_DROPDOWNS = 'GET_DROPDOWNS';\r\nexport const GET_BSH_DROPDOWN = 'GET_BSH_DROPDOWN';\r\nexport const GET_SITE_NAME_DROPDOWN = 'GET_SITE_NAME_DROPDOWN';\r\nexport const GET_SITE_DASZONE_DROPDOWN = 'GET_SITE_DASZONE_DROPDOWN';\r\nexport const GET_SITE_TRACKER = 'GET_SITE_TRACKER';\r\nexport const GET_SITE_TRACKER_TO_EDIT = 'GET_SITE_TRACKER_TO_EDIT';\r\nexport const GET_COMMENTS_HISTORY = 'GET_COMMENTS_HISTORY';\r\nexport const TOGGLE_IMPORT_MODAL_VISIBILITY = 'TOGGLE_IMPORT_MODAL_VISIBILITY';\r\nexport const GET_SITE_TYPE_DROPDOWN = 'GET_SITE_TYPE_DROPDOWN';\r\nexport const GET_SITE_TRACKER_UPDATE_TABLE = 'GET_SITE_TRACKER_UPDATE_TABLE';\r\nexport const GET_SITE_TRACKER_CREATE_LCS_TABLE = 'GET_SITE_TRACKER_CREATE_LCS_TABLE';\r\nexport const TOGGLE_SITE_TRACKER_UPDATE_VISIBILITY = 'TOGGLE_SITE_TRACKER_UPDATE_VISIBILITY';\r\nexport const TOGGLE_SITE_TRACKER_LCS_CREATE_VISIBILITY = 'TOGGLE_SITE_TRACKER_LCS_CREATE_VISIBILITY';\r\n\r\nconst onToggleSiteTrackerDialog = (visible, siteTrackerId) => ({\r\n\ttype: TOGGLE_SITE_TRACKER_DIALOG,\r\n\tvisible,\r\n\tsiteTrackerId\r\n});\r\n\r\nexport const ToggleSiteTrackerDialog = (visible, siteTrackerId) => (dispatch) => {\r\n\tdispatch(onToggleSiteTrackerDialog(visible, siteTrackerId));\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 onGetSiteTrackerTable = (value) => ({\r\n\ttype: GET_SITE_TRACKER_TABLE,\r\n\tsiteTrackerTable: value\r\n});\r\n\r\nexport const GetSiteTrackerTable = () => async (dispatch) => {\r\n\tawait GetSiteTrackerTableRequest().then(response => {\r\n\t\tdispatch(onGetSiteTrackerTable(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 onGetSiteTrackerUpdateTable = (value) => ({\r\n\ttype: GET_SITE_TRACKER_UPDATE_TABLE,\r\n\tsiteTrackerUpdateTable: value\r\n});\r\n\r\nexport const GetSiteTrackerUpdateTable = () => async (dispatch) => {\r\n\tawait GetSiteTrackerUpdateTableRequest().then(response => {\r\n\t\tdispatch(onGetSiteTrackerUpdateTable(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 onToggleSiteTrackerUpdateVisibility = (visible) => ({\r\n\ttype: TOGGLE_SITE_TRACKER_UPDATE_VISIBILITY,\r\n\tsiteTrackerUpdateVisibility: visible\r\n});\r\n\r\nexport const ToggleSiteTrackerUpdateVisibility = (visible) => (dispatch) => {\r\n\tdispatch(onToggleSiteTrackerUpdateVisibility(visible));\r\n};\r\n\r\nconst onGetSiteTrackerLcsCreateTable = (value) => ({\r\n\ttype: GET_SITE_TRACKER_CREATE_LCS_TABLE,\r\n\tsiteTrackerCreateLCSTable: value\r\n});\r\n\r\nexport const GetSiteTrackerLcsCreateTable = () => async (dispatch) => {\r\n\tawait GetSiteTrackerLcsCreateTableRequest().then(response => {\r\n\t\tdispatch(onGetSiteTrackerLcsCreateTable(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 onToggleSiteTrackerLcsCreateVisibility = (visible) => ({\r\n\ttype: TOGGLE_SITE_TRACKER_LCS_CREATE_VISIBILITY,\r\n\tsiteTrackerLCSCreateVisibility: visible\r\n});\r\n\r\nexport const ToggleSiteTrackerLcsCreateVisibility = (visible) => (dispatch) => {\r\n\tdispatch(onToggleSiteTrackerLcsCreateVisibility(visible));\r\n};\r\n\r\nexport const CreateSiteEntry = (siteTrackerCreateDto) => async (dispatch) => {\r\n\tawait CreateSiteEntryRequest(siteTrackerCreateDto).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Entry successfully created.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetSiteTrackerTable());\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 EditSiteEntry = (siteTrackerForm) => async (dispatch) => {\r\n\tawait EditSiteEntryRequest(siteTrackerForm).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Entry successfully edited.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetSiteTrackerTable());\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 onGetDropdowns = (value) => ({\r\n\ttype: GET_DROPDOWNS,\r\n\tdropdowns: value\r\n});\r\n\r\nexport const GetDropdowns = () => async (dispatch) => {\r\n\tawait GetSiteTrackerDropdownsRequest().then(response => {\r\n\t\tdispatch(onGetDropdowns(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst onGetCommentsHistory = (value, valueType) => ({\r\n\ttype: GET_COMMENTS_HISTORY,\r\n\tcommentsHistory: value,\r\n\tcommentType: valueType\r\n});\r\n\r\nexport const GetCommentsHistory = (id, commentType) => async (dispatch) => {\r\n\tawait GetCommentsHistoryRequest(id, commentType).then(response => {\r\n\t\tdispatch(onGetCommentsHistory(response.data, commentType));\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 onGetBshDropdownWlcs = (value) => ({\r\n\ttype: GET_BSH_DROPDOWN,\r\n\tsiteBshDropdown: value\r\n});\r\n\r\nexport const GetBshDropdownWlcs = (lcs) => async (dispatch) => {\r\n\tawait GetSiteTrackerBSHDropdownWlcsRequest(lcs).then(response => {\r\n\t\tdispatch(onGetBshDropdownWlcs(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 onGetBshDropdown = (value) => ({\r\n\ttype: GET_BSH_DROPDOWN,\r\n\tsiteBshDropdown: value\r\n});\r\n\r\nexport const GetBshDropdown = () => async (dispatch) => {\r\n\tawait GetSiteTrackerBSHDropdownRequest().then(response => {\r\n\t\tdispatch(onGetBshDropdown(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 onGetSiteTypeDropdown = (value) => ({\r\n\ttype: GET_SITE_TYPE_DROPDOWN,\r\n\tsiteTypeDropdown: value\r\n});\r\n\r\nexport const GetSiteTypeDropdown = (lcs) => async (dispatch) => {\r\n\tawait GetSiteTypeDropdownRequest(lcs).then(response => {\r\n\t\tdispatch(onGetSiteTypeDropdown(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 onGetSiteNameDropdown = (value) => ({\r\n\ttype: GET_SITE_NAME_DROPDOWN,\r\n\tsiteNameDropdown: value\r\n});\r\n\r\nexport const GetSiteNameDropdown = (siteLCS, siteType) => async (dispatch) => {\r\n\tawait GetSiteTrackerSiteNameDropdownRequest(siteLCS, siteType).then(response => {\r\n\t\tdispatch(onGetSiteNameDropdown(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 onGetSiteDasZoneDropdown = (value) => ({\r\n\ttype: GET_SITE_DASZONE_DROPDOWN,\r\n\tsiteDasZoneDropdown: value\r\n});\r\n\r\nexport const GetSiteDasZoneDropdown = (siteLCS, siteBSH, siteType) => async (dispatch) => {\r\n\tawait GetSiteTrackerDasZoneDropdownRequest(siteLCS, siteBSH, siteType).then(response => {\r\n\t\tdispatch(onGetSiteDasZoneDropdown(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 onGetSiteTracker = (value) => ({\r\n\ttype: GET_SITE_TRACKER,\r\n\tsiteTracker: value\r\n});\r\n\r\nexport const GetSiteTracker = (id) => async (dispatch) => {\r\n\tawait GetSiteTrackerRequest(id).then(response => {\r\n\t\tdispatch(onGetSiteTracker(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 onGetSiteTrackerToEdit = (value) => ({\r\n\ttype: GET_SITE_TRACKER_TO_EDIT,\r\n\tsiteTracker: value\r\n});\r\n\r\nexport const GetSiteTrackerToEdit = (id) => async (dispatch) => {\r\n\tawait GetSiteTrackerToEditRequest(id).then(response => {\r\n\t\tdispatch(onGetSiteTrackerToEdit(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 GetExportTracker = () => async (dispatch) => {\r\n\tawait GetExportTrackerRequest().then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t\tdispatch(enqueueSnackbar({ message: 'Tracker successfully exported.', 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 ImportSiteTracker = (siteTrackerFilePath, user) => async (dispatch) => {\r\n\tawait ImportSiteTrackerRequest(siteTrackerFilePath, user).then(response => {\r\n\t\tdispatch(GetSiteTrackerTable());\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\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 UploadTrackerFiles = (file, user) => async (dispatch) => {\r\n\tawait UploadFile(file, user).then(response => {\r\n\t\tdispatch(ImportSiteTracker(response.data, user));\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\r\nexport const ExportSiteTrackerTemplate = () => async (dispatch) => {\r\n\tawait ExportSiteTrackerTemplateRequest().then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t\tdispatch(ToggleImportModalVisibility(true));\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 RemoveSiteEntry = (id, user) => async (dispatch) => {\r\n\tawait RemoveSiteEntryRequest(id, user).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Entry successfully removed.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetSiteTrackerTable());\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 GetReportEmail = (id, user) => async (dispatch) => {\r\n\tawait GetReportEmailRequest(id, user).then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t\tdispatch(enqueueSnackbar({ message: 'Report successfully downloaded.', 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 UpdateSiteActivationDates = (siteIdsToUpdate) => async (dispatch) => {\r\n\tawait UpdateSiteActivationDatesRequest(siteIdsToUpdate).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'LCS activation dates updated.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetSiteTrackerUpdateTable());\r\n\t\tdispatch(GetSiteTrackerTable());\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 CreateNewSiteTrackerEntries = (lcsToCreate) => async (dispatch) => {\r\n\tawait CreateNewSiteTrackerEntriesRequest(lcsToCreate).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New SiteTracker entries created.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetSiteTrackerLcsCreateTable());\r\n\t\tdispatch(GetSiteTrackerTable());\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_SITE_TRACKER_DIALOG,\r\n\tSET_FORM_STATE,\r\n\tGET_SITE_TRACKER_TABLE,\r\n\tGET_SITE_TRACKER_UPDATE_TABLE,\r\n\tTOGGLE_SITE_TRACKER_UPDATE_VISIBILITY,\r\n\tGET_SITE_TRACKER_CREATE_LCS_TABLE,\r\n\tTOGGLE_SITE_TRACKER_LCS_CREATE_VISIBILITY,\r\n\tGET_DROPDOWNS,\r\n\tGET_SITE_NAME_DROPDOWN,\r\n\tGET_SITE_DASZONE_DROPDOWN,\r\n\tGET_SITE_TRACKER,\r\n\tGET_COMMENTS_HISTORY,\r\n\tGET_SITE_TRACKER_TO_EDIT,\r\n\tTOGGLE_IMPORT_MODAL_VISIBILITY,\r\n\tGET_BSH_DROPDOWN,\r\n\tGET_SITE_TYPE_DROPDOWN\r\n} from '../actions/SiteTrackerActions';\r\n\r\nconst initialState = {\r\n\tsiteTrackerTable: [],\r\n\tsiteTrackerUpdateTable: [],\r\n\tsiteTrackerCreateLCSTable: [],\r\n\tsiteListToUpdate: [],\r\n\tcommentsHistory: {},\r\n\tsiteTrackerDialogVisibility: false,\r\n\tsiteTrackerUpdateVisibility: false,\r\n\tsiteTrackerLCSCreateVisibility: false,\r\n\tselectedSiteId: 0,\r\n\tdropdowns: [],\r\n\tsiteNameDropdown: [],\r\n\tsiteDasZoneDropdown: [],\r\n\tsiteBshDropdown: [],\r\n\tsiteTypeDropdown: [],\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\timportModalVisibility: false\r\n};\r\n\r\nconst siteTrackerReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase TOGGLE_SITE_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tsiteTrackerDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\tselectedSiteId: action.siteTrackerId,\r\n\t\t\t\t\t\t\tformState: initialState.formState,\r\n\t\t\t\t\t\t\tdropdowns: initialState.dropdowns,\r\n\t\t\t\t\t\t\tsiteNameDropdown: initialState.siteNameDropdown,\r\n\t\t\t\t\t\t\tsiteDasZoneDropdown: initialState.siteDasZoneDropdown,\r\n\t\t\t\t\t\t\tsiteBshDropdown: initialState.siteBshDropdown,\r\n\t\t\t\t\t\t\tsiteTypeDropdown: initialState.siteTypeDropdown,\r\n\t\t\t\t\t\t\tcommentsHistory: initialState.commentsHistory\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_SITE_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\tsiteTrackerTable: action.siteTrackerTable\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_TRACKER_UPDATE_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\tsiteTrackerUpdateTable: action.siteTrackerUpdateTable\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_TRACKER_CREATE_LCS_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\tsiteTrackerCreateLCSTable: action.siteTrackerCreateLCSTable\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_SITE_TRACKER_UPDATE_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\tsiteTrackerUpdateVisibility: action.siteTrackerUpdateVisibility,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_SITE_TRACKER_LCS_CREATE_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\tsiteTrackerLCSCreateVisibility: action.siteTrackerLCSCreateVisibility,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_COMMENTS_HISTORY: {\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\tcommentsHistory: {\r\n\t\t\t\t\t\t\t\t...state.commentsHistory,\r\n\t\t\t\t\t\t\t\t[action.commentType]: action.commentsHistory\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DROPDOWNS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdropdowns: action.dropdowns\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_NAME_DROPDOWN: {\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\tsiteNameDropdown: action.siteNameDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_DASZONE_DROPDOWN: {\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\tsiteDasZoneDropdown: action.siteDasZoneDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_TRACKER: {\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.siteTracker }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_TRACKER_TO_EDIT: {\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.siteTracker }\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_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\tcase GET_BSH_DROPDOWN: {\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\tsiteBshDropdown: action.siteBshDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_TYPE_DROPDOWN: {\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\tsiteTypeDropdown: action.siteTypeDropdown\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 siteTrackerReducer;\r\n","import { enqueueSnackbar, DownloadFile } from 'actions';\r\n\r\nimport {\r\n\tGetWeeklyReportTableRequest,\r\n\tGenerateWeeklyReportRequest\r\n} from '../requests/WeeklyReportRequests';\r\n\r\nexport const GET_WEEKLY_REPORT_TABLE = 'GET_WEEKLY_REPORT_TABLE';\r\n\r\nconst onGetWeeklyReportTable = (value) => ({\r\n\ttype: GET_WEEKLY_REPORT_TABLE,\r\n\tweeklyReportTable: value\r\n});\r\n\r\nexport const GetWeeklyReportTable = () => async (dispatch) => {\r\n\tawait GetWeeklyReportTableRequest().then(response => {\r\n\t\tdispatch(onGetWeeklyReportTable(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 GenerateWeeklyReport = () => async (dispatch) => {\r\n\tawait GenerateWeeklyReportRequest().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_WEEKLY_REPORT_TABLE\r\n} from '../actions/WeeklyReportActions';\r\n\r\nconst initialState = {\r\n\tweeklyReportTable: []\r\n};\r\n\r\nconst weeklyReportReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_WEEKLY_REPORT_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\tweeklyReportTable: action.weeklyReportTable\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 weeklyReportReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetStreetScapeTrackerTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeTrackerTable`\r\n});\r\n\r\nexport const CreateStreetScapeEntryRequest = (streetScapeTrackerCreateDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/CreateStreetScapeTracker`,\r\n\tdata: streetScapeTrackerCreateDto\r\n});\r\n\r\nexport const GetCommentsHistoryRequest = (id, commentType) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeCommentsHistory`,\r\n\tparams: { id, commentType }\r\n});\r\n\r\nexport const GetStreetScapeTrackerRequest = (id) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeTracker`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const GetStreetScapeTrackerToEditRequest = (id) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeTrackerToEdit`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const GetExportTrackerRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeTrackerExport`\r\n});\r\n\r\nexport const RemoveStreetScapeEntryRequest = (id, user) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/RemoveStreetScapeEntry`,\r\n\tparams: { id, user }\r\n});\r\n\r\nexport const GetReportEmailRequest = (id, user) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeDReportEmail`,\r\n\tparams: { id, user }\r\n});\r\n\r\nexport const EditStreetScapeEntryRequest = (streetScapeTrackerForm) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteTracker/EditStreetScapeTracker`,\r\n\tdata: streetScapeTrackerForm\r\n});\r\n\r\nexport const GetStreetScapeLocalDropdownRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeLocalDropdown`\r\n});\r\n\r\nexport const GetStreetScapeClusterDropdownRequest = (local) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeClusterDropdown`,\r\n\tparams: { local }\r\n});\r\n\r\nexport const GetStreetScapeSiteNameDropdownRequest = (cluster) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetStreetScapeSiteNameDropdown`,\r\n\tparams: { cluster }\r\n});\r\n\r\nexport const GetActivationStatusDropdownRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetActivationStatusDropdown`\r\n});\r\n\r\nexport const GetD7StatusDropdownRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/GetD7StatusDropdown`\r\n});\r\n","import { enqueueSnackbar, UploadFile } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\n\r\nimport {\r\n\tGetStreetScapeTrackerTableRequest,\r\n\tCreateStreetScapeEntryRequest,\r\n\tEditStreetScapeEntryRequest,\r\n\tGetCommentsHistoryRequest,\r\n\tGetStreetScapeTrackerRequest,\r\n\tGetStreetScapeTrackerToEditRequest,\r\n\tGetExportTrackerRequest,\r\n\tRemoveStreetScapeEntryRequest,\r\n\tGetReportEmailRequest,\r\n\tGetStreetScapeLocalDropdownRequest,\r\n\tGetStreetScapeClusterDropdownRequest,\r\n\tGetStreetScapeSiteNameDropdownRequest,\r\n\tGetActivationStatusDropdownRequest,\r\n\tGetD7StatusDropdownRequest\r\n} from '../requests/StreetScapeTrackerRequests';\r\n\r\nexport const GET_STREETSCAPE_TRACKER_TABLE = 'GET_STREETSCAPE_TRACKER_TABLE';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_STREETSCAPE_TRACKER = 'GET_STREETSCAPE_TRACKER';\r\nexport const GET_COMMENTS_HISTORY = 'GET_COMMENTS_HISTORY';\r\nexport const GET_STREETSCAPE_TRACKER_TO_EDIT = 'GET_STREETSCAPE_TRACKER_TO_EDIT';\r\nexport const TOGGLE_STREETSCAPE_TRACKER_DIALOG = 'TOGGLE_STREETSCAPE_TRACKER_DIALOG';\r\nexport const GET_LOCAL_DROPDOWN = 'GET_LOCAL_DROPDOWN';\r\nexport const GET_CLUSTER_DROPDOWN = 'GET_CLUSTER_DROPDOWN';\r\nexport const GET_SITENAME_DROPDOWN = 'GET_SITENAME_DROPDOWN';\r\nexport const GET_ACTIVATION_STATUS_DROPDOWN = 'GET_ACTIVATION_STATUS_DROPDOWN';\r\nexport const GET_D7_STATUS_DROPDOWN = 'GET_D7_STATUS_DROPDOWN';\r\n\r\nconst onGetStreetScapeTrackerTable = (value) => ({\r\n\ttype: GET_STREETSCAPE_TRACKER_TABLE,\r\n\tstreetScapeTrackerTable: value\r\n});\r\n\r\nexport const GetStreetScapeTrackerTable = () => async (dispatch) => {\r\n\tawait GetStreetScapeTrackerTableRequest().then(response => {\r\n\t\tdispatch(onGetStreetScapeTrackerTable(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 onToggleStreetScapeTrackerDialog = (visible, streetScapeTrackerId) => ({\r\n\ttype: TOGGLE_STREETSCAPE_TRACKER_DIALOG,\r\n\tvisible,\r\n\tstreetScapeTrackerId\r\n});\r\n\r\nexport const ToggleStreetScapeTrackerDialog = (visible, streetScapeTrackerId) => (dispatch) => {\r\n\tdispatch(onToggleStreetScapeTrackerDialog(visible, streetScapeTrackerId));\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\nexport const CreateStreetScapeEntry = (streetScapeTrackerCreateDto) => async (dispatch) => {\r\n\tawait CreateStreetScapeEntryRequest(streetScapeTrackerCreateDto).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Entry successfully created.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetStreetScapeTrackerTable());\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 EditStreetScapeEntry = (streetScapeTrackerForm) => async (dispatch) => {\r\n\tawait EditStreetScapeEntryRequest(streetScapeTrackerForm).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Entry successfully edited.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetStreetScapeTrackerTable());\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 onGetCommentsHistory = (value, valueType) => ({\r\n\ttype: GET_COMMENTS_HISTORY,\r\n\tcommentsHistory: value,\r\n\tcommentType: valueType\r\n});\r\n\r\nexport const GetCommentsHistory = (id, commentType) => async (dispatch) => {\r\n\tawait GetCommentsHistoryRequest(id, commentType).then(response => {\r\n\t\tdispatch(onGetCommentsHistory(response.data, commentType));\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 onGetStreetScapeTracker = (value) => ({\r\n\ttype: GET_STREETSCAPE_TRACKER,\r\n\tstreetScapeTracker: value\r\n});\r\n\r\nexport const GetStreetScapeTracker = (id) => async (dispatch) => {\r\n\tawait GetStreetScapeTrackerRequest(id).then(response => {\r\n\t\tdispatch(onGetStreetScapeTracker(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 onGetStreetScapeTrackerToEdit = (value) => ({\r\n\ttype: GET_STREETSCAPE_TRACKER_TO_EDIT,\r\n\tstreetScapeTracker: value\r\n});\r\n\r\nexport const GetStreetScapeTrackerToEdit = (id) => async (dispatch) => {\r\n\tawait GetStreetScapeTrackerToEditRequest(id).then(response => {\r\n\t\tdispatch(onGetStreetScapeTrackerToEdit(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 GetExportTracker = () => async (dispatch) => {\r\n\tawait GetExportTrackerRequest().then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t\tdispatch(enqueueSnackbar({ message: 'Tracker successfully exported.', 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 RemoveStreetScapeEntry = (id, user) => async (dispatch) => {\r\n\tawait RemoveStreetScapeEntryRequest(id, user).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Entry successfully removed.', options: { variant: 'success' } }));\r\n\t\tdispatch(GetStreetScapeTrackerTable());\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 GetReportEmail = (id, user) => async (dispatch) => {\r\n\tawait GetReportEmailRequest(id, user).then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t\tdispatch(enqueueSnackbar({ message: 'Report successfully downloaded.', 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\nconst onGetLocalDropdown = (value) => ({\r\n\ttype: GET_LOCAL_DROPDOWN,\r\n\tsiteLocalDropdown: value\r\n});\r\n\r\nexport const GetLocalDropdown = () => async (dispatch) => {\r\n\tawait GetStreetScapeLocalDropdownRequest().then(response => {\r\n\t\tdispatch(onGetLocalDropdown(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 onGetClusterDropdown = (value) => ({\r\n\ttype: GET_CLUSTER_DROPDOWN,\r\n\tsiteClusterDropdown: value\r\n});\r\n\r\nexport const GetClusterDropdown = (local) => async (dispatch) => {\r\n\tawait GetStreetScapeClusterDropdownRequest(local).then(response => {\r\n\t\tdispatch(onGetClusterDropdown(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 onGetSiteNameDropdown = (value) => ({\r\n\ttype: GET_SITENAME_DROPDOWN,\r\n\tsiteNameDropdown: value\r\n});\r\n\r\nexport const GetSiteNameDropdown = (cluster) => async (dispatch) => {\r\n\tawait GetStreetScapeSiteNameDropdownRequest(cluster).then(response => {\r\n\t\tdispatch(onGetSiteNameDropdown(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 onGetActivationStatusDropdown = (value) => ({\r\n\ttype: GET_ACTIVATION_STATUS_DROPDOWN,\r\n\tactivationStatusDropdown: value\r\n});\r\n\r\nexport const GetActivationStatusDropdown = () => async (dispatch) => {\r\n\tawait GetActivationStatusDropdownRequest().then(response => {\r\n\t\tdispatch(onGetActivationStatusDropdown(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 onGetD7StatusDropdown = (value) => ({\r\n\ttype: GET_D7_STATUS_DROPDOWN,\r\n\td7StatusDropdown: value\r\n});\r\n\r\nexport const GetD7StatusDropdown = () => async (dispatch) => {\r\n\tawait GetD7StatusDropdownRequest().then(response => {\r\n\t\tdispatch(onGetD7StatusDropdown(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\tTOGGLE_STREETSCAPE_TRACKER_DIALOG,\r\n\tSET_FORM_STATE,\r\n\tGET_STREETSCAPE_TRACKER,\r\n\tGET_COMMENTS_HISTORY,\r\n\tGET_STREETSCAPE_TRACKER_TO_EDIT,\r\n\tGET_STREETSCAPE_TRACKER_TABLE,\r\n\tGET_LOCAL_DROPDOWN,\r\n\tGET_CLUSTER_DROPDOWN,\r\n\tGET_SITENAME_DROPDOWN,\r\n\tGET_ACTIVATION_STATUS_DROPDOWN,\r\n\tGET_D7_STATUS_DROPDOWN\r\n} from '../actions/StreetScapeTrackerActions';\r\n\r\nconst initialState = {\r\n\tstreetScapeTrackerTable: [],\r\n\tselectedStreetScapeId: 0,\r\n\tcommentsHistory: {},\r\n\tstreetScapeDialogVisibility: false,\r\n\tsiteLocalDropdown: [],\r\n\tsiteClusterDropdown: [],\r\n\tsiteNameDropdown: [],\r\n\tactivationStatusDropdown: [],\r\n\td7StatusDropdown: [],\r\n\tformState: {\r\n\t\tvalues: {},\r\n\t\tisValid: false,\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t\tsubmit: false\r\n\t}\r\n};\r\n\r\nconst streetScapeTrackerReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase TOGGLE_STREETSCAPE_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tstreetScapeDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\tselectedStreetScapeId: action.streetScapeTrackerId,\r\n\t\t\t\t\t\t\tformState: initialState.formState,\r\n\t\t\t\t\t\t\tcommentsHistory: initialState.commentsHistory,\r\n\t\t\t\t\t\t\tsiteLocalDropdown: initialState.siteLocalDropdown,\r\n\t\t\t\t\t\t\tsiteClusterDropdown: initialState.siteClusterDropdown,\r\n\t\t\t\t\t\t\tsiteNameDropdown: initialState.siteNameDropdown,\r\n\t\t\t\t\t\t\tactivationStatusDropdown: initialState.activationStatusDropdown,\r\n\t\t\t\t\t\t\td7StatusDropdown: initialState.d7StatusDropdown,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_STREETSCAPE_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\tstreetScapeTrackerTable: action.streetScapeTrackerTable\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_STREETSCAPE_TRACKER: {\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.streetScapeTracker }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_COMMENTS_HISTORY: {\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\tcommentsHistory: {\r\n\t\t\t\t\t\t\t\t...state.commentsHistory,\r\n\t\t\t\t\t\t\t\t[action.commentType]: action.commentsHistory\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_LOCAL_DROPDOWN: {\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\tsiteLocalDropdown: action.siteLocalDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_CLUSTER_DROPDOWN: {\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\tsiteClusterDropdown: action.siteClusterDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITENAME_DROPDOWN: {\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\tsiteNameDropdown: action.siteNameDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_STREETSCAPE_TRACKER_TO_EDIT: {\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.streetScapeTracker }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_ACTIVATION_STATUS_DROPDOWN: {\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\tactivationStatusDropdown: action.activationStatusDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_D7_STATUS_DROPDOWN: {\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\td7StatusDropdown: action.d7StatusDropdown\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 streetScapeTrackerReducer;\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}SSReportKpis/GetSites`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GenerateReportRequest = (siteList, username, userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SSReportKpis/GenerateReport`,\r\n\tdata: { siteList, username, userId }\r\n});\r\n\r\nexport const SyncTrackerRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteTracker/LoadTracker`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetTrackerLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SSReportKpis/GetLastUpdate`,\r\n\tparams: {}\r\n});\r\n\r\nexport const LoadOneDriveRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}ReportKpis/ProcessFiles`,\r\n\tparams: {}\r\n});\r\n","import { enqueueSnackbar, DownloadFile } from 'actions';\r\n\r\nimport {\r\n\tGetSitesRequest,\r\n\tGenerateReportRequest,\r\n\tSyncTrackerRequest,\r\n\tGetTrackerLastUpdateRequest,\r\n\tLoadOneDriveRequest\r\n} from '../requests/SSReportsRequests';\r\n\r\nexport const GET_SITES = 'GET_SITES';\r\nexport const SET_SELECTED_SITES = 'SET_SELECTED_SITES';\r\nexport const GET_TRACKER_LAST_UPDATE = 'GET_TRACKER_LAST_UPDATE';\r\n\r\nconst onGetSites = (value) => ({\r\n\ttype: GET_SITES,\r\n\tsites: value\r\n});\r\n\r\nconst onSetSelectedSites = (value) => ({\r\n\ttype: SET_SELECTED_SITES,\r\n\tselectedSites: value\r\n});\r\n\r\nconst onGetTrackerLastUpdate = (value) => ({\r\n\ttype: GET_TRACKER_LAST_UPDATE,\r\n\tlastUpdate: 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 GenerateReport = (siteList, username, userId) => async (dispatch) => {\r\n\tawait GenerateReportRequest(siteList, username, 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 SetSelectedSites = (selectedSites) => (dispatch) => {\r\n\tdispatch(onSetSelectedSites(selectedSites));\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\nexport const SyncTracker = () => async (dispatch) => {\r\n\tawait SyncTrackerRequest().then(response => {\r\n\t\tdispatch(GetSites());\r\n\t\tdispatch(GetTrackerLastUpdate());\r\n\t\tdispatch(enqueueSnackbar({ message: 'Tracker synchronized successfully!', 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 LoadOneDrive = () => async (dispatch) => {\r\n\tawait LoadOneDriveRequest().then(response => {\r\n\t\tdispatch(SyncTracker());\r\n\t\tdispatch(enqueueSnackbar({ message: 'OneDrive data loaded successfully!', 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","import {\r\n\tGET_SITES,\r\n\tSET_SELECTED_SITES,\r\n\tGET_TRACKER_LAST_UPDATE\r\n} from '../actions/SSReportsActions';\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\tsites: [],\r\n\tselectedSites: [],\r\n\tlastUpdate: null\r\n};\r\n\r\nconst ssReportsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\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 SET_SELECTED_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\tselectedSites: action.selectedSites\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\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\tlastUpdate: action.lastUpdate\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 ssReportsReducer;\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 incidentTrackerReducer from '../views/IncidentTracker/reducers/IncidentTrackerReducer';\r\nimport reportsReducer from '../views/ReportKpis/reducers/ReportsReducer';\r\nimport siteTrackerReducer from '../views/SiteTracker/reducers/SiteTrackerReducer';\r\nimport weeklyReportReducer from '../views/WeeklyReport/reducers/WeeklyReportReducer';\r\nimport streetScapeTrackerReducer from '../views/StreetScapeTracker/reducers/StreetScapeTrackerReducer';\r\nimport ssReportsReducer from '../views/StreetScape Reports/reducers/SSReportsReducer';\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\tincidentTrackerReducer,\r\n\treportsReducer,\r\n\tsiteTrackerReducer,\r\n\tweeklyReportReducer,\r\n\tstreetScapeTrackerReducer,\r\n\tssReportsReducer\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 HomeIcon from '@mui/icons-material/HomeOutlined';\r\nimport SettingsIcon from '@mui/icons-material/SettingsOutlined';\r\nimport DesktopMacIcon from '@mui/icons-material/DesktopMac';\r\nimport ShowChartIcon from '@mui/icons-material/ShowChart';\r\nimport TrackChangesIcon from '@mui/icons-material/TrackChanges';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport DashboardIcon from '@mui/icons-material/DashboardOutlined';\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: 'Projects',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'London Underground',\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Kpis',\r\n\t\t\t\t\t\thref: '/kpis',\r\n\t\t\t\t\t\ticon: ShowChartIcon,\r\n\t\t\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t// projects: ['Operations'],\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: 'Reports',\r\n\t\t\t\t\t\t\t\thref: '/kpis/LU/reports',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t// {\r\n\t\t\t\t\t\t\t// \ttitle: 'Weekly Report',\r\n\t\t\t\t\t\t\t// \thref: '/kpis/LU/weeklyReport'\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: 'Nomination Form',\r\n\t\t\t\t\t// \thref: 'menu/nominationForm',\r\n\t\t\t\t\t// \troles: ['Administrator'],\r\n\t\t\t\t\t// \ticon: PictureAsPdfIcon\r\n\t\t\t\t\t// },\r\n\t\t\t\t\t// {\r\n\t\t\t\t\t// \ttitle: 'Incident Tracker',\r\n\t\t\t\t\t// \thref: '/trackers/IncidentTracker',\r\n\t\t\t\t\t// \troles: ['Administrator'],\r\n\t\t\t\t\t// \ticon: TrackChangesIcon\r\n\t\t\t\t\t// },\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Site Tracker',\r\n\t\t\t\t\t\thref: '/trackers/SiteTracker',\r\n\t\t\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\ticon: BarChartIcon\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Dashboards',\r\n\t\t\t\t\t\thref: '/dashboards',\r\n\t\t\t\t\t\ticon: DashboardIcon,\r\n\t\t\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\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: 'Rollout',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/LU/rollout',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttitle: 'Weekly Report',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/LU/weeklyReportDashboard',\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: 'KPIs Global Hourly',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/LU/kpisGlobalDashboardHourly',\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: 'KPIs Global Daily',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/LU/kpisGlobalDashboardDaily',\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: 'Dashboards',\r\n\t\t\t\t\t\thref: '/dashboards',\r\n\t\t\t\t\t\ticon: DashboardIcon,\r\n\t\t\t\t\t\troles: ['Client'],\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: 'Weekly Report',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/LU/weeklyReportDashboard',\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\ttitle: 'Streetscape',\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Kpis',\r\n\t\t\t\t\t\thref: '/kpis',\r\n\t\t\t\t\t\ticon: ShowChartIcon,\r\n\t\t\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t// projects: ['Operations'],\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: 'Reports',\r\n\t\t\t\t\t\t\t\thref: '/kpis/SS/reports',\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: 'StreetScape Tracker',\r\n\t\t\t\t\t\thref: '/trackers/StreetScapeTracker',\r\n\t\t\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\ticon: BarChartIcon\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Dashboards',\r\n\t\t\t\t\t\thref: '/dashboards',\r\n\t\t\t\t\t\ticon: DashboardIcon,\r\n\t\t\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\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: 'Rollout',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/SS/rollout',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttitle: 'Weekly Report',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/SS/weeklyReportDashboard',\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: 'KPIs Global Hourly',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/SS/kpisGlobalDashboardHourly',\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: 'KPIs Global Daily',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/SS/kpisGlobalDashboardDaily',\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: 'Dashboards',\r\n\t\t\t\t\t\thref: '/dashboards',\r\n\t\t\t\t\t\ticon: DashboardIcon,\r\n\t\t\t\t\t\troles: ['Client'],\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: 'Weekly Report',\r\n\t\t\t\t\t\t\t\thref: '/dashboards/SS/weeklyReportDashboard',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\ttitle: 'Management',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Manage',\r\n\t\t\t\thref: '/management',\r\n\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\ticon: SupervisorAccountIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Operators',\r\n\t\t\t\t\t\thref: '/management/operators',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Users',\r\n\t\t\t\t\t\thref: '/management/users',\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Hangfire',\r\n\t\t\t\thref: `${config.API_URL}hangfire?access_token={token}`,\r\n\t\t\t\ttarget: '_blank',\r\n\t\t\t\troles: ['Administrator'],\r\n\t\t\t\ticon: DesktopMacIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Settings',\r\n\t\t\t\thref: '/management/settings',\r\n\t\t\t\ticon: SettingsIcon\r\n\t\t\t},\r\n\t\t],\r\n\t}\r\n];\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport _ from 'underscore';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Drawer, Divider, Paper, Avatar, Typography, Hidden } from '@mui/material';\r\n\r\nimport FolderIcon from '@mui/icons-material/FolderOutlined';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport getInitials from 'utils/getInitials';\r\nimport { Navigation } from 'components';\r\nimport config from 'configuration/configuration.js';\r\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 { 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","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Avatar } from '@mui/material';\r\n\r\nimport { Label } from 'components';\r\nimport gradients from 'utils/gradients';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tlabel: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\tbackgroundImage: gradients.blue,\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n}));\r\n\r\nconst TodaysMoney = (props) => {\r\n\tconst { className, title, text, icon, label, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{text}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{label && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{label.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{icon}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nTodaysMoney.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\ttext: PropTypes.string,\r\n\ticon: PropTypes.object,\r\n\tlabel: PropTypes.object\r\n};\r\n\r\nexport default TodaysMoney;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport Label from '../../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../../components/DataTable/DataTable.js';\r\nimport { ToggleAddEditUserDialog, ResendConfirmationEmail, DeactivateUser, ToggleDeleteUserDialog } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst UsersDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst _editUser = (userId) => {\r\n\t\tdispatch(ToggleAddEditUserDialog(true, userId));\r\n\t};\r\n\r\n\tconst _deleteUser = (userId) => {\r\n\t\tdispatch(ToggleDeleteUserDialog(true, userId));\r\n\t};\r\n\r\n\tconst _resendConfirmationEmail = (userId) => {\r\n\t\tdispatch(ResendConfirmationEmail(userId));\r\n\t};\r\n\r\n\tconst _deactivateUser = (userId) => {\r\n\t\tdispatch(DeactivateUser(userId, rest.user.role));\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{rowData[5] ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _deactivateUser(rowData[0])}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _resendConfirmationEmail(rowData[0])}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t _editUser(rowData[0])}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t _deleteUser(rowData[0])}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t);\r\n\t};\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'email',\r\n\t\t\t\tlabel: 'Email',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'role',\r\n\t\t\t\tlabel: 'Role',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'operators',\r\n\t\t\t\tlabel: 'Operators',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\tconst values = value.split(',');\r\n\t\t\t\t\t\t\tconst sortedValues = _.sortBy(values, val => val);\r\n\t\t\t\t\t\t\tconst operators = sortedValues.map((operator, index) => (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t{operator}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\treturn operators;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'status',\r\n\t\t\t\tlabel: 'Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value !== null) {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{value\r\n\t\t\t\t\t\t\t\t\t\t? 'Email confirmed'\r\n\t\t\t\t\t\t\t\t\t\t: 'Email not confirmed'}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'online',\r\n\t\t\t\tlabel: 'Online',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value !== null) {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{value\r\n\t\t\t\t\t\t\t\t\t\t? 'Online'\r\n\t\t\t\t\t\t\t\t\t\t: 'Offline'}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\tselectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nUsersDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default UsersDataTable;\r\n","import React from 'react';\r\n\r\nimport MuiDialogTitle from '@mui/material/DialogTitle';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Typography from '@mui/material/Typography';\r\nimport withStyles from '@mui/styles/withStyles';\r\n\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nconst DialogTitle = withStyles(theme => ({\r\n\troot: {\r\n\t\tborderBottom: `1px solid ${theme.palette.divider}`,\r\n\t\tmargin: 0,\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcloseButton: {\r\n\t\tposition: 'absolute',\r\n\t\tright: theme.spacing(1),\r\n\t\ttop: theme.spacing(1),\r\n\t\tcolor: theme.palette.grey[500],\r\n\t},\r\n}))(props => {\r\n\tconst { children, classes, onClose } = props;\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t{onClose ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t) : null}\r\n\t\t\r\n\t);\r\n});\r\n\r\nexport default DialogTitle;\r\n","import withStyles from '@mui/styles/withStyles';\r\nimport MuiDialogContent from '@mui/material/DialogContent';\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n\troot: {\r\n\t\tmargin: 0,\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n}))(MuiDialogContent);\r\n\r\nexport default DialogContent;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog, DialogActions, Typography, Button } from '@mui/material';\r\n\r\nimport DialogTitle from './components/DialogTitle.js';\r\nimport DialogContent from './components/DialogContent.js';\r\n\r\nconst propTypes = {\r\n\tonClose: PropTypes.func,\r\n\tonConfirmClicked: PropTypes.func,\r\n\tcancelLabel: PropTypes.string,\r\n\tconfirmLabel: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\topen: PropTypes.bool,\r\n\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 PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport { DeleteUser } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst DeleteUserDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst openDeleteUserDialogId = useSelector((state) => state.usersReducer.openDeleteUserDialogId);\r\n\tconst title = 'Delete user';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(DeleteUser(openDeleteUserDialogId, rest.user.role));\r\n\t\tdispatch(enqueueSnackbar({ message: 'User deleted', options: { variant: 'info' } }));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t

Are you sure you want to delete this User?

\r\n\t\t\r\n\t);\r\n};\r\n\r\nDeleteUserDialog.propTypes = {\r\n\tauthor: PropTypes.object.isRequired,\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default DeleteUserDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport GroupIcon from '@mui/icons-material/Group';\r\nimport BusinessCenterIcon from '@mui/icons-material/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@mui/icons-material/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport Card from './components/Card/Card.js';\r\nimport UsersDataTable from './components/UsersDataTable/UsersDataTable.js';\r\nimport AddEditUsersDialog from './components/AddEditUserDialog/AddEditUserDialog.js';\r\nimport DeleteUsersDialog from './components/DeleteUserDialog/DeleteUserDialog';\r\n\r\nimport { GetUsers, GetUsersStats, ToggleAddEditUserDialog, ToggleDeleteUserDialog } from '../../actions/UsersActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Users = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst usersStats = useSelector((state) => state.usersReducer.usersStats);\r\n\tconst users = useSelector((state) => state.usersReducer.users);\r\n\tconst openAddEditUserDialog = useSelector((state) => state.usersReducer.openAddEditUserDialog);\r\n\tconst openDeleteUserDialog = useSelector((state) => state.usersReducer.openDeleteUserDialog);\r\n\r\n\tconst _addEditUserClose = () => {\r\n\t\tdispatch(ToggleAddEditUserDialog(false));\r\n\t};\r\n\r\n\tconst _deleteUserClose = () => {\r\n\t\tdispatch(ToggleDeleteUserDialog(false));\r\n\t};\r\n\r\n\tconst _addUser = () => {\r\n\t\tdispatch(ToggleAddEditUserDialog(true));\r\n\t};\r\n\r\n\tconst _renderActions = () => (\r\n\t\t\r\n\t);\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetUsers(user.role));\r\n\t\tdispatch(GetUsersStats());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, [getData]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t} />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t} />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t} />\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddEditUserDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{openDeleteUserDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\r\n\t);\r\n};\r\n\r\nexport default Users;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tGrid,\r\n\tTypography,\r\n} from '@mui/material';\r\n\r\nimport getInitials from 'utils/getInitials';\r\nimport { Label } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\theader: {\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: 10,\r\n\t\t'&:last-child': {\r\n\t\t\tpaddingBottom: 0,\r\n\t\t},\r\n\t},\r\n\tdescription: {\r\n\t\tpadding: theme.spacing(2, 3, 1, 3),\r\n\t},\r\n\ttags: {\r\n\t\tpadding: theme.spacing(0, 3, 1, 3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tdetailsButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\tdeleteButton: {\r\n\t\tcolor: theme.palette.error.main,\r\n\t},\r\n\tdetails: {\r\n\t\tpadding: theme.spacing(1, 3),\r\n\t},\r\n\tavatar: {\r\n\t\twidth: theme.spacing(15),\r\n\t\theight: theme.spacing(15),\r\n\t\tfontSize: theme.spacing(7)\r\n\t},\r\n}));\r\n\r\nconst OperatorCard = (props) => {\r\n\tconst { operator, deleteOperator, navigateDetails, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t{getInitials(operator.name)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclassName={classes.header}\r\n\t\t\t\tdisableTypography\r\n\t\t\t\ttitle={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{operator.name}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t navigateDetails(operator.id)}\r\n\t\t\t\t\t\t\t\tclassName={classes.detailsButton}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tDetails\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t deleteOperator(operator)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tDelete\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nOperatorCard.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n\tdeleteOperator: PropTypes.func,\r\n\tnavigateDetails: PropTypes.func,\r\n};\r\n\r\nexport default OperatorCard;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tGrid,\r\n} from '@mui/material';\r\n\r\nimport OperatorCard from '../OperatorCard/OperatorCard.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: { marginTop: theme.spacing(3) },\r\n\theader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tflexWrap: 'wrap',\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\ttitle: {\r\n\t\tposition: 'relative',\r\n\t\t'&:after': {\r\n\t\t\tposition: 'absolute',\r\n\t\t\tbottom: -8,\r\n\t\t\tleft: 0,\r\n\t\t\tcontent: '\" \"',\r\n\t\t\theight: 3,\r\n\t\t\twidth: 48,\r\n\t\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t},\r\n\t},\r\n\tactions: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tgridList: {\r\n\t\toverflowY: 'scroll',\r\n\t\tmaxHeight: '75vh'\r\n\t}\r\n}));\r\n\r\nconst Projects = (props) => {\r\n\tconst { className, operators, deleteOperator, navigateDetails, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{operators.map((operator) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperators: PropTypes.array,\r\n\tdeleteOperator: PropTypes.func,\r\n\tnavigateDetails: PropTypes.func,\r\n};\r\n\r\nexport default Projects;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState } from '../../../../../../actions/OperatorsActions';\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddOperatorForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddOperatorForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddOperatorForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddOperatorForm from './components/AddOperatorForm/AddOperatorForm.js';\r\nimport { CreateOperator } from '../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddOperatorDialog = (props) => {\r\n\tconst { open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\tconst title = 'Add operator';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(CreateOperator(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddOperatorDialog.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default AddOperatorDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport useRouter from 'utils/useRouter';\r\nimport { Page, Header } from '../../../../components';\r\nimport OperatorsList from './components/OperatorsList/OperatorsList.js';\r\nimport AddOperatorDialog from './components/AddOperatorDialog/AddOperatorDialog.js';\r\n\r\nimport { GetOperators, ToggleAddOperatorDialog, DeleteOperator, NavigateDetails } from '../../actions/OperatorsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Operators = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst { history } = useRouter();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst openAddOperatorDialog = useSelector((state) => state.operatorsReducer.openAddOperatorDialog);\r\n\tconst operators = useSelector((state) => state.operatorsReducer.operators);\r\n\r\n\tconst _addOperatorClose = () => {\r\n\t\tdispatch(ToggleAddOperatorDialog(false));\r\n\t};\r\n\r\n\tconst _deleteOperator = (operator) => {\r\n\t\tdispatch(DeleteOperator(operator));\r\n\t};\r\n\r\n\tconst _addOperator = () => {\r\n\t\tdispatch(ToggleAddOperatorDialog(true));\r\n\t};\r\n\r\n\tconst _renderActions = () => (\r\n\t\t\r\n\t);\r\n\r\n\tconst _navigateDetails = (operatorId) => {\r\n\t\tdispatch(NavigateDetails(operatorId));\r\n\t\thistory.push('/management/operators/details');\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetOperators());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, [getData]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddOperatorDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Operators;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tSwitch,\r\n\tTextField,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { SetFormState, UpdateOperator } from '../../../../../../actions/OperatorsActions';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Details = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\r\n\tconst save = () => {\r\n\t\tdispatch(UpdateOperator(formState.values));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave Changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nDetails.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Details;\r\n","import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardContent,\r\n\tCardActions,\r\n\tAvatar,\r\n\tTypography,\r\n\tButton,\r\n\tcolors\r\n} from '@mui/material';\r\nimport getInitials from 'utils/getInitials';\r\nimport { UpdateImage } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexDirection: 'column',\r\n\t\ttextAlgin: 'center',\r\n\t},\r\n\tname: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\theight: 120,\r\n\t\twidth: 120,\r\n\t},\r\n\tremoveButton: {\r\n\t\twidth: '100%',\r\n\t\tcolor: theme.palette.error.main\r\n\t},\r\n\taddButton: {\r\n\t\twidth: '100%',\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Picture = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst inputFile = useRef(null);\r\n\r\n\tconst _removeImage = () => {\r\n\t\tconst updateOperator = { ...operator };\r\n\t\tupdateOperator.avatar = null;\r\n\t\tdispatch(UpdateImage(updateOperator));\r\n\t};\r\n\r\n\tconst _addImage = () => {\r\n\t\tinputFile.current.click();\r\n\t};\r\n\r\n\tconst _onChangeInput = (event) => {\r\n\t\tif (event.target.files && event.target.files.length > 0) {\r\n\t\t\tconst file = event.target.files[0];\r\n\t\t\tconst reader = new FileReader();\r\n\t\t\treader.addEventListener('load', () => {\r\n\t\t\t\tconst updateOperator = { ...operator };\r\n\t\t\t\tupdateOperator.avatar = reader.result;\r\n\t\t\t\tdispatch(UpdateImage(updateOperator));\r\n\t\t\t}\r\n\t\t\t);\r\n\t\t\treader.readAsDataURL(event.target.files[0]);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{getInitials(operator.name)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{operator.avatar === null ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t { inputFile.current = ref; }} onChange={_onChangeInput} style={{ display: 'none' }} />\r\n\t\t\r\n\t);\r\n};\r\n\r\nPicture.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Picture;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { Picture, Details } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Overview = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nOverview.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Overview;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\n\r\nimport { ToggleAddProjectDialog } from '../../../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst ActionsButton = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\tconst _add = () => {\r\n\t\tdispatch(ToggleAddProjectDialog(true));\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nActionsButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default memo(ActionsButton);\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tDivider\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport ActionsButton from './components/ActionsButton/ActionsButton.js';\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable.js';\r\nimport { DeleteProject } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 10,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst ProjectsDataTable = (props) => {\r\n\tconst { className, data, operatorId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst _deleteProject = (projectId) => {\r\n\t\tdispatch(DeleteProject(projectId, operatorId));\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t _deleteProject(rowData[0])}>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'users',\r\n\t\t\t\tlabel: 'Users',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\tselectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\ttitle=\"All projects\"\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjectsDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\toperatorId: PropTypes.string\r\n};\r\n\r\nexport default ProjectsDataTable;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState } from '../../../../../../../../actions/OperatorsActions';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddProjectForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddProjectForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddProjectForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddProjectForm from './components/AddProjectForm/AddProjectForm.js';\r\nimport { CreateProject } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddProjectDialog = (props) => {\r\n\tconst { operatorId, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\tconst title = 'Add project';\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(CreateProject({ name: formState.values.name, operatorId }));\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddProjectDialog.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\toperatorId: PropTypes.number.isRequired\r\n};\r\n\r\nexport default AddProjectDialog;\r\n","import React from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport ProjectsDataTable from './components/ProjectsDataTable/ProjectsDataTable';\r\n\r\nimport AddProjectDialog from './components/AddProjectDialog/AddProjectDialog';\r\n\r\nimport { ToggleAddProjectDialog } from '../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Projects = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst openAddProjectDialog = useSelector((state) => state.operatorsReducer.openAddProjectDialog);\r\n\r\n\tconst _addProjectClose = () => {\r\n\t\tdispatch(ToggleAddProjectDialog(false));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddProjectDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object\r\n};\r\n\r\nexport default Projects;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst UsersDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\tselectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nUsersDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default UsersDataTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport UsersDataTable from './components/UsersDataTable/UsersDataTable';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Users = (props) => {\r\n\tconst { users, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nUsers.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tusers: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Users;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\nimport { Page, Header } from 'components';\r\nimport { Overview, Projects, Users } from './components';\r\nimport { GetOperator } from '../../actions/OperatorsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\talert: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst OperatorDetails = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst [tab, setTab] = useState('overview');\r\n\r\n\tconst operatorId = useSelector((state) => state.operatorsReducer.detailsOperatorId);\r\n\tconst operator = useSelector((state) => state.operatorsReducer.operator);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchoperator = () => {\r\n\t\t\tdispatch(GetOperator(operatorId));\r\n\t\t};\r\n\r\n\t\tfetchoperator();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, [operatorId]);\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t};\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'overview', label: 'Overview' },\r\n\t\t{ value: 'projects', label: 'Projects' },\r\n\t\t{ value: 'users', label: 'Users' },\r\n\t];\r\n\r\n\tif (!tab) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!tabs.find((t) => t.value === tab)) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!operatorId) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{tabs.map((item) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{tab === 'overview' && }\r\n\t\t\t\t{tab === 'projects' && }\r\n\t\t\t\t{tab === 'users' && }\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default OperatorDetails;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tSwitch,\r\n\tTextField,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nimport { SetFormState, UpdateSettings } from '../../../../../../actions/SettingsActions';\r\n\r\nconst schema = {\r\n\tfirstname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tlastname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\toperatorId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst GeneralForm = (props) => {\r\n\tconst { className, role, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst operators = useSelector((state) => state.settingsReducer.operators);\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t}));\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(UpdateSettings(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave Changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGeneralForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\trole: PropTypes.string\r\n};\r\n\r\nexport default GeneralForm;\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { GeneralForm } from './components';\r\nimport { SetFormState, GetOperators } from '../../../../actions/SettingsActions';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {},\r\n}));\r\n\r\nconst General = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: { ...user }\r\n\t\t}));\r\n\r\n\t\tif (user && user.id) {\r\n\t\t\tdispatch(GetOperators(user.id));\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tif (!user) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGeneral.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default General;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActions,\r\n\tGrid,\r\n\tFormControlLabel,\r\n\tCheckbox,\r\n\tTypography,\r\n\tButton,\r\n\tDivider,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\titem: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Notifications = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tSystem\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tYou will recieve emails in your business email\r\n\t\t\t\t\t\t\t\taddress\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Email alerts\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tlabel=\"Push Notifications\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Text message\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel={(\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPhone calls\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tShort voice phone updating you\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tChat App\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tYou will recieve emails in your business email\r\n\t\t\t\t\t\t\t\taddress\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Email\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Push notifications\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nNotifications.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Notifications;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActions,\r\n\tGrid,\r\n\tButton,\r\n\tDivider,\r\n\tTextField,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { SetFormState, ChangePassword } from '../../../../actions/SettingsActions';\r\n\r\nconst schema = {\r\n\toldpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tnewpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tconfirmnewpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t\tequality: 'newpassword',\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Security = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t}));\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(ChangePassword(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nSecurity.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Security;\r\n","import React, { useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\n\r\nimport { Page, Header } from 'components';\r\nimport {\r\n\tGeneral,\r\n\tSubscription,\r\n\tNotifications,\r\n\tSecurity,\r\n} from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Settings = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst [tab, setTab] = useState('general');\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t};\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'general', label: 'General' },\r\n\t\t// { value: 'subscription', label: 'Subscription' },\r\n\t\t// { value: 'notifications', label: 'Notifications' },\r\n\t\t{ value: 'security', label: 'Security' },\r\n\t];\r\n\r\n\tif (!tab) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!tabs.find((t) => t.value === tab)) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{tabs.map((item) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{tab === 'general' && }\r\n\t\t\t\t{/* {tab === 'subscription' && }\r\n\t\t\t\t{tab === 'notifications' && } */}\r\n\t\t\t\t{tab === 'security' && }\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nSettings.propTypes = {\r\n};\r\n\r\nexport default Settings;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tLink,\r\n\tTypography,\r\n} from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\taction: {\r\n\t\tmarginRight: 0,\r\n\t\tmarginTop: 0,\r\n\t},\r\n\toverview: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\tjustifyContent: 'space-between',\r\n\t\t[theme.breakpoints.down('lg')]: {\r\n\t\t\tflexDirection: 'column-reverse',\r\n\t\t\talignItems: 'flex-start',\r\n\t\t},\r\n\t},\r\n\tproduct: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tproductImage: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\tjustifyContent: 'space-between',\r\n\t\t[theme.breakpoints.down('lg')]: {\r\n\t\t\tflexDirection: 'column',\r\n\t\t\talignItems: 'flex-start',\r\n\t\t},\r\n\t},\r\n\tnotice: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst Subscription = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [subscription, setSubscription] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchSubscription = () => {\r\n\t\t\taxios.get('/api/account/subscription').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetSubscription(response.data.subscription);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchSubscription();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tif (!subscription) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\tUpgrade plan\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclasses={{ action: classes.action }}\r\n\t\t\t\ttitle=\"Manage your subscription\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.currency}\r\n\t\t\t\t\t\t\t\t{subscription.price}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t/mo\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.name}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.proposalsLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tproposals left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.templatesLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\ttemplates\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.invitesLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tinvites left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.adsLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tads left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{subscription.hasAnalytics && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAnalytics dashboard\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{subscription.hasEmailAlerts && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tEmail alerts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tThe refunds don't work once you have the subscription, but\r\n\t\t\t\t\tyou can always\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tCancel your subscription\r\n\t\t\t\t\t\r\n\t\t\t\t\t.\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSubscription.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Subscription;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport _ from 'underscore';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport PrintIcon from '@mui/icons-material/Print';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport AchiveIcon from '@mui/icons-material/ArchiveOutlined';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst OptionsButton = (props) => {\r\n\tconst { exportPdf, fullScreen } = props;\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\tconst _exportPdf = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\texportPdf();\r\n\t};\r\n\r\n\tconst _fullScreen = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\tfullScreen();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{exportPdf && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nOptionsButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\texportPdf: PropTypes.func,\r\n\tfullScreen: PropTypes.func\r\n};\r\n\r\nexport default memo(OptionsButton);\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\nimport { FullScreen, useFullScreenHandle } from 'react-full-screen';\r\nimport { Header, Page, PowerBIDashboard } from 'components';\r\nimport TableauDashboard, { ShowExportPDFDialog } from '../../../../components/TableauDashboard/TableauDashboard.js';\r\nimport OptionsButton from './components/OptionsButton/OptionsButton.js';\r\nimport { DashboardInspect as DashboardInspectAction } from '../../actions/DashboardInspectActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\talert: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst DashboardInspect = (props) => {\r\n\tconst { match, pageTitle, headerHidden, module } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst handle = useFullScreenHandle();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst dashboard = useSelector(state => state.dashboardInspectReducer.dashboard);\r\n\r\n\tconst _getDashboard = () => {\r\n\t\tdispatch(DashboardInspectAction(match.params.id, user.id));\r\n\t};\r\n\r\n\tconst _exportPdf = () => {\r\n\t\tShowExportPDFDialog();\r\n\t};\r\n\r\n\tconst _fullScreen = () => {\r\n\t\thandle.enter();\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\t_getDashboard();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{dashboard.type === 'Tableau' ? (\r\n\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t) : null}\r\n\t\t\t{dashboard.type === 'PowerBI' ? (\r\n\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t) : null}\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{dashboard.type === 'Tableau' ? : null}\r\n\t\t\t\t\t{dashboard.type === 'PowerBI' ? : null}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nDashboardInspect.propTypes = {\r\n\tmatch: PropTypes.object.isRequired,\r\n\tpageTitle: PropTypes.string,\r\n\theaderHidden: PropTypes.bool,\r\n\tmodule: PropTypes.string,\r\n};\r\n\r\nexport default DashboardInspect;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport _ from 'underscore';\r\nimport uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTypography,\r\n\tTooltip,\r\n\tDivider,\r\n\tCardActions,\r\n\tcolors,\r\n\tGrid,\r\n\tButton,\r\n} from '@mui/material';\r\nimport WarningRoundedIcon from '@mui/icons-material/WarningRounded';\r\nimport DatePicker from 'components/DatePicker/DatePicker.js';\r\nimport { SelectField, Checkbox } from 'components';\r\n\r\nimport { GenerateReport, SetSelectedSites } from '../../../actions/ReportsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tvalue: {\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t\talign: 'center'\r\n\t},\r\n\ttype: {\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n\twarning: {\r\n\t\tcolor: colors.orange[500]\r\n\t},\r\n\tgenerate: {\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 reportTypes = [\r\n\t{ value: '1', text: '24 Hours' },\r\n\t{ value: '7', text: '7 Days' },\r\n];\r\n\r\nconst SiteList = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\tconst siteList = useSelector((state) => state.reportsReducer.selectedSites);\r\n\tconst user = useSelector((state) => state.session.user);\r\n\r\n\tconst _generate = () => {\r\n\t\tconst username = `${user.firstname} ${user.lastname}`;\r\n\t\tdispatch(GenerateReport(siteList, username, user.id));\r\n\t};\r\n\r\n\tconst _checkWarning = (site) => {\r\n\t\tif (site.scheduleStatus === 'Complete' && _.isUndefined(site.commissioningDate)) {\r\n\t\t\treturn ;\r\n\t\t}\r\n\t\tif (site.scheduleStatus !== 'Complete' && moment(site.scheduleDate).format('YYYY-MM-DD') < moment().format('YYYY-MM-DD')) {\r\n\t\t\treturn ;\r\n\t\t}\r\n\t\tif (site.scheduleDate\r\n\t\t\t&& site.commissioningDate\r\n\t\t\t&& moment(site.scheduleDate).format('YYYY-MM-DD') !== moment(site.commissioningDate).format('YYYY-MM-DD')) {\r\n\t\t\treturn ;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t};\r\n\r\n\tconst _dateChange = (value, site, type) => {\r\n\t\tconst newSite = _.findWhere(siteList, { siteId: site.siteId, sow: site.sow });\r\n\t\tnewSite[type] = value.format('YYYY-MM-DD');\r\n\t\t// Find item index using _.findIndex (thanks @AJ Richardson for comment)\r\n\t\tconst index = _.findIndex(siteList, { siteId: site.siteId, sow: site.sow });\r\n\r\n\t\t// Replace item at index using native splice\r\n\t\tconst newSiteList = [...siteList];\r\n\t\tnewSiteList.splice(index, 1, newSite);\r\n\t\tdispatch(SetSelectedSites(newSiteList));\r\n\t};\r\n\r\n\tconst _handleChange = (event, site) => {\r\n\t\tconst newSite = _.findWhere(siteList, { siteId: site.siteId, sow: site.sow });\r\n\t\tnewSite.reportType = event.target.value;\r\n\t\tif (event.target.value !== '1') {\r\n\t\t\tnewSite.bis = false;\r\n\t\t}\r\n\t\t// Find item index using _.findIndex (thanks @AJ Richardson for comment)\r\n\t\tconst index = _.findIndex(siteList, { siteId: site.siteId, sow: site.sow });\r\n\r\n\t\t// Replace item at index using native splice\r\n\t\tconst newSiteList = [...siteList];\r\n\t\tnewSiteList.splice(index, 1, newSite);\r\n\t\tdispatch(SetSelectedSites(newSiteList));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{siteList.map((site, i) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t{_checkWarning(site)}\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{site.siteName}\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\tsecondary={(\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{site.siteId}\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\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{site.activationStatus}\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\tsecondary={(\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\tActivation Status\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\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{site.actionStatus}\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\tsecondary={(\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\tAction Status\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\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{site.sow}\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\tsecondary={(\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\tSOW\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 _dateChange(value, site, 'scheduleDate')}\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 _dateChange(value, site, 'commissioningDate')}\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 _handleChange(value, site)}\r\n\t\t\t\t\t\t\t\t\thintText=\"Report Type\"\r\n\t\t\t\t\t\t\t\t\tmenuItems={reportTypes}\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\r\n\t\t\r\n\t);\r\n};\r\n\r\nSiteList.propTypes = {\r\n\tclassName: PropTypes.string\r\n};\r\n\r\nexport default SiteList;\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\nimport BackupIcon from '@mui/icons-material/Backup';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst ActionsButton = (props) => {\r\n\tconst { syncTracker, loadOneDrive } = 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\tconst _loadOneDrive = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\tloadOneDrive();\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\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\tloadOneDrive: PropTypes.func,\r\n};\r\n\r\nexport default memo(ActionsButton);\r\n","import React, { useState, useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport uuid from 'uuid/v1';\r\nimport { Card, CardContent, colors, Grid, TextField, Checkbox, Autocomplete, createFilterOptions } from '@mui/material';\r\nimport { makeStyles } from '@mui/styles';\r\nimport _ from 'underscore';\r\nimport moment from 'moment';\r\nimport { Page, Header, Alert } from 'components';\r\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\r\nimport { SiteList, ActionsButton, Downloads } from './components';\r\nimport { GetSites, SetSelectedSites, SyncTracker, GetTrackerLastUpdate, LoadOneDrive, } from '../../actions/ReportsActions.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\tsitelist: {\r\n\t\tmarginTop: theme.spacing(6),\r\n\t},\r\n}));\r\n\r\nconst LUReports = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst sites = useSelector((state) => state.reportsReducer.sites);\r\n\tconst selectedSites = useSelector((state) => state.reportsReducer.selectedSites);\r\n\tconst lastUpdate = useSelector((state) => state.reportsReducer.lastUpdate);\r\n\r\n\tconst _handleChange = (option) => {\r\n\t\tdispatch(SetSelectedSites(option));\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetSites());\r\n\t\tdispatch(GetTrackerLastUpdate());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, []);\r\n\r\n\tconst _syncTracker = () => {\r\n\t\tdispatch(SyncTracker());\r\n\t};\r\n\r\n\tconst _loadOneDrive = () => {\r\n\t\tdispatch(LoadOneDrive());\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\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.siteName} - ${option.siteDZ}`}`}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\t\t\t// filterOptions={filterOptions}\r\n\t\t\t\t\t\t\t\tonChange={(event, value) => { _handleChange(value); }}\r\n\t\t\t\t\t\t\t\tmultiple\r\n\t\t\t\t\t\t\t\tdisableCloseOnSelect\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{selectedSites.length > 0 ? : null}\r\n\t\t\t{/* */}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LUReports;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport moment from 'moment';\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 { Avatar, Card, Typography, Link } from '@mui/material';\r\nimport DownloadIcon from '@mui/icons-material/Download';\r\n\r\nimport gradients from 'utils/gradients';\r\n\r\nimport { DownloadFile } from 'actions';\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\tcard: {\r\n\t\tcursor: 'pointer',\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tflexGrow: 1,\r\n\t\tdisplay: 'flex',\r\n\t\tpadding: theme.spacing(2),\r\n\t\talignItems: 'center',\r\n\t},\r\n\tdate: {\r\n\t\tmarginLeft: 'auto',\r\n\t\tflexShrink: 0,\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}));\r\n\r\nconst DownloadListItem = (props) => {\r\n\tconst { file, className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst avatars = {\r\n\t\tfinished: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t\trunning: (\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 _downloadFile = (subPath) => {\r\n\t\tdispatch(DownloadFile(subPath));\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{avatars[file.status === 'Finished' || file.status === 'Finished!' || file.status === 'Finish' ? 'finished' : 'running']}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t _downloadFile(file.subPath) : null}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{file.filename}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{file.key}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{file.status}\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{moment(file.addedDate).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\r\nDownloadListItem.propTypes = {\r\n\tfile: PropTypes.object.isRequired,\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default DownloadListItem;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography } from '@mui/material';\r\n\r\nimport { DownloadListItem } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\ttitle: {\r\n\t\tmarginBottom: theme.spacing(3),\r\n\t\tmarginTop: theme.spacing(4),\r\n\t},\r\n\tgroup: {\r\n\t\t'& + &': {\r\n\t\t\tmarginTop: theme.spacing(4),\r\n\t\t},\r\n\t},\r\n\tfile: {\r\n\t\tposition: 'relative',\r\n\t\t'& + &': {\r\n\t\t\tmarginTop: theme.spacing(3),\r\n\t\t\t'&:before': {\r\n\t\t\t\tposition: 'absolute',\r\n\t\t\t\tcontent: '\" \"',\r\n\t\t\t\theight: 20,\r\n\t\t\t\twidth: 1,\r\n\t\t\t\ttop: -20,\r\n\t\t\t\tleft: 20,\r\n\t\t\t\tbackgroundColor: theme.palette.divider,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst DownloadList = (props) => {\r\n\tconst { files, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst todayItems = files.filter(item => moment(item.addedDate).isSame(moment(), 'day'));\r\n\tconst yesterdayItems = files.filter(item => moment(item.addedDate).isSame(moment().subtract(1, 'day'), 'day'));\r\n\tconst olderItems = files.filter(item => moment(item.addedDate).isBefore(moment().subtract(1, 'day'), 'day'));\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{todayItems.length > 0 && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tToday\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{todayItems.map((file) => (\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{yesterdayItems.length > 0 && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tYesterday\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{yesterdayItems.map((file) => (\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{olderItems.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\tOlder\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{olderItems.map((file) => (\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\nDownloadList.propTypes = {\r\n\tfiles: PropTypes.array.isRequired,\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default DownloadList;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport { FetchDownloads } from 'actions';\r\nimport DownloadList from '../../../../Downloads/components/DownloadList';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmarginTop: theme.spacing(4),\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst reportTypes = [\r\n\t{ value: 'hourly24', text: '24 Hours' },\r\n\t{ value: 'hourly48', text: '48 Hours' },\r\n\t{ value: 'daily7', text: '7 Days' },\r\n];\r\n\r\nconst SiteList = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst files = useSelector(state => state.session.downloads);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(FetchDownloads(user.id, 'reportKpis'));\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\r\n\t);\r\n};\r\n\r\nSiteList.propTypes = {\r\n\tclassName: PropTypes.string\r\n};\r\n\r\nexport default SiteList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\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\tinfoButton: {\r\n\t\tcolor: theme.palette.info.main\r\n\t}\r\n}));\r\n\r\nconst WeeklyReportTable = (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: '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: 'dasZone',\r\n\t\t\t\tlabel: 'DAS Zone',\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 => `DAS Zone - ${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: 'activationDate',\r\n\t\t\t\tlabel: 'Activation 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 => `Activation Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : 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: 'activationStatus',\r\n\t\t\t\tlabel: 'Activation 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 => `Activation Status - ${v}`\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\nWeeklyReportTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default WeeklyReportTable;\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect, useCallback, useMemo } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, Grid, Button } from '@mui/material';\r\nimport { Page, Header } from 'components';\r\n\r\nimport WeeklyReportTable from './components/WeeklyReportTable';\r\n\r\nimport { GetWeeklyReportTable, GenerateWeeklyReport } from '../actions/WeeklyReportActions';\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\ttabs: {\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\tpaper: {\r\n\t\tpadding: theme.spacing(1)\r\n\t},\r\n\tgenerate_weekly: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: '#039be5',\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 WeeklyReport = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst weeklyReportTable = useSelector((state) => state.weeklyReportReducer.weeklyReportTable);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetWeeklyReportTable());\r\n\t}, []);\r\n\r\n\tconst _generateWeekly = () => {\r\n\t\tdispatch(GenerateWeeklyReport());\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\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\r\n\t);\r\n};\r\n\r\nexport default WeeklyReport;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch, useSelector } 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 { IconButton, Tooltip } from '@mui/material';\r\nimport EditIcon from '@mui/icons-material/EditOutlined';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport DataTable from '../../../../components/DataTable/DataTable.js';\r\nimport { GetIncidentDetails, GetComments, ToggleIncidentTrackerDialog, ToggleDeleteIncidentTrackerDialog } from '../../actions/IncidentTrackerActions';\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\tinfoButton: {\r\n\t\tcolor: theme.palette.info.main\r\n\t}\r\n}));\r\n\r\nconst IncidentTrackerDatatable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _editIncident = (tableId) => {\r\n\t\tdispatch(GetIncidentDetails(userId, tableId));\r\n\t\tdispatch(GetComments(tableId));\r\n\t\tdispatch(ToggleIncidentTrackerDialog(true, tableId));\r\n\t};\r\n\r\n\tconst _deleteIncident = (tableId) => {\r\n\t\tdispatch(ToggleDeleteIncidentTrackerDialog(true, tableId));\r\n\t};\r\n\r\n\tconst _handleStyle = (value) => {\r\n\t\tif (value === 'OK') {\r\n\t\t\treturn {\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\tbackgroundColor: 'green',\r\n\t\t\t\t\tcolor: 'white',\r\n\t\t\t\t\tfontWeight: 'bold'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t} if (value === 'NOK') {\r\n\t\t\treturn {\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\tbackgroundColor: '#dc143c',\r\n\t\t\t\t\tcolor: 'white',\r\n\t\t\t\t\tfontWeight: 'bold'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t} if (value === 'N/A') {\r\n\t\t\treturn {\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\tbackgroundColor: 'yellow',\r\n\t\t\t\t\tcolor: 'black',\r\n\t\t\t\t\tfontWeight: 'bold'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t};\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 _editIncident(rowData[0])}\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 _deleteIncident(rowData[0])}\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\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: '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: 'jvcoId',\r\n\t\t\t\tlabel: 'JVCO 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: 'date',\r\n\t\t\t\tlabel: '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: '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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'polygon',\r\n\t\t\t\tlabel: 'Polygon',\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: 'area',\r\n\t\t\t\tlabel: '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: 'state',\r\n\t\t\t\tlabel: 'State',\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\t// customBodyRender(cell, type, row) {\r\n\t\t\t\t\t// \tlet color = 'black';\r\n\t\t\t\t\t// \tlet backgroundColor = '';\r\n\t\t\t\t\t// \tif (cell === 'Fixed') {\r\n\t\t\t\t\t// \t\tbackgroundColor = 'green';\r\n\t\t\t\t\t// \t\tcolor = 'white';\r\n\t\t\t\t\t// \t} else if (cell === 'Rejected') {\r\n\t\t\t\t\t// \t\tbackgroundColor = 'red';\r\n\t\t\t\t\t// \t\tcolor = 'white';\r\n\t\t\t\t\t// \t}\r\n\t\t\t\t\t// \treturn (\r\n\t\t\t\t\t// \t\t
\r\n\t\t\t\t\t// \t\t\t{cell}\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\tsetCellProps: (value) => (\r\n\t\t\t\t\t\t_handleStyle(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\tname: 'tech',\r\n\t\t\t\tlabel: '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: 'cfnOwner',\r\n\t\t\t\tlabel: 'Cfn 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: '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\nIncidentTrackerDatatable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default IncidentTrackerDatatable;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\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, CardActions, CardContent, CardHeader, Grid, Divider,\r\n\tcolors, List, ListItem, ListItemText, Typography, IconButton,\r\n\tInput, Paper, Tooltip\r\n} from '@mui/material';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport { AddComment } from '../../../../../actions/IncidentTrackerActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tgenerate: {\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\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}));\r\n\r\nconst IncidentTrackerComments = (props) => {\r\n\tconst { className, tableId, comments, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst [commentValue, setCommentValue] = useState('');\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _handleCommentInputChange = (event) => {\r\n\t\tevent.persist();\r\n\t\tlet comment = event.target.value;\r\n\t\tcomment = comment.trim();\r\n\t\tif (comment.length >= 0) {\r\n\t\t\tsetCommentValue(event.target.value);\r\n\t\t}\r\n\t};\r\n\r\n\tconst _postComment = () => {\r\n\t\tdispatch(AddComment(tableId, userId, commentValue));\r\n\t\tsetCommentValue('');\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{comments && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{comments.length > 0 ? comments.map(comment => (\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{`${comment.userName} at ${moment(comment.creationTimestamp).format('DD-MM-YYYY HH:mm:ss').toString()}`}\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)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsecondary={(\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{comment.comment}\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)}\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\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNo comments added\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)}\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\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t 0 ? 'primary' : 'default'}\r\n\t\t\t\t\t\tdisabled={!commentValue.length > 0}\r\n\t\t\t\t\t\tonClick={_postComment}\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\nIncidentTrackerComments.propTypes = {\r\n\tclassName: PropTypes.object,\r\n\ttableId: PropTypes.number,\r\n\tcomments: PropTypes.array\r\n};\r\n\r\nexport default IncidentTrackerComments;\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport moment from 'moment';\r\nimport { Button, TextField, Card, Grid, CardHeader, CardContent } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport { SelectField } from 'components';\r\nimport DatePicker from 'components/DatePicker/DatePicker';\r\nimport {\r\n\tSetFormState,\r\n\tGetAutocompleteFields,\r\n\tToggleAttachFileIncidentTrackerDialog,\r\n\tDownloadAttachment,\r\n\tToggleRemoveFileIncidentTrackerDialog\r\n} from '../../../../actions/IncidentTrackerActions';\r\nimport IncidentTrackerComments from './components/IncidentTrackerComments';\r\n\r\nconst schema = {\r\n\tsiteId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' }\r\n\t},\r\n\tjvcoId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' }\r\n\t},\r\n\tdate: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' }\r\n\t},\r\n\tstatus: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' }\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1)\r\n\t\t}\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%'\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t\tmarginBottom: theme.spacing(1)\r\n\t}\r\n}));\r\n\r\nconst IncidentTrackerDialogForm = props => {\r\n\tconst { className, tableId, ...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.incidentTrackerReducer.formState);\r\n\tconst dropdowns = useSelector(state => state.incidentTrackerReducer.dropdowns);\r\n\tconst autocompleteFields = useSelector(\r\n\t\tstate => state.incidentTrackerReducer.autocompleteFields\r\n\t);\r\n\tconst comments = useSelector(state => state.incidentTrackerReducer.comments);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst _hasError = field => !!(formState.touched[field] && formState.errors[field]);\r\n\tconst [statusClosedDate, setStatusClosedDate] = React.useState('');\r\n\r\n\tconst _handleChange = event => {\r\n\t\tif (event.target.name === 'siteId') {\r\n\t\t\tdispatch(GetAutocompleteFields(event.target.value));\r\n\t\t}\r\n\r\n\t\tif (event.target.name === 'status') {\r\n\t\t\tif (event.target.value === '8') {\r\n\t\t\t\tsetStatusClosedDate('');\r\n\t\t\t} else if (event.target.value === '9') {\r\n\t\t\t\tsetStatusClosedDate(moment().format('YYYY-MM-DD HH:mm:ss'));\r\n\t\t\t}\r\n\t\t}\r\n\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 _handleChangeLevels = event => {\r\n\t\tif (event.target.name === 'levelOne') {\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsTwo = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelOneId === event.target.value)\r\n\t\t\t\t.map(({ levelTwoId, levelTwoName }) => ({\r\n\t\t\t\t\tvalue: levelTwoId,\r\n\t\t\t\t\ttext: levelTwoName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsTwo = [...new Map(levelsTwo.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tlevelTwo: '',\r\n\t\t\t\t\tlevelThree: '',\r\n\t\t\t\t\tlevelsTwo,\r\n\t\t\t\t\tlevelsThree: [],\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'levelTwo') {\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsThree = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelTwoId === event.target.value)\r\n\t\t\t\t.map(({ levelThreeId, levelThreeName }) => ({\r\n\t\t\t\t\tvalue: levelThreeId,\r\n\t\t\t\t\ttext: levelThreeName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsThree = [...new Map(levelsThree.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tlevelThree: '',\r\n\t\t\t\t\tlevelsThree,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'levelThree') {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleDateChange = (value, name) => {\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\tconst _onAddAttachmentClick = () => {\r\n\t\tdispatch(ToggleAttachFileIncidentTrackerDialog(true));\r\n\t};\r\n\r\n\tconst _onDownloadAttachmentClick = () => {\r\n\t\tdispatch(DownloadAttachment(userId, formState.values.id));\r\n\t};\r\n\r\n\tconst _onRemoveAttachmentClick = () => {\r\n\t\tdispatch(ToggleRemoveFileIncidentTrackerDialog(true));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tconst newTouched = {};\r\n\r\n\t\tif (formState.values.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\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\r\n\t\tif (\r\n\t\t\tformState.values.closedDate !== undefined\r\n\t\t\t&& formState.values.closedDate !== null\r\n\t\t\t&& formState.values.globalStatus === 'Closed'\r\n\t\t) {\r\n\t\t\tsetStatusClosedDate(\r\n\t\t\t\tmoment(formState.values.closedDate).format(\r\n\t\t\t\t\t'DD/MM/YYYY HH:mm:ss'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\t}, [formState.values]);\r\n\r\n\tuseMemo(() => {\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\tjvcoId: autocompleteFields.jvcoId,\r\n\t\t\t\tpolygon: autocompleteFields.polygon\r\n\t\t\t}\r\n\t\t\t// touched: {\r\n\t\t\t// \t...formState.touched,\r\n\t\t\t// \tjvcoId: true,\r\n\t\t\t// },\r\n\t\t});\r\n\t}, [autocompleteFields]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (dropdowns && dropdowns.levelsRelation) {\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsTwo = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelOneId === formState.values.levelOne)\r\n\t\t\t\t.map(({ levelTwoId, levelTwoName }) => ({\r\n\t\t\t\t\tvalue: levelTwoId,\r\n\t\t\t\t\ttext: levelTwoName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsTwo = [...new Map(levelsTwo.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsThree = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelTwoId === formState.values.levelTwo)\r\n\t\t\t\t.map(({ levelThreeId, levelThreeName }) => ({\r\n\t\t\t\t\tvalue: levelThreeId,\r\n\t\t\t\t\ttext: levelThreeName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsThree = [...new Map(levelsThree.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\tlevelsTwo,\r\n\t\t\t\t\tlevelsThree\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}, [dropdowns]);\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\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\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\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\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\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{/* New row */}\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\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\t\t _handleDateChange(value, 'date')}\r\n\t\t\t\t\t\t\t\t\t\tminutesStep={1}\r\n\t\t\t\t\t\t\t\t\t\terror={\r\n\t\t\t\t\t\t\t\t\t\t\t_hasError('date')\r\n\t\t\t\t\t\t\t\t\t\t\t\t? formState.errors.date[0]\r\n\t\t\t\t\t\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\thelperText={\r\n\t\t\t\t\t\t\t\t\t\t\t_hasError('date')\r\n\t\t\t\t\t\t\t\t\t\t\t\t? formState.errors.date[0]\r\n\t\t\t\t\t\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\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\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\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\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\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\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\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\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\t\t _handleDateChange(\r\n\t\t\t\t\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\t\t\t\t\t'executionDate'\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\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{/* New row */}\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{/* New row */}\r\n\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\t\r\n\t\t\t\t\t\t\t\tDownload File\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\nIncidentTrackerDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttableId: PropTypes.string\r\n};\r\n\r\nexport default IncidentTrackerDialogForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport IncidentTrackerDialogForm from './components/IncidentTrackerDialogForm';\r\nimport {\r\n\tSetFormState, ResetFields, GetIncidentDetails, GetIncidentDropdowns,\r\n\tEditIncidentDetails, CreateIncident,\r\n\tToggleIncidentTrackerDialog\r\n} from '../../../actions/IncidentTrackerActions';\r\n\r\nconst IncidentTrackerDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst tableId = useSelector((state) => state.incidentTrackerReducer.tableId);\r\n\tconst selectedDates = useSelector((state) => state.incidentTrackerReducer.selectedDates);\r\n\tconst selectedFailures = useSelector((state) => state.incidentTrackerReducer.selectedFailures);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.incidentTrackerReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst title = tableId ? 'Save incident' : 'Create incident';\r\n\tconst confirmLabel = tableId ? 'Save' : 'Create';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tsetFormState({ ...formState, values: { ...formState.values, submit: true } });\r\n\r\n\t\tif (formState.isValid) {\r\n\t\t\tconst object = { ...formState.values, userId, selectedDates, selectedFailures };\r\n\t\t\tif (tableId) {\r\n\t\t\t\tdispatch(EditIncidentDetails(object));\r\n\t\t\t\tdispatch(ToggleIncidentTrackerDialog(false));\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'Incident details saved', options: { variant: 'info' } }));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(CreateIncident(object));\r\n\t\t\t\tdispatch(ToggleIncidentTrackerDialog(false));\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'Incident created', options: { variant: 'info' } }));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetIncidentDropdowns());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t\tif (tableId) {\r\n\t\t\tdispatch(GetIncidentDetails(userId, tableId));\r\n\t\t\tdispatch(ResetFields());\r\n\t\t}\r\n\t}, [tableId]);\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\nIncidentTrackerDialog.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 IncidentTrackerDialog;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { InputBase } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport {\r\n\tSetFormState, DeleteIncident, ToggleDeleteIncidentTrackerDialog, GetIncidents\r\n} from '../../../actions/IncidentTrackerActions';\r\n\r\nconst IncidentTrackerDeleteDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst tableId = useSelector((state) => state.incidentTrackerReducer.tableId);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(DeleteIncident(userId, tableId));\r\n\t\tdispatch(ToggleDeleteIncidentTrackerDialog(false));\r\n\t\tdispatch(GetIncidents(userId, role));\r\n\t\tdispatch(enqueueSnackbar({ message: 'Incident deleted', options: { variant: 'info' } }));\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\nIncidentTrackerDeleteDialog.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 IncidentTrackerDeleteDialog;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, Button, Grid } from '@mui/material';\r\nimport { FilePicker } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport { SetFormState, UploadAttachment, ToggleAttachFileIncidentTrackerDialog } from '../../../../../actions/IncidentTrackerActions';\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 IncidentTrackerAddFileDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...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.incidentTrackerReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _onChangeInput = (event) => {\r\n\t\tif (event.target.files[0].type === 'image/jpeg' || event.target.files[0].type === 'image/png'\r\n\t\t\t|| event.target.files[0].type === 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\r\n\t\t\t|| event.target.files[0].type === 'application/pdf') {\r\n\t\t\tif (event.target.files && event.target.files.length > 0) {\r\n\t\t\t\tconst file = event.target.files[0];\r\n\t\t\t\tsetFormState({\r\n\t\t\t\t\t...formState,\r\n\t\t\t\t\tvalues: {\r\n\t\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t\tinputFilePath: file\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\tdispatch(enqueueSnackbar({ message: 'File type not supported', options: { variant: 'warning' } }));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _addAttachmentFile = (event) => {\r\n\t\tif (formState.values.inputFilePath === '' || formState.values.inputFilePath === undefined) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'No file selected', options: { variant: 'Info' } }));\r\n\t\t} else if (formState.values.inputFilePath.size > 50000000) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'File size cannot be superior to 50MB', options: { variant: 'warning' } }));\r\n\t\t} else {\r\n\t\t\tdispatch(UploadAttachment(userId, formState.values.id, formState.values.inputFilePath));\r\n\t\t\tdispatch(ToggleAttachFileIncidentTrackerDialog(false));\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'File uploaded', options: { variant: 'info' } }));\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\thasAttachment: true\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{/* New row */}\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\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\tUpload\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nIncidentTrackerAddFileDialog.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 IncidentTrackerAddFileDialog;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { InputBase } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport { SetFormState, RemoveAttachment, ToggleRemoveFileIncidentTrackerDialog } from '../../../../../actions/IncidentTrackerActions';\r\n\r\nconst IncidentTrackerDeleteFileDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst tableId = useSelector((state) => state.incidentTrackerReducer.tableId);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.incidentTrackerReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(RemoveAttachment(userId, tableId));\r\n\t\tdispatch(ToggleRemoveFileIncidentTrackerDialog(false));\r\n\t\tdispatch(enqueueSnackbar({ message: 'Attachment deleted', options: { variant: 'info' } }));\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\thasAttachment: false\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\nIncidentTrackerDeleteFileDialog.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 IncidentTrackerDeleteFileDialog;\r\n","import React, { useState, useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Accordion from '@mui/material/Accordion';\r\nimport { Button, TextField, Card, Grid, CardHeader, CardContent, Typography, Box } from '@mui/material';\r\nimport { SelectField } from 'components';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { SetFormState, ToggleOptionsIncidentTrackerForm, AddDropdownField, RemoveDropdownField } from '../../../../../actions/IncidentTrackerActions';\r\n\r\nconst IncidentTrackerOptionsForm = (props) => {\r\n\tconst { open, dropdownLabel, dropdownName, dropdownValue, dropdownId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst tableId = useSelector((state) => state.incidentTrackerReducer.tableId);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector(state => state.incidentTrackerReducer.formState);\r\n\tconst dropdowns = useSelector(state => state.incidentTrackerReducer.dropdowns);\r\n\r\n\tconst [dropdownValueAdded, setdropdownValueAdded] = useState('');\r\n\r\n\tconst _handleChange = (event) => {\r\n\t\tsetdropdownValueAdded(event.target.value);\r\n\t};\r\n\r\n\tconst _handleClose = () => {\r\n\t\tdispatch(ToggleOptionsIncidentTrackerForm(false));\r\n\t};\r\n\r\n\tconst relations = { levelOneId: formState.values.levelOne, levelTwoId: formState.values.levelTwo, levelThreeId: formState.values.levelThree };\r\n\r\n\tconst _handleAdd = () => {\r\n\t\tdispatch(AddDropdownField(userId, dropdownName, dropdownValueAdded, relations));\r\n\t\tdispatch(ToggleOptionsIncidentTrackerForm(false));\r\n\t};\r\n\r\n\tconst _handleRemove = () => {\r\n\t\tdispatch(RemoveDropdownField(userId, dropdownName, dropdownValue, dropdownId, relations));\r\n\t\tdispatch(ToggleOptionsIncidentTrackerForm(false));\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[dropdownName]: undefined\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tconst [expanded, setExpanded] = useState(false);\r\n\r\n\tconsole.log(dropdownId);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{dropdownLabel}\r\n\t\t\t\t\r\n\t\t\t\t\t :not(style)': { m: 1, width: '25ch' },\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tnoValidate\r\n\t\t\t\t\t\tautoComplete=\"off\"\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\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\nIncidentTrackerOptionsForm.propTypes = {\r\n\topen: PropTypes.bool,\r\n\tdropdownLabel: PropTypes.string.isRequired,\r\n\tdropdownName: PropTypes.string.isRequired,\r\n\tdropdownValue: PropTypes.string,\r\n\tdropdownId: PropTypes.string\r\n};\r\n\r\nexport default IncidentTrackerOptionsForm;\r\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Accordion from '@mui/material/Accordion';\r\nimport { Button, TextField, Card, Grid, CardHeader, CardContent, IconButton, Tooltip } from '@mui/material';\r\nimport { SelectField } from 'components';\r\nimport AccordionDetails from '@mui/material/AccordionDetails';\r\nimport AccordionSummary from '@mui/material/AccordionSummary';\r\nimport Typography from '@mui/material/Typography';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport { SetFormState, GetIncidentDropdowns, ToggleOptionsIncidentTrackerForm, RemoveDropdownField } from '../../../actions/IncidentTrackerActions';\r\nimport IncidentTrackerOptionsForm from './components/components/IncidentTrackerOptionsForm';\r\n\r\nconst IncidentTrackerOptionsDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst tableId = useSelector((state) => state.incidentTrackerReducer.tableId);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector(state => state.incidentTrackerReducer.formState);\r\n\tconst dropdowns = useSelector(state => state.incidentTrackerReducer.dropdowns);\r\n\tconst optionsIncidentTrackerFormVisibility = useSelector(state => state.incidentTrackerReducer.optionsIncidentTrackerFormVisibility);\r\n\tconst dropdownLabel = useSelector(state => state.incidentTrackerReducer.dropdownLabel);\r\n\tconst dropdownName = useSelector(state => state.incidentTrackerReducer.dropdownName);\r\n\tconst dropdownValue = useSelector(state => state.incidentTrackerReducer.dropdownValue);\r\n\tconst dropdownId = useSelector(state => state.incidentTrackerReducer.dropdownId);\r\n\r\n\tconst newDropdownField = useSelector(state => state.incidentTrackerReducer.newDropdownField);\r\n\r\n\tconst [expanded, setExpanded] = useState(false);\r\n\r\n\tconst handleChange = (panel) => (event, isExpanded) => {\r\n\t\tsetExpanded(isExpanded ? panel : false);\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetIncidentDropdowns());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, []);\r\n\r\n\tconst _handleChangeDropDown = 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 _handleChangeLevels = event => {\r\n\t\tif (event.target.name === 'levelOne') {\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsTwo = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelOneId === event.target.value)\r\n\t\t\t\t.map(({ levelTwoId, levelTwoName }) => ({\r\n\t\t\t\t\tvalue: levelTwoId,\r\n\t\t\t\t\ttext: levelTwoName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsTwo = [...new Map(levelsTwo.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tlevelTwo: undefined,\r\n\t\t\t\t\tlevelThree: undefined,\r\n\t\t\t\t\tlevelsTwo,\r\n\t\t\t\t\tlevelsThree: [],\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'levelTwo') {\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsThree = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelTwoId === event.target.value)\r\n\t\t\t\t.map(({ levelThreeId, levelThreeName }) => ({\r\n\t\t\t\t\tvalue: levelThreeId,\r\n\t\t\t\t\ttext: levelThreeName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsThree = [...new Map(levelsThree.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tlevelThree: undefined,\r\n\t\t\t\t\tlevelsThree,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'levelThree') {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst _addField = (event, label, name) => {\r\n\t\tdispatch(ToggleOptionsIncidentTrackerForm(true, label, name));\r\n\t};\r\n\r\n\tuseMemo(() => {\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[newDropdownField.name]: newDropdownField.id\r\n\t\t\t}\r\n\t\t});\r\n\t}, [newDropdownField]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (dropdowns && dropdowns.levelsRelation) {\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsTwo = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelOneId === formState.values.levelOne)\r\n\t\t\t\t.map(({ levelTwoId, levelTwoName }) => ({\r\n\t\t\t\t\tvalue: levelTwoId,\r\n\t\t\t\t\ttext: levelTwoName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsTwo = [...new Map(levelsTwo.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\t// Filtrar\r\n\t\t\tlet levelsThree = dropdowns.levelsRelation\r\n\t\t\t\t.filter(x => x.levelTwoId === formState.values.levelTwo)\r\n\t\t\t\t.map(({ levelThreeId, levelThreeName }) => ({\r\n\t\t\t\t\tvalue: levelThreeId,\r\n\t\t\t\t\ttext: levelThreeName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tlevelsThree = [...new Map(levelsThree.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\tlevelsTwo,\r\n\t\t\t\t\tlevelsThree\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}, [dropdowns]);\r\n\r\n\tconst _deleteField = (event, label, name, value, id) => {\r\n\t\tdispatch(ToggleOptionsIncidentTrackerForm(true, label, name, value, id));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{optionsIncidentTrackerFormVisibility && (\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\taria-controls=\"panel2bh-content\"\r\n\t\t\t\t\t\tid=\"panel2bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit Status\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\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 _addField(e, 'Status', 'status')}\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\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Status',\r\n\t\t\t\t\t\t\t\t\t\t\t'status',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.status.find(x => x.value === formState.values.status).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.status\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\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\taria-controls=\"panel4bh-content\"\r\n\t\t\t\t\t\tid=\"panel4bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit Solution Type\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\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 _addField(e, 'Solution Type', 'solutionType')}\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\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Solution Type',\r\n\t\t\t\t\t\t\t\t\t\t\t'solutionType',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.solutionType.find(x => x.value === formState.values.solutionType).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.solutionType\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\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\taria-controls=\"panel5bh-content\"\r\n\t\t\t\t\t\tid=\"panel5bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit Levels\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\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 _addField(e, 'Level One', 'levelOne')}\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\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Level One',\r\n\t\t\t\t\t\t\t\t\t\t\t'levelOne',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.levelOne.find(x => x.value === formState.values.levelOne).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.levelOne\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\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\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 _addField(e, 'Level Two', 'levelTwo')}\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\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Level Two',\r\n\t\t\t\t\t\t\t\t\t\t\t'levelTwo',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.levelTwo.find(x => x.value === formState.values.levelTwo).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.levelTwo\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\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\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 _addField(e, 'Level Three', 'levelThree')}\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\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Level Three',\r\n\t\t\t\t\t\t\t\t\t\t\t'levelThree',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.levelThree.find(x => x.value === formState.values.levelThree).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.levelThree\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\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\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\nIncidentTrackerOptionsDialog.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 IncidentTrackerOptionsDialog;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button, Card, CardContent, Switch } from '@mui/material';\r\nimport { Page, Header } from 'components';\r\nimport SpeedDial from '@mui/material/SpeedDial';\r\nimport SpeedDialIcon from '@mui/material/SpeedDialIcon';\r\nimport SpeedDialAction from '@mui/material/SpeedDialAction';\r\nimport AddBoxIcon from '@mui/icons-material/AddBox';\r\nimport FileOpenIcon from '@mui/icons-material/FileOpen';\r\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts';\r\nimport IncidentTrackerDatatable from './components/IncidentTrackerDatatable';\r\nimport IncidentTrackerDialog from './components/IncidentTrackerDialog/IncidentTrackerDialog';\r\nimport IncidentTrackerDeleteDialog from './components/IncidentTrackerDialog/IncidentTrackerDeleteDialog';\r\nimport IncidentTrackerAddFileDialog from './components/IncidentTrackerDialog/components/components/IncidentTrackerAddFileDialog';\r\nimport IncidentTrackerDeleteFileDialog from './components/IncidentTrackerDialog/components/components/IncidentTrackerDeleteFileDialog';\r\nimport IncidentTrackerOptionsDialog from './components/IncidentTrackerDialog/IncidentTrackerOptionsDialog';\r\n\r\nimport {\r\n\tSetFormState, GetIncidents, ToggleIncidentTrackerDialog,\r\n\tToggleDeleteIncidentTrackerDialog, ExportIncidents,\r\n\tToggleAttachFileIncidentTrackerDialog, ToggleRemoveFileIncidentTrackerDialog,\r\n\tToggleOptionsIncidentTrackerDialog\r\n} from '../actions/IncidentTrackerActions';\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(1),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst IncidentTracker = () => {\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.incidentTrackerReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst incidents = useSelector((state) => state.incidentTrackerReducer.incidents);\r\n\tconst incidentTrackerDialogVisibility = useSelector((state) => state.incidentTrackerReducer.IncidentTrackerDialogVisibility);\r\n\tconst deleteIncidentTrackerDialogVisibility = useSelector((state) => state.incidentTrackerReducer.deleteIncidentTrackerDialogVisibility);\r\n\tconst attachFileIncidentTrackerDialogVisibility = useSelector((state) => state.incidentTrackerReducer.attachFileIncidentTrackerDialogVisibility);\r\n\tconst removeFileIncidentTrackerDialogVisibility = useSelector((state) => state.incidentTrackerReducer.removeFileIncidentTrackerDialogVisibility);\r\n\tconst optionsIncidentTrackerDialogVisibility = useSelector((state) => state.incidentTrackerReducer.optionsIncidentTrackerDialogVisibility);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (incidentTrackerDialogVisibility === false && deleteIncidentTrackerDialogVisibility === false) {\r\n\t\t\tdispatch(GetIncidents(userId, role));\r\n\t\t}\r\n\t}, [incidentTrackerDialogVisibility, deleteIncidentTrackerDialogVisibility]);\r\n\r\n\tconst _incidentTrackerDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleIncidentTrackerDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _incidentTrackerDeleteDialogClose = () => {\r\n\t\tdispatch(ToggleDeleteIncidentTrackerDialog(false));\r\n\t};\r\n\r\n\tconst _attachFileIncidentTrackerDialogClose = () => {\r\n\t\tdispatch(ToggleAttachFileIncidentTrackerDialog(false));\r\n\t};\r\n\r\n\tconst _removeFileIncidentTrackerDialogClose = () => {\r\n\t\tdispatch(ToggleRemoveFileIncidentTrackerDialog(false));\r\n\t};\r\n\r\n\tconst _optionsIncidentTrackerDialogClose = () => {\r\n\t\tdispatch(ToggleOptionsIncidentTrackerDialog(false));\r\n\t};\r\n\r\n\tconst _onCreateSiteIncidentClick = () => {\r\n\t\tdispatch(ToggleIncidentTrackerDialog(true));\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\tcfnOwner: userId\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _onExportIncidentsClick = () => {\r\n\t\tdispatch(ExportIncidents(userId, role));\r\n\t};\r\n\r\n\tconst _onOptionsClick = () => {\r\n\t\tdispatch(ToggleOptionsIncidentTrackerDialog(true));\r\n\t};\r\n\r\n\tconst actions = [\r\n\t\t{ icon: , name: 'Create Incident', id: 'createIncident' },\r\n\t\t{ icon: , name: 'Export Incidents', id: 'exportIncidents' },\r\n\t];\r\n\r\n\tif (role === 'Administrator' || role === 'Manager') {\r\n\t\tactions.push({ icon: , name: 'Options', id: 'options' });\r\n\t}\r\n\r\n\tconst _handleSpeedDialClick = (action) => {\r\n\t\tif (action.id === 'createIncident') {\r\n\t\t\t_onCreateSiteIncidentClick();\r\n\t\t} else if (action.id === 'exportIncidents') {\r\n\t\t\t_onExportIncidentsClick();\r\n\t\t} else if (action.id === 'options') {\r\n\t\t\t_onOptionsClick();\r\n\t\t}\r\n\t};\r\n\r\n\tconst [formating, setFormating] = React.useState(true);\r\n\tfunction handleClick() {\r\n\t\tsetFormating(true);\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{actions.map((action) => (\r\n\t\t\t\t\t { _handleSpeedDialClick(action); }}\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\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t setFormating(!formating)}\r\n\t\t\t\t\t\t\t\t\t\tname=\"loading\"\r\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\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\tCreate Incident\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\tExport Incidents\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\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{incidentTrackerDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{deleteIncidentTrackerDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{attachFileIncidentTrackerDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{removeFileIncidentTrackerDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{optionsIncidentTrackerDialogVisibility && (\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\r\n\t);\r\n};\r\n\r\nexport default IncidentTracker;\r\n","/* eslint-disable arrow-body-style */\r\nimport { React, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport moment from 'moment';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog';\r\n\r\nimport { UpdateSiteActivationDates } from '../../actions/SiteTrackerActions';\r\n\r\nconst SiteTrackerTableUpdate = (props) => {\r\n\tconst { onClose, open, className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user.id);\r\n\tconst [siteIdsToUpdate, setSelectedSiteToUpdate] = useState([]);\r\n\r\n\tconst _handleRowSelect = (dataIndex) => {\r\n\t\tconst { id } = data[dataIndex];\r\n\t\tif (siteIdsToUpdate.includes(id)) {\r\n\t\t\tsetSelectedSiteToUpdate(siteIdsToUpdate.filter((row) => row !== id));\r\n\t\t} else {\r\n\t\t\tsetSelectedSiteToUpdate([...siteIdsToUpdate, id]);\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onConfirmClicked = () => {\r\n\t\tdispatch(UpdateSiteActivationDates({ siteIdsToUpdate, user }));\r\n\t\tonClose();\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: true,\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: 'lcs',\r\n\t\t\t\tlabel: 'LCS',\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 => `Key - ${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 => `Key - ${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: 'dasZone',\r\n\t\t\t\tlabel: 'Site DAS Zone',\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 => `Key - ${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: 'siteType',\r\n\t\t\t\tlabel: 'Site 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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'activationDate',\r\n\t\t\t\tlabel: 'Activation 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) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()},\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'newDate',\r\n\t\t\t\tlabel: 'New 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) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()},\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: '',\r\n\t\t\t\tlabel: '',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tcustomBodyRenderLite: (dataIndex) => (\r\n\t\t\t\t\t\t _handleRowSelect(dataIndex)}\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\r\n\t);\r\n};\r\n\r\nSiteTrackerTableUpdate.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.func\r\n};\r\n\r\nexport default SiteTrackerTableUpdate;\r\n","/* eslint-disable arrow-body-style */\r\nimport { React, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport moment from 'moment';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog';\r\n\r\nimport { CreateNewSiteTrackerEntries } from '../../actions/SiteTrackerActions';\r\n\r\nconst SiteTrackerTableUNewEntries = (props) => {\r\n\tconst { onClose, open, className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user.id);\r\n\tconst [lcsToCreate, setLcsToCreate] = useState([]);\r\n\r\n\tconst _handleRowSelect = (rowData) => {\r\n\t\tif (lcsToCreate.includes(rowData)) {\r\n\t\t\tsetLcsToCreate(lcsToCreate.filter((row) => row !== rowData));\r\n\t\t} else {\r\n\t\t\tsetLcsToCreate([...lcsToCreate, rowData]);\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onConfirmClicked = () => {\r\n\t\tdispatch(CreateNewSiteTrackerEntries({ lcsToCreate, user }));\r\n\t\tonClose();\r\n\t};\r\n\r\n\tconst _handleStyle = (value) => {\r\n\t\tif (value === 'N/A') {\r\n\t\t\treturn {\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\tbackgroundColor: 'yellow',\r\n\t\t\t\t\tcolor: 'black',\r\n\t\t\t\t\tfontWeight: 'bold'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\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\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'lcs',\r\n\t\t\t\tlabel: 'LCS',\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 => `Key - ${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: 'bsh',\r\n\t\t\t\tlabel: 'BSH',\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 => `Key - ${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 => `Key - ${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: 'siteType',\r\n\t\t\t\tlabel: 'Site 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\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'sow',\r\n\t\t\t\tlabel: 'SOW',\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 => `Key - ${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: 'dasZone',\r\n\t\t\t\tlabel: 'Site DAS Zone',\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 => `Key - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: (value) => (\r\n\t\t\t\t\t\t_handleStyle(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\tname: 'activationDate',\r\n\t\t\t\tlabel: 'Activation 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) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()},\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: '',\r\n\t\t\t\tlabel: '',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tcustomBodyRenderLite: (index) => (\r\n\t\t\t\t\t\t _handleRowSelect(data[index])}\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: 'activationStatus',\r\n\t\t\t\tlabel: 'Activation Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'fieldPartner',\r\n\t\t\t\tlabel: 'fieldPartner',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'project',\r\n\t\t\t\tlabel: 'project',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'vendor',\r\n\t\t\t\tlabel: 'vendor',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${v}`\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\r\n\t);\r\n};\r\n\r\nSiteTrackerTableUNewEntries.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.func\r\n};\r\n\r\nexport default SiteTrackerTableUNewEntries;\r\n","/* eslint-disable arrow-body-style */\r\nimport { React, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport EditIcon from '@mui/icons-material/EditOutlined';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport ManageSearchIcon from '@mui/icons-material/ManageSearch';\r\nimport MailOutlineIcon from '@mui/icons-material/MailOutline';\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\n\r\nimport { ToggleSiteTrackerDialog, RemoveSiteEntry, GetReportEmail } from '../../actions/SiteTrackerActions';\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\tinfoButton: {\r\n\t\tcolor: theme.palette.info.main\r\n\t}\r\n}));\r\n\r\nconst SiteTrackerTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [siteTrackerIdToRemove, setSiteTrackerIdToRemove] = useState(null);\r\n\r\n\tconst _onEditSiteTrackerClick = (siteTrackerId) => {\r\n\t\tdispatch(ToggleSiteTrackerDialog(true, siteTrackerId));\r\n\t};\r\n\r\n\tconst _onRemoveSiteTrackerClick = () => {\r\n\t\tif (siteTrackerIdToRemove !== null) {\r\n\t\t\tdispatch(RemoveSiteEntry(siteTrackerIdToRemove, user.id));\r\n\t\t\t// Reset the state after removal\r\n\t\t\tsetSiteTrackerIdToRemove(null);\r\n\t\t}\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tconst handleClickOpen = (siteTrackerId) => {\r\n\t\t// Set the siteTrackerId to be removed when the dialog is opened\r\n\t\tsetSiteTrackerIdToRemove(siteTrackerId);\r\n\t\tsetOpen(true);\r\n\t};\r\n\r\n\tconst _onReportEmailClick = (siteTrackerId) => {\r\n\t\tdispatch(GetReportEmail(siteTrackerId, user.id));\r\n\t};\r\n\r\n\tconst _handleStyle = (value) => {\r\n\t\tif (value === 'To Validate - BIS Report' || value === 'To Validate - TTO Report') {\r\n\t\t\treturn {\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\tbackgroundColor: 'yellow',\r\n\t\t\t\t\tcolor: 'black',\r\n\t\t\t\t\tfontWeight: 'bold'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t};\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 _onEditSiteTrackerClick(rowData[0])}>\r\n\t\t\t\t\t\t{tableMeta.rowData[12] === 'Complete' ? : }\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{user.role === 'Manager' && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t handleClickOpen(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{(rowData[12] === 'BIS Report Done' || rowData[12] === 'TTO Report Submit' || rowData[12] === 'Complete') && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _onReportEmailClick(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\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: 'key',\r\n\t\t\t\tlabel: 'Key',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'lcs',\r\n\t\t\t\tlabel: 'LCS',\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 => `LCS - ${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: 'bsh',\r\n\t\t\t\tlabel: 'BSH',\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 => `BSH - ${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: 'siteType',\r\n\t\t\t\tlabel: 'Site Type',\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 => `Site Type - ${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: 'dasZone',\r\n\t\t\t\tlabel: 'DAS Zone',\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 => `DAS Zone - ${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: 'activationDate',\r\n\t\t\t\tlabel: 'Activation 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 => `Activation Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'activationStatus',\r\n\t\t\t\tlabel: 'Activation Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Activation Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfilterList: ['Complete', 'Scheduled'],\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'sow',\r\n\t\t\t\tlabel: 'SOW',\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 => `SOW - ${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: 'comments',\r\n\t\t\t\tlabel: 'Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Comments - ${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: 'actionStatus',\r\n\t\t\t\tlabel: 'Action 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 => `Action Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsetCellProps: (value) => (\r\n\t\t\t\t\t\t_handleStyle(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\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: 'd1ReportOwner',\r\n\t\t\t\tlabel: 'D1 Report Owner',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D1 Report Owner - ${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: 'd1ReportStatusDate',\r\n\t\t\t\tlabel: 'D1 Report Status 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 => `D1 Report Status Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'd1PCVReportComments',\r\n\t\t\t\tlabel: 'D1 PCV Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D1 PCV Report Comments - ${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: 'd1BISReportComments',\r\n\t\t\t\tlabel: 'D1 BIS Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D1 BIS Report Comments - ${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: 'd1Status',\r\n\t\t\t\tlabel: 'D1 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 => `D1 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: 'd7ReportOwner',\r\n\t\t\t\tlabel: 'D7 Report Owner',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D7 Report Owner - ${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: 'd7ReportStatusDate',\r\n\t\t\t\tlabel: 'D7 Report Status 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 => `D7 Report Status Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'd7PCVReportComments',\r\n\t\t\t\tlabel: 'D7 PCV Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D7 PCV Report Comments - ${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: 'd7BISReportComments',\r\n\t\t\t\tlabel: 'D7 BIS Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D7 BIS Report Comments - ${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: 'd7Status',\r\n\t\t\t\tlabel: 'D7 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 => `D7 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: 'ttoSubmitDate',\r\n\t\t\t\tlabel: 'TTO Submit 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 => `TTO Submit Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'ttoApprovedDate',\r\n\t\t\t\tlabel: 'TTO Approved 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 => `TTO Approved Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').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\t\r\n\t\t\t\t\r\n\t\t\t\t\tPlease Confirm Site Entry Remove\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\tKeep in mind that\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t

ALL DATA WILL BE LOST!

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\tAre you sure you want to remove this entry?\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\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSiteTrackerTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default SiteTrackerTable;\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { validate } from 'validate.js';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { SelectField } from 'components';\r\nimport { Checkbox, Grid, FormControlLabel } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport DatePicker from 'components/DatePicker/DatePicker.js';\r\n\r\nimport { SetFormState, GetDropdowns, GetSiteNameDropdown, GetSiteDasZoneDropdown, GetBshDropdown, GetBshDropdownWlcs, GetSiteTypeDropdown } from '../../actions/SiteTrackerActions';\r\n\r\nconst schema = {\r\n\tlcs: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tbsh: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsiteType: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsiteName: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tdasZone: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tactivationDate: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tactivationStatus: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsow: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tproject: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tvendor: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tfieldPartner: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tnoBorder: {\r\n\t\tborder: 'none',\r\n\t}\r\n}));\r\n\r\nconst SiteTrackerDialogFormCreate = (props) => {\r\n\tconst { ...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.siteTrackerReducer.formState);\r\n\tconst dropdowns = useSelector((state) => state.siteTrackerReducer.dropdowns);\r\n\tconst siteBshDropdown = useSelector((state) => state.siteTrackerReducer.siteBshDropdown);\r\n\tconst siteTypeDropdown = useSelector((state) => state.siteTrackerReducer.siteTypeDropdown);\r\n\tconst siteNameDropdown = useSelector(state => state.siteTrackerReducer.siteNameDropdown);\r\n\tconst siteDasZoneDropdown = useSelector(state => state.siteTrackerReducer.siteDasZoneDropdown);\r\n\r\n\tconst _hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\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]: 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 _dateChange = (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\tactivationDate: value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\tactivationDate: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetDropdowns());\r\n\t\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\tactivationStatus: 'Scheduled',\r\n\t\t\t\tproject: 'London Underground',\r\n\t\t\t\tvendor: 'Ericsson',\r\n\t\t\t\tfieldPartner: 'Boldyn',\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\tactivationStatus: true,\r\n\t\t\t},\r\n\t\t});\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetBshDropdownWlcs(formState.values.lcs));\r\n\t}, [formState.values.lcs]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSiteTypeDropdown(formState.values.lcs));\r\n\t}, [formState.values.bsh]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSiteNameDropdown(formState.values.lcs, formState.values.siteType));\r\n\t\tdispatch(GetSiteDasZoneDropdown(formState.values.lcs, formState.values.bsh, formState.values.siteType));\r\n\t}, [formState.values.bsh, formState.values.siteType]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSiteDasZoneDropdown(formState.values.lcs, formState.values.bsh, formState.values.siteType));\r\n\t}, [formState.values.siteName]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (formState.values.sow2) {\r\n\t\t\tformState.values.sow = formState.values.sow2.join(' + ');\r\n\t\t}\r\n\t}, [formState.values.sow2]);\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\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\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t...newTouched\r\n\t\t\t}\r\n\t\t});\r\n\t}, [formState.values, formState.submit]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\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\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{/* New row */}\r\n\t\t\t\t\r\n\t\t\t\t\t _dateChange(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\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{/* New row */}\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 SiteTrackerDialogFormCreate;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport { Paper } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {}\r\n}));\r\n\r\nconst CommentsHistoryTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst rows = data || [];\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{rows.map((row) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{row.user}\r\n\t\t\t\t\t\t\t\t{moment(row.date).format('YYYY-MM-DD HH:mm')}\r\n\t\t\t\t\t\t\t\t{row.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
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCommentsHistoryTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default CommentsHistoryTable;\r\n","/* eslint-disable max-len */\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport moment from 'moment';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { SelectField } from 'components';\r\nimport { Typography, TextField, Grid, Card, Stack, CardHeader, CardContent, Divider, Accordion, AccordionSummary, AccordionDetails } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport DatePicker from 'components/DatePicker/DatePicker.js';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\n\r\nimport CommentsHistoryTable from './CommentsHistoryTable';\r\n\r\nimport { SetFormState, GetDropdowns, GetSiteTrackerToEdit, GetCommentsHistory } from '../../actions/SiteTrackerActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\taccordion: {\r\n\t\tbackgroundColor: '#f5f5f5'\r\n\t},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tnoBorder: {\r\n\t\tborder: 'none',\r\n\t}\r\n}));\r\n\r\nconst schema = {\r\n\tbsh: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsiteType: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsiteName: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tactivationDate: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tactivationStatus: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsow: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst SiteTrackerDialogFormEdit = (props) => {\r\n\tconst { siteTrackerId, confirmLabel, ...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.siteTrackerReducer.formState);\r\n\tconst dropdowns = useSelector((state) => state.siteTrackerReducer.dropdowns);\r\n\tconst commentsHistory = useSelector((state) => state.siteTrackerReducer.commentsHistory);\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst okNokDropdown = [{ value: 'OK', text: 'OK' }, { value: 'NOK', text: 'NOK' }];\r\n\tconst [expanded, setExpanded] = useState('');\r\n\tconst _hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\r\n\tconst _handleAccordionChange = (panel) => (event, isExpanded) => {\r\n\t\tsetExpanded(isExpanded ? panel : false);\r\n\t};\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]: event.target.type === 'checkbox' ? event.target.checked : event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _dateChange = (value, id) => {\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[id]: moment(value).format('YYYY-MM-DDTHH:mm:ss'),\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[id]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSiteTrackerToEdit(siteTrackerId));\r\n\t\tdispatch(GetDropdowns());\r\n\t\tdispatch(GetCommentsHistory(siteTrackerId, 'Comments'));\r\n\t\tdispatch(GetCommentsHistory(siteTrackerId, 'D7NewCellsReportComments'));\r\n\t\tdispatch(GetCommentsHistory(siteTrackerId, 'D7PCVReportComments'));\r\n\t\tdispatch(GetCommentsHistory(siteTrackerId, 'D1BISReportComments'));\r\n\t\tdispatch(GetCommentsHistory(siteTrackerId, 'D1PCVReportComments'));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (formState.submit && formState.values.d1Status !== 'OK' && formState.values.d7ReportStatusDate !== null) {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\td7ReportStatusDate: null,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}, [formState.values.d1Status]);\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\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\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t...newTouched\r\n\t\t\t}\r\n\t\t});\r\n\t}, [formState.values, formState.submit]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t _dateChange(value, 'rescheduledDate')}\r\n\t\t\t\t\t\t\t\tdisabled={(!formState.touched.activationStatus || formState.values.activationStatus !== 'Rescheduled')}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tComments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tREPORT D+1\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t _dateChange(value, 'd1ReportStatusDate')}\r\n\t\t\t\t\t\t\t\tdisabled={user.role !== 'Manager' && formState.values.d1Status === 'OK'}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+1 PCV Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+1 BIS Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tREPORT D+7\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t _dateChange(value, 'd7ReportStatusDate')}\r\n\t\t\t\t\t\t\t\tdisabled={user.role !== 'Manager' && ((formState.values.d7Status !== 'NOK' && !formState.touched.d7Status && formState.values.d7Status) || formState.values.d1Status !== 'OK' || formState.touched.d1Status)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+7 PCV Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+7 New Cells Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tClaim TTO\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 _dateChange(value, 'ttoSubmitDate')}\r\n\t\t\t\t\t\t\t\tdisabled\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 _dateChange(value, 'ttoApprovedDate')}\r\n\t\t\t\t\t\t\t\tdisabled={user.role !== 'Manager' && (formState.values.ttoSubmitDate === null || formState.values.currentStatus === 'Complete')}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\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\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\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\nSiteTrackerDialogFormEdit.propTypes = {\r\n\tsiteTrackerId: PropTypes.number,\r\n\tconfirmLabel: PropTypes.string,\r\n};\r\n\r\nexport default SiteTrackerDialogFormEdit;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport moment from 'moment';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog';\r\nimport SiteTrackerDialogFormCreate from './SiteTrackerDialogFormCreate';\r\nimport SiteTrackerDialogFormEdit from './SiteTrackerDialogFormEdit';\r\n\r\nimport { SetFormState, ToggleSiteTrackerDialog, CreateSiteEntry, EditSiteEntry } from '../../actions/SiteTrackerActions';\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 SiteTrackerDialog = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst { onClose, open, siteTrackerId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.siteTrackerReducer.formState);\r\n\tconst user = useSelector(state => state.session.user.id);\r\n\tconst siteTrackerTable = useSelector((state) => state.siteTrackerReducer.siteTrackerTable);\r\n\tconst selectedSite = siteTrackerTable.find(obj => obj.id === siteTrackerId);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tsetFormState({ ...formState, submit: true });\r\n\t\tif (formState.isValid && siteTrackerId === 0) {\r\n\t\t\tdispatch(CreateSiteEntry({ ...formState.values, user }));\r\n\t\t\tdispatch(ToggleSiteTrackerDialog(false, 0));\r\n\t\t} else if (formState.isValid) {\r\n\t\t\tif (formState.values.activationStatus === 'Rescheduled') {\r\n\t\t\t\tformState.values.activationStatus = 'Cancelled';\r\n\t\t\t\tdispatch(EditSiteEntry({ ...formState.values, user }));\r\n\t\t\t\tformState.values.activationDate = formState.values.rescheduledDate;\r\n\t\t\t\tformState.values.activationStatus = 'Scheduled';\r\n\t\t\t\tdispatch(CreateSiteEntry({ ...formState.values, user }));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(EditSiteEntry({ ...formState.values, user }));\r\n\t\t\t}\r\n\t\t\tdispatch(ToggleSiteTrackerDialog(false, 0));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _getTitleLabel = () => {\r\n\t\tif (siteTrackerId === 0) {\r\n\t\t\treturn 'Create';\r\n\t\t}\r\n\t\tif (selectedSite.currentStatus !== 'Complete') {\r\n\t\t\treturn 'Edit';\r\n\t\t}\r\n\t\treturn 'View';\r\n\t};\r\n\r\n\tconst _checkCurrentStatus = () => {\r\n\t\tif (siteTrackerId === 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (selectedSite.currentStatus !== 'Complete') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{siteTrackerId === 0 ? (\r\n\t\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\nSiteTrackerDialog.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\tsiteTrackerId: PropTypes.number,\r\n\tsubmitter: PropTypes.string,\r\n\tcurrentStatus: PropTypes.string,\r\n};\r\n\r\nexport default SiteTrackerDialog;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { FilesDropzone } from 'components';\r\n\r\nimport { UploadTrackerFiles } from 'views/SiteTracker/actions/SiteTrackerActions';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog';\r\n\r\nconst ImportSiteTrackerModal = (props) => {\r\n\tconst { title, onClose, open, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user.id);\r\n\r\n\tconst _onConfirmClick = (files) => {\r\n\t\tif (files && files[0]) {\r\n\t\t\tconst file = files[0];\r\n\t\t\tdispatch(UploadTrackerFiles(file, user));\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\nImportSiteTrackerModal.propTypes = {\r\n\ttitle: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default ImportSiteTrackerModal;\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect, useCallback, useMemo } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, Grid, IconButton } from '@mui/material';\r\nimport { Page, Header, Alert } from 'components';\r\nimport SpeedDial from '@mui/material/SpeedDial';\r\nimport SpeedDialIcon from '@mui/material/SpeedDialIcon';\r\nimport SpeedDialAction from '@mui/material/SpeedDialAction';\r\nimport AddBoxIcon from '@mui/icons-material/AddBox';\r\nimport FileOpenIcon from '@mui/icons-material/FileOpen';\r\nimport UploadFileRoundedIcon from '@mui/icons-material/UploadFileRounded';\r\nimport WarningAmberRoundedIcon from '@mui/icons-material/WarningAmberRounded';\r\n\r\nimport SiteTrackerTableUpdate from './components/SiteTrackerTableUpdate';\r\nimport SiteTrackerTableUNewEntries from './components/SiteTrackerTableNewEntries';\r\nimport SiteTrackerTable from './components/SiteTrackerTable';\r\nimport SiteTrackerDialog from './components/SiteTrackerDialog';\r\nimport ImportSiteTrackerModal from './components/ImportSiteTrackerModal';\r\n\r\nimport {\r\n\tToggleSiteTrackerDialog,\r\n\tGetSiteTrackerTable,\r\n\tGetSiteTrackerUpdateTable,\r\n\tGetSiteTrackerLcsCreateTable,\r\n\tGetExportTracker,\r\n\tExportSiteTrackerTemplate,\r\n\tToggleImportModalVisibility,\r\n\tToggleSiteTrackerUpdateVisibility,\r\n\tToggleSiteTrackerLcsCreateVisibility\r\n} from '../actions/SiteTrackerActions';\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\ttabs: {\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\tpaper: {\r\n\t\tpadding: theme.spacing(1)\r\n\t},\r\n\tpopover: {\r\n\t\tpointerEvents: 'none'\r\n\t},\r\n\tgenerate: {\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\talert: {\r\n\t\t'&:hover': {\r\n\t\t\tcursor: 'pointer'\r\n\t\t}\r\n\t}\r\n}));\r\n\r\nconst SiteTracker = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst siteTrackerDialogVisibility = useSelector((state) => state.siteTrackerReducer.siteTrackerDialogVisibility);\r\n\tconst selectedSiteId = useSelector((state) => state.siteTrackerReducer.selectedSiteId);\r\n\tconst siteTrackerTable = useSelector((state) => state.siteTrackerReducer.siteTrackerTable);\r\n\tconst importModalVisibility = useSelector((state) => state.siteTrackerReducer.importModalVisibility);\r\n\tconst siteTrackerUpdateTable = useSelector((state) => state.siteTrackerReducer.siteTrackerUpdateTable);\r\n\tconst siteTrackerCreateLCSTable = useSelector((state) => state.siteTrackerReducer.siteTrackerCreateLCSTable);\r\n\tconst siteTrackerUpdateVisibility = useSelector((state) => state.siteTrackerReducer.siteTrackerUpdateVisibility);\r\n\tconst siteTrackerLCSCreateVisibility = useSelector((state) => state.siteTrackerReducer.siteTrackerLCSCreateVisibility);\r\n\tconst user = useSelector(state => state.session.user);\r\n\r\n\tconst _onCreateNewTrackerEntryClick = () => {\r\n\t\tdispatch(ToggleSiteTrackerDialog(true, 0, ''));\r\n\t};\r\n\r\n\tconst _onExportTrackerClick = () => {\r\n\t\tdispatch(GetExportTracker());\r\n\t};\r\n\r\n\tconst _onImportTrackerClick = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(true));\r\n\t\t// dispatch(ExportSiteTrackerTemplate());\r\n\t};\r\n\r\n\tconst _onCloseImportModal = () => {\r\n\t\tdispatch(ToggleImportModalVisibility(false));\r\n\t};\r\n\r\n\tconst _onCloseSiteTrackerDialog = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleSiteTrackerDialog(false, 0, ''));\r\n\t\t}\r\n\t};\r\n\r\n\tconst actions = [\r\n\t\t{ icon: , name: 'Create New Entry', id: 'createNewTrackerEntry' },\r\n\t\t{ icon: , name: 'Export Tracker', id: 'exportTracker' },\r\n\t\t{ icon: , name: 'Import Tracker', id: 'importTracker' }\r\n\t];\r\n\r\n\tconst _handleTrackerUpdateAlertClick = () => {\r\n\t\tdispatch(ToggleSiteTrackerUpdateVisibility(true));\r\n\t};\r\n\r\n\tconst _handleTrackerCreateLCSAlertClick = () => {\r\n\t\tdispatch(ToggleSiteTrackerLcsCreateVisibility(true));\r\n\t};\r\n\r\n\tconst _onCloseSiteTrackerUpdate = () => {\r\n\t\tdispatch(ToggleSiteTrackerUpdateVisibility(false));\r\n\t};\r\n\r\n\tconst _onCloseSiteTrackerLcsCreate = () => {\r\n\t\tdispatch(ToggleSiteTrackerLcsCreateVisibility(false));\r\n\t};\r\n\r\n\tconst _handleSpeedDialClick = (action) => {\r\n\t\tif (action.id === 'createNewTrackerEntry') {\r\n\t\t\t_onCreateNewTrackerEntryClick();\r\n\t\t} else if (action.id === 'exportTracker') {\r\n\t\t\t_onExportTrackerClick();\r\n\t\t} else if (action.id === 'importTracker') {\r\n\t\t\t_onImportTrackerClick();\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSiteTrackerUpdateTable());\r\n\t\tdispatch(GetSiteTrackerLcsCreateTable());\r\n\t\tdispatch(GetSiteTrackerTable());\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t{siteTrackerUpdateTable.length > 0 && (\r\n\t\t\t\t { _handleTrackerUpdateAlertClick(); }}\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{siteTrackerUpdateVisibility && user.role === 'Manager' && (\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{siteTrackerCreateLCSTable.length > 0 && (\r\n\t\t\t\t { _handleTrackerCreateLCSAlertClick(); }}\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{siteTrackerLCSCreateVisibility && user.role === 'Manager' && (\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{actions.map((action) => (\r\n\t\t\t\t\t { _handleSpeedDialClick(action); }}\r\n\t\t\t\t\t\tcursor=\"pointer\"\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\t\t\r\n\t\t\t\t\t{siteTrackerDialogVisibility && (\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{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 SiteTracker;\r\n","import React from 'react';\r\nimport { FilesDropzone } from 'components';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\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 NominationPDFForm = (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\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default NominationPDFForm;\r\n","import React from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport { DataTable } from 'components';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\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 NominationPDFTable = (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: 'lastGeneration',\r\n\t\t\t\tlabel: 'Last Generation',\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) => <>{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: '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}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'errorMsg',\r\n\t\t\t\tlabel: 'Error Msg',\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\nNominationPDFTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired\r\n};\r\n\r\nexport default NominationPDFTable;\r\n","import { makeStyles } from '@mui/styles';\r\nimport React, { useState, useEffect, useCallback } from 'react';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport _ from 'underscore';\r\nimport { Grid, Button, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\n\r\nimport NominationPDFForm from './components/NominationPDFForm';\r\nimport NominationPDFTable from './components/NominationPDFTable';\r\nimport GetLastResult from '../actions/NominationFormActions.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 NominationForm = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\t// const lastResult = useSelector((state) => state.nominationFormReducer.lastResult);\r\n\r\n\t/* useEffect(() => {\r\n\t\tdispatch(GetLastResult());\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
* Input Excel File with 2 columns 'Sample Cell Name' and 'Type' (CR or SSR)
\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\tGenerate PDF(s)\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\tRefresh\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\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 NominationForm;\r\n","import { React, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { IconButton, Tooltip } from '@mui/material';\r\nimport EditIcon from '@mui/icons-material/EditOutlined';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport ManageSearchIcon from '@mui/icons-material/ManageSearch';\r\nimport MailOutlineIcon from '@mui/icons-material/MailOutline';\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\n\r\nimport { ToggleStreetScapeTrackerDialog, RemoveStreetScapeEntry, GetReportEmail } from '../../actions/StreetScapeTrackerActions';\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\tinfoButton: {\r\n\t\tcolor: theme.palette.info.main\r\n\t}\r\n}));\r\n\r\nconst StreetScapeTrackerTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [streetScapeIdToRemove, setStreetScapeTrackerIdToRemove] = useState(null);\r\n\r\n\tconst _onEditSiteTrackerClick = (streetScapeTrackerId) => {\r\n\t\tdispatch(ToggleStreetScapeTrackerDialog(true, streetScapeTrackerId));\r\n\t};\r\n\r\n\tconst _onRemoveSiteTrackerClick = () => {\r\n\t\tif (streetScapeIdToRemove !== null) {\r\n\t\t\tdispatch(RemoveStreetScapeEntry(streetScapeIdToRemove, user.id));\r\n\t\t\t// Reset the state after removal\r\n\t\t\tsetStreetScapeTrackerIdToRemove(null);\r\n\t\t}\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tconst handleClickOpen = (streetScapeTrackerId) => {\r\n\t\t// Set the siteTrackerId to be removed when the dialog is opened\r\n\t\tsetStreetScapeTrackerIdToRemove(streetScapeTrackerId);\r\n\t\tsetOpen(true);\r\n\t};\r\n\r\n\tconst _onReportEmailClick = (streetScapeTrackerId) => {\r\n\t\tdispatch(GetReportEmail(streetScapeTrackerId, user.id));\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 _onEditSiteTrackerClick(rowData[0])}>\r\n\t\t\t\t\t\t{rowData[10] === 'Complete' ? : }\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{user.role === 'Manager' && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t handleClickOpen(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{(rowData[10] === 'BIS Report Done' || rowData[10] === 'TTO Report Submit' || rowData[10] === 'Complete') && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _onReportEmailClick(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\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: 'key',\r\n\t\t\t\tlabel: 'Key',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Key - ${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: 'local',\r\n\t\t\t\tlabel: 'Local',\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 => `Local - ${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: 'cluster',\r\n\t\t\t\tlabel: 'Cluster',\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 => `Cluster - ${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: 'activationDate',\r\n\t\t\t\tlabel: 'Activation 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 => `Activation Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'activationStatus',\r\n\t\t\t\tlabel: 'Activation Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'multiselect',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Activation Status - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfilterList: ['Complete', 'Scheduled'],\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'sow',\r\n\t\t\t\tlabel: 'SOW',\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 => `SOW - ${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: 'comments',\r\n\t\t\t\tlabel: 'Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `Comments - ${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: 'actionStatus',\r\n\t\t\t\tlabel: 'Action 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 => `Action 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: '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: 'd1ReportOwner',\r\n\t\t\t\tlabel: 'D1 Report Owner',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D1 Report Owner - ${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: 'd1ReportStatusDate',\r\n\t\t\t\tlabel: 'D1 Report Status 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 => `D1 Report Status Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'd1PCVReportComments',\r\n\t\t\t\tlabel: 'D1 PCV Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D1 PCV Report Comments - ${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: 'd1BISReportComments',\r\n\t\t\t\tlabel: 'D1 BIS Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D1 BIS Report Comments - ${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: 'd1Status',\r\n\t\t\t\tlabel: 'D1 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 => `D1 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: 'd7ReportOwner',\r\n\t\t\t\tlabel: 'D7 Report Owner',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'dropdown',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D7 Report Owner - ${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: 'd7ReportStatusDate',\r\n\t\t\t\tlabel: 'D7 Report Status 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 => `D7 Report Status Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'd7PCVReportComments',\r\n\t\t\t\tlabel: 'D7 PCV Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D7 PCV Report Comments - ${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: 'd7BISReportComments',\r\n\t\t\t\tlabel: 'D7 BIS Report Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomFilterListOptions: {\r\n\t\t\t\t\t\trender: v => `D7 BIS Report Comments - ${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: 'd7Status',\r\n\t\t\t\tlabel: 'D7 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 => `D7 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: 'ttoSubmitDate',\r\n\t\t\t\tlabel: 'TTO Submit 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 => `TTO Submit Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'ttoApprovedDate',\r\n\t\t\t\tlabel: 'TTO Approved 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 => `TTO Approved Date - ${v}`\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{value === null ? '' : moment(value).format('YYYY-MM-DD').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\t\r\n\t\t\t\t\r\n\t\t\t\t\tPlease Confirm Site Entry Remove\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\tKeep in mind that\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t

ALL DATA WILL BE LOST!

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\tAre you sure you want to remove this entry?\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\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nStreetScapeTrackerTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default StreetScapeTrackerTable;\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { validate } from 'validate.js';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { SelectField } from 'components';\r\nimport { Checkbox, Grid, FormControlLabel, TextField } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport DatePicker from 'components/DatePicker/DatePicker.js';\r\n\r\nimport { SetFormState, GetLocalDropdown, GetClusterDropdown, GetSiteNameDropdown, GetActivationStatusDropdown } from '../../actions/StreetScapeTrackerActions';\r\n\r\nconst schema = {\r\n\tlocal: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tcluster: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsiteName: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tactivationDate: {\r\n\t\tpresence: { allowEmpty: true, message: 'is required' },\r\n\t},\r\n\tactivationStatus: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsow: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tproject: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tvendor: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tfieldPartner: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst schemaPlanned = {\r\n\tlocal: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tcluster: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsiteName: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tactivationStatus: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsow: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tproject: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tvendor: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tfieldPartner: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tnoBorder: {\r\n\t\tborder: 'none',\r\n\t}\r\n}));\r\n\r\nconst StreetScapeTrackerDialogFormCreate = (props) => {\r\n\tconst { ...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.streetScapeTrackerReducer.formState);\r\n\tconst siteLocalDropdown = useSelector((state) => state.streetScapeTrackerReducer.siteLocalDropdown);\r\n\tconst siteClusterDropdown = useSelector((state) => state.streetScapeTrackerReducer.siteClusterDropdown);\r\n\tconst siteNameDropdown = useSelector((state) => state.streetScapeTrackerReducer.siteNameDropdown);\r\n\tconst activationStatusDropdown = useSelector((state) => state.streetScapeTrackerReducer.activationStatusDropdown);\r\n\r\n\tconst _hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\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]: 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 _dateChange = (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\tactivationDate: value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\tactivationDate: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetLocalDropdown());\r\n\t\tdispatch(GetActivationStatusDropdown());\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\tactivationStatus: 'Scheduled',\r\n\t\t\t\tproject: 'StreetScape',\r\n\t\t\t\tvendor: 'Ericsson',\r\n\t\t\t\tfieldPartner: 'Boldyn',\r\n\t\t\t\tsow: 'L18 + L21 + NR36',\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\tactivationStatus: true,\r\n\t\t\t},\r\n\t\t});\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetClusterDropdown(formState.values.local));\r\n\t}, [formState.values.local]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetSiteNameDropdown(formState.values.cluster));\r\n\t}, [formState.values.local, formState.values.cluster]);\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\tif (formState.submit && formState.values.activationStatus === 'Planned') {\r\n\t\t\t_.each(_.keys(schemaPlanned), item => {\r\n\t\t\t\tnewTouched[item] = true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet errors = validate(formState.values, schema);\r\n\t\tif (formState.values.activationStatus === 'Planned') {\r\n\t\t\terrors = validate(formState.values, schemaPlanned);\r\n\t\t}\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t...newTouched\r\n\t\t\t}\r\n\t\t});\r\n\t}, [formState.values, formState.submit]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\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 _dateChange(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\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 StreetScapeTrackerDialogFormCreate;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { DataTable } from 'components';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport { Paper } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {}\r\n}));\r\n\r\nconst CommentsHistoryTable = (props) => {\r\n\tconst { data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst rows = data || [];\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{rows.map((row) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{row.user}\r\n\t\t\t\t\t\t\t\t{moment(row.date).format('YYYY-MM-DD HH:mm')}\r\n\t\t\t\t\t\t\t\t{row.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
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nCommentsHistoryTable.propTypes = {\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default CommentsHistoryTable;\r\n","/* eslint-disable max-len */\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport moment from 'moment';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { SelectField } from 'components';\r\nimport { Typography, TextField, Grid, Card, Stack, CardHeader, CardContent, Divider, Accordion, AccordionSummary, AccordionDetails } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport DatePicker from 'components/DatePicker/DatePicker.js';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\n\r\nimport CommentsHistoryTable from './CommentsHistoryTable';\r\n\r\nimport { SetFormState, GetActivationStatusDropdown, GetD7StatusDropdown, GetStreetScapeTrackerToEdit, GetCommentsHistory } from '../../actions/StreetScapeTrackerActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\taccordion: {\r\n\t\tbackgroundColor: '#f5f5f5'\r\n\t},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tnoBorder: {\r\n\t\tborder: 'none',\r\n\t}\r\n}));\r\n\r\nconst schema = {\r\n\tlocal: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tcluster: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsiteName: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tactivationDate: {\r\n\t\tpresence: { allowEmpty: true, message: 'is required' },\r\n\t},\r\n\tactivationStatus: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tsow: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tproject: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tvendor: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tfieldPartner: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst StreetScapeTrackerDialogFormEdit = (props) => {\r\n\tconst { streetScapeTrackerId, confirmLabel, ...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.streetScapeTrackerReducer.formState);\r\n\tconst activationStatusDropdown = useSelector((state) => state.streetScapeTrackerReducer.activationStatusDropdown);\r\n\tconst d7StatusDropdown = useSelector((state) => state.streetScapeTrackerReducer.d7StatusDropdown);\r\n\tconst commentsHistory = useSelector((state) => state.streetScapeTrackerReducer.commentsHistory);\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst okNokDropdown = [{ value: 'OK', text: 'OK' }, { value: 'NOK', text: 'NOK' }];\r\n\tconst [expanded, setExpanded] = useState('');\r\n\tconst _hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\r\n\tconst _handleAccordionChange = (panel) => (event, isExpanded) => {\r\n\t\tsetExpanded(isExpanded ? panel : false);\r\n\t};\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]: event.target.type === 'checkbox' ? event.target.checked : event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _dateChange = (value, id) => {\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[id]: moment(value).format('YYYY-MM-DDTHH:mm:ss'),\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[id]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetStreetScapeTrackerToEdit(streetScapeTrackerId));\r\n\t\tdispatch(GetActivationStatusDropdown());\r\n\t\tdispatch(GetD7StatusDropdown());\r\n\t\tdispatch(GetCommentsHistory(streetScapeTrackerId, 'Comments'));\r\n\t\tdispatch(GetCommentsHistory(streetScapeTrackerId, 'D7NewCellsReportComments'));\r\n\t\tdispatch(GetCommentsHistory(streetScapeTrackerId, 'D7PCVReportComments'));\r\n\t\tdispatch(GetCommentsHistory(streetScapeTrackerId, 'D1BISReportComments'));\r\n\t\tdispatch(GetCommentsHistory(streetScapeTrackerId, 'D1PCVReportComments'));\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\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\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t...newTouched\r\n\t\t\t}\r\n\t\t});\r\n\t}, [formState.values, formState.submit]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t _dateChange(value, 'rescheduledDate')}\r\n\t\t\t\t\t\t\t\tdisabled={(!formState.touched.activationStatus || (formState.values.activationStatus !== 'Rescheduled' && formState.values.activationStatus !== 'Scheduled'))}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tComments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tREPORT D+1\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t _dateChange(value, 'd1ReportStatusDate')}\r\n\t\t\t\t\t\t\t\tdisabled={user.role !== 'Manager' && formState.values.d1Status === 'OK'}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+1 PCV Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+1 BIS Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tREPORT D+7\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t _dateChange(value, 'd7ReportStatusDate')}\r\n\t\t\t\t\t\t\t\tdisabled={user.role !== 'Manager' && ((formState.values.d7Status !== 'NOK' && !formState.touched.d7Status && formState.values.d7Status) || formState.values.d1Status !== 'OK' || formState.touched.d1Status)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+7 PCV Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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} aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n\t\t\t\t\t\t\t\t\tD+7 New Cells Report Comments\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\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{!(formState.values.currentStatus === 'Complete') && (\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{/* New row */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tClaim TTO\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 _dateChange(value, 'ttoSubmitDate')}\r\n\t\t\t\t\t\t\t\tdisabled\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 _dateChange(value, 'ttoApprovedDate')}\r\n\t\t\t\t\t\t\t\tdisabled={user.role !== 'Manager' && (formState.values.ttoSubmitDate === null || formState.values.currentStatus === 'Complete')}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\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\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* New row */}\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\nStreetScapeTrackerDialogFormEdit.propTypes = {\r\n\tstreetScapeTrackerId: PropTypes.number,\r\n\tconfirmLabel: PropTypes.string,\r\n};\r\n\r\nexport default StreetScapeTrackerDialogFormEdit;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport _ from 'underscore';\r\nimport moment from 'moment';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog';\r\nimport StreetScapeTrackerDialogFormCreate from './StreetScapeTrackerDialogFormCreate';\r\nimport SreetScapeTrackerDialogFormEdit from './StreetScapeTrackerDialogFormEdit';\r\n\r\nimport { SetFormState, ToggleStreetScapeTrackerDialog, CreateStreetScapeEntry, EditStreetScapeEntry } from '../../actions/StreetScapeTrackerActions';\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 SreetScapeTrackerDialog = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst { onClose, open, streetScapeTrackerId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.streetScapeTrackerReducer.formState);\r\n\tconst user = useSelector(state => state.session.user.id);\r\n\tconst streetScapeTrackerTable = useSelector((state) => state.streetScapeTrackerReducer.streetScapeTrackerTable);\r\n\tconst selectedSite = streetScapeTrackerTable.find(obj => obj.id === streetScapeTrackerId);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tsetFormState({ ...formState, submit: true });\r\n\t\tif (formState.isValid && streetScapeTrackerId === 0) {\r\n\t\t\tdispatch(CreateStreetScapeEntry({ ...formState.values, user }));\r\n\t\t\tdispatch(ToggleStreetScapeTrackerDialog(false, 0));\r\n\t\t} else if (formState.isValid) {\r\n\t\t\tif (formState.values.activationStatus === 'Rescheduled') {\r\n\t\t\t\tformState.values.activationStatus = 'Cancelled';\r\n\t\t\t\tdispatch(EditStreetScapeEntry({ ...formState.values, user }));\r\n\t\t\t\tformState.values.activationDate = formState.values.rescheduledDate;\r\n\t\t\t\tformState.values.activationStatus = 'Scheduled';\r\n\t\t\t\tdispatch(CreateStreetScapeEntry({ ...formState.values, user }));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(EditStreetScapeEntry({ ...formState.values, user }));\r\n\t\t\t}\r\n\t\t\tdispatch(ToggleStreetScapeTrackerDialog(false, 0));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _getTitleLabel = () => {\r\n\t\tif (streetScapeTrackerId === 0) {\r\n\t\t\treturn 'Create';\r\n\t\t}\r\n\t\tif (selectedSite.currentStatus !== 'Complete') {\r\n\t\t\treturn 'Edit';\r\n\t\t}\r\n\t\treturn 'View';\r\n\t};\r\n\r\n\tconst _checkCurrentStatus = () => {\r\n\t\tif (streetScapeTrackerId === 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (selectedSite.currentStatus !== 'Complete') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{streetScapeTrackerId === 0 ? (\r\n\t\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\nSreetScapeTrackerDialog.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\tstreetScapeTrackerId: PropTypes.number,\r\n\tsubmitter: PropTypes.string,\r\n\tcurrentStatus: PropTypes.string,\r\n};\r\n\r\nexport default SreetScapeTrackerDialog;\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect, useCallback, useMemo } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, Grid, IconButton } from '@mui/material';\r\nimport { Page, Header, Alert } from 'components';\r\nimport SpeedDial from '@mui/material/SpeedDial';\r\nimport SpeedDialIcon from '@mui/material/SpeedDialIcon';\r\nimport SpeedDialAction from '@mui/material/SpeedDialAction';\r\nimport AddBoxIcon from '@mui/icons-material/AddBox';\r\nimport FileOpenIcon from '@mui/icons-material/FileOpen';\r\n\r\nimport StreetScapeTrackerTable from './components/StreetScapeTrackerTable';\r\nimport StreetScapeTrackerDialog from './components/StreetScapeTrackerDialog';\r\n\r\nimport {\r\n\tGetStreetScapeTrackerTable,\r\n\tToggleStreetScapeTrackerDialog,\r\n\tGetExportTracker\r\n} from '../actions/StreetScapeTrackerActions';\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\ttabs: {\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\tpaper: {\r\n\t\tpadding: theme.spacing(1)\r\n\t},\r\n\tpopover: {\r\n\t\tpointerEvents: 'none'\r\n\t},\r\n\tgenerate: {\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\talert: {\r\n\t\t'&:hover': {\r\n\t\t\tcursor: 'pointer'\r\n\t\t}\r\n\t}\r\n}));\r\n\r\nconst StreetScapeTracker = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst streetScapeTrackerTable = useSelector((state) => state.streetScapeTrackerReducer.streetScapeTrackerTable);\r\n\tconst streetScapeDialogVisibility = useSelector((state) => state.streetScapeTrackerReducer.streetScapeDialogVisibility);\r\n\tconst selectedStreetScapeId = useSelector((state) => state.streetScapeTrackerReducer.selectedStreetScapeId);\r\n\r\n\tconst actions = [\r\n\t\t{ icon: , name: 'Create New Entry', id: 'createNewTrackerEntry' },\r\n\t\t{ icon: , name: 'Export Tracker', id: 'exportTracker' }\r\n\t];\r\n\r\n\tconst _onCreateNewTrackerEntryClick = () => {\r\n\t\tdispatch(ToggleStreetScapeTrackerDialog(true, 0, ''));\r\n\t};\r\n\r\n\tconst _onExportTrackerClick = () => {\r\n\t\tdispatch(GetExportTracker());\r\n\t};\r\n\r\n\tconst _onCloseSiteTrackerDialog = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleStreetScapeTrackerDialog(false, 0, ''));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleSpeedDialClick = (action) => {\r\n\t\tif (action.id === 'createNewTrackerEntry') {\r\n\t\t\t_onCreateNewTrackerEntryClick();\r\n\t\t} else if (action.id === 'exportTracker') {\r\n\t\t\t_onExportTrackerClick();\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetStreetScapeTrackerTable());\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{actions.map((action) => (\r\n\t\t\t\t\t { _handleSpeedDialClick(action); }}\r\n\t\t\t\t\t\tcursor=\"pointer\"\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\t\t\r\n\t\t\t\t\t{streetScapeDialogVisibility && (\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 StreetScapeTracker;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport _ from 'underscore';\r\nimport uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTypography,\r\n\tTooltip,\r\n\tDivider,\r\n\tCardActions,\r\n\tcolors,\r\n\tGrid,\r\n\tButton,\r\n} from '@mui/material';\r\nimport WarningRoundedIcon from '@mui/icons-material/WarningRounded';\r\nimport DatePicker from 'components/DatePicker/DatePicker.js';\r\nimport { SelectField } from 'components';\r\n\r\nimport { GenerateReport, SetSelectedSites } from '../actions/SSReportsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tvalue: {\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t\talign: 'center'\r\n\t},\r\n\ttype: {\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n\twarning: {\r\n\t\tcolor: colors.orange[500]\r\n\t},\r\n\tgenerate: {\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 reportTypes = [\r\n\t{ value: '1', text: '24 Hours' },\r\n\t{ value: '7', text: '7 Days' },\r\n];\r\n\r\nconst SiteList = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\tconst siteList = useSelector((state) => state.ssReportsReducer.selectedSites);\r\n\tconst user = useSelector((state) => state.session.user);\r\n\r\n\tconst _generate = () => {\r\n\t\tconst username = `${user.firstname} ${user.lastname}`;\r\n\t\tdispatch(GenerateReport(siteList, username, user.id));\r\n\t};\r\n\r\n\tconst _checkWarning = (site) => {\r\n\t\tif (site.scheduleStatus === 'Complete' && _.isUndefined(site.commissioningDate)) {\r\n\t\t\treturn ;\r\n\t\t}\r\n\t\tif (site.scheduleStatus !== 'Complete' && moment(site.scheduleDate).format('YYYY-MM-DD') < moment().format('YYYY-MM-DD')) {\r\n\t\t\treturn ;\r\n\t\t}\r\n\t\tif (site.scheduleDate\r\n\t\t\t&& site.commissioningDate\r\n\t\t\t&& moment(site.scheduleDate).format('YYYY-MM-DD') !== moment(site.commissioningDate).format('YYYY-MM-DD')) {\r\n\t\t\treturn ;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t};\r\n\r\n\tconst _dateChange = (value, site, type) => {\r\n\t\tconst newSite = _.findWhere(siteList, { siteId: site.siteId, sow: site.sow });\r\n\t\tnewSite[type] = value.format('YYYY-MM-DD');\r\n\t\t// Find item index using _.findIndex (thanks @AJ Richardson for comment)\r\n\t\tconst index = _.findIndex(siteList, { siteId: site.siteId, sow: site.sow });\r\n\r\n\t\t// Replace item at index using native splice\r\n\t\tconst newSiteList = [...siteList];\r\n\t\tnewSiteList.splice(index, 1, newSite);\r\n\t\tdispatch(SetSelectedSites(newSiteList));\r\n\t};\r\n\r\n\tconst _handleChange = (event, site) => {\r\n\t\tconst newSite = _.findWhere(siteList, { siteId: site.siteId, sow: site.sow });\r\n\t\tnewSite.reportType = event.target.value;\r\n\t\tif (event.target.value !== '1') {\r\n\t\t\tnewSite.bis = false;\r\n\t\t}\r\n\t\t// Find item index using _.findIndex (thanks @AJ Richardson for comment)\r\n\t\tconst index = _.findIndex(siteList, { siteId: site.siteId, sow: site.sow });\r\n\r\n\t\t// Replace item at index using native splice\r\n\t\tconst newSiteList = [...siteList];\r\n\t\tnewSiteList.splice(index, 1, newSite);\r\n\t\tdispatch(SetSelectedSites(newSiteList));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{siteList.map((site, i) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t{_checkWarning(site)}\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{site.siteName}\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\tsecondary={(\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{site.siteId}\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\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{site.activationStatus}\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\tsecondary={(\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\tActivation Status\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\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{site.actionStatus}\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\tsecondary={(\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\tAction Status\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\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{site.sow}\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\tsecondary={(\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\tSOW\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 _dateChange(value, site, 'scheduleDate')}\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 _dateChange(value, site, 'commissioningDate')}\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 _handleChange(value, site)}\r\n\t\t\t\t\t\t\t\t\thintText=\"Report Type\"\r\n\t\t\t\t\t\t\t\t\tmenuItems={reportTypes}\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\r\n\t\t\r\n\t);\r\n};\r\n\r\nSiteList.propTypes = {\r\n\tclassName: PropTypes.string\r\n};\r\n\r\nexport default SiteList;\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\nimport BackupIcon from '@mui/icons-material/Backup';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst ActionsButton = (props) => {\r\n\tconst { syncTracker, loadOneDrive } = 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\tconst _loadOneDrive = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\tloadOneDrive();\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\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\tloadOneDrive: PropTypes.func,\r\n};\r\n\r\nexport default memo(ActionsButton);\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Card, CardContent, Grid, TextField, Autocomplete } from '@mui/material';\r\nimport { makeStyles } from '@mui/styles';\r\nimport _ from 'underscore';\r\nimport moment from 'moment';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { SiteList, ActionsButton } from './components';\r\nimport { GetSites, SetSelectedSites, SyncTracker, GetTrackerLastUpdate, LoadOneDrive, } from './actions/SSReportsActions.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\tsitelist: {\r\n\t\tmarginTop: theme.spacing(6),\r\n\t},\r\n}));\r\n\r\nconst SSReports = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst sites = useSelector((state) => state.ssReportsReducer.sites);\r\n\tconst selectedSites = useSelector((state) => state.ssReportsReducer.selectedSites);\r\n\tconst lastUpdate = useSelector((state) => state.ssReportsReducer.lastUpdate);\r\n\r\n\tconst _handleChange = (option) => {\r\n\t\tdispatch(SetSelectedSites(option));\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetSites());\r\n\t\tdispatch(GetTrackerLastUpdate());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, []);\r\n\r\n\tconst _syncTracker = () => {\r\n\t\tdispatch(SyncTracker());\r\n\t};\r\n\r\n\tconst _loadOneDrive = () => {\r\n\t\tdispatch(LoadOneDrive());\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\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.siteName}`}`}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\t\t\t// filterOptions={filterOptions}\r\n\t\t\t\t\t\t\t\tonChange={(event, value) => { _handleChange(value); }}\r\n\t\t\t\t\t\t\t\tmultiple\r\n\t\t\t\t\t\t\t\tdisableCloseOnSelect\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{selectedSites.length > 0 ? : null}\r\n\t\t\t{/* */}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default SSReports;\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 Home from './views/Home';\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 LUReports from './views/ReportKpis/components/Reports/LUReports.js';\r\nimport WeeklyReport from './views/WeeklyReport/components/WeeklyReport';\r\nimport IncidentTracker from './views/IncidentTracker/components/IncidentTracker';\r\nimport SiteTracker from './views/SiteTracker/components/SiteTracker';\r\nimport NominationForm from './views/NominationForm/components/NominationForm';\r\nimport StreetScapeTracker from './views/StreetScapeTracker/components/StreetScapeTracker';\r\nimport SSReports from './views/StreetScape Reports/SSReports.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: '/kpis',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\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: '/kpis/LU/reports',\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', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t\t\t\tchildren: LUReports()\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: '/kpis/LU/weeklyReport',\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', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t\t// \t\tchildren: WeeklyReport()\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: '/kpis/SS/reports',\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', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t\t\t\tchildren: SSReports()\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: '/trackers',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\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: '/trackers/IncidentTracker',\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'],\r\n\t\t\t\t\t\t\t\t\tchildren: IncidentTracker()\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: '/trackers/SiteTracker',\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: SiteTracker()\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: '/trackers/StreetScapeTracker',\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: StreetScapeTracker()\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\troles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS', 'Client'],\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/LU/weeklyReportDashboard',\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', 'CelfinetHQ', 'CelfinetOS', 'Client'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 2 } }, pageTitle: 'Dashboard Weekly Report', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/LU/kpisGlobalDashboardHourly',\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', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 4 } }, pageTitle: 'Dashboard KPIs Global Hourly', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/LU/kpisGlobalDashboardDaily',\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', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 5 } }, pageTitle: 'Dashboard KPIs Global Daily', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/SS/kpisGlobalDashboardHourly',\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', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 8 } }, pageTitle: 'Dashboard KPIs Global Hourly', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/SS/kpisGlobalDashboardDaily',\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', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 6 } }, pageTitle: 'Dashboard KPIs Global Daily', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/SS/weeklyReportDashboard',\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', 'CelfinetHQ', 'CelfinetOS', 'Client'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 9 } }, pageTitle: 'Dashboard Weekly Report', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/SS/weeklyReportDashboard',\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', 'CelfinetHQ', 'CelfinetOS', 'Client'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 9 } }, pageTitle: 'Dashboard Weekly Report', module: 'Dashboards' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/LU/rollout',\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', 'CelfinetHQ', 'CelfinetOS', 'Client'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 10 } }, pageTitle: 'London Underground 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\tpath: '/dashboards/SS/rollout',\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', 'CelfinetHQ', 'CelfinetOS', 'Client'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 11 } }, pageTitle: 'Streetscape 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\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/management',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Operators()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators/details',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: OperatorDetails()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/users',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Users(),\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/settings',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\tchildren: Settings()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\r\n\t},\r\n\t{\r\n\t\tpath: '/auth',\r\n\t\tcomponent: AuthLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/login',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/Login')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/completeregistration',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/CompleteRegistration')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/resetpassword',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/ResetPassword')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/recover',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/Recover')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/recoverconfirmation',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/RecoverConfirmation')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tcomponent: () => ,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\tpath: '/errors',\r\n\t\tcomponent: ErrorLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-401',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error401')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-404',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error404')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-500',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error500')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tcomponent: () => ,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport default routes;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useSnackbar } from 'notistack';\r\nimport { removeSnackbar } from 'actions';\r\n\r\nlet displayed = [];\r\n\r\nconst Notifier = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst notifications = useSelector(store => store.notifierReducer.notifications || []);\r\n\tconst { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n\tconst storeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed, id];\r\n\t};\r\n\r\n\tconst removeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed.filter(key => id !== key)];\r\n\t};\r\n\r\n\tReact.useEffect(() => {\r\n\t\tnotifications.forEach(({ key, message, options = {}, dismissed = false }) => {\r\n\t\t\tif (dismissed) {\r\n\t\t\t\t// dismiss snackbar using notistack\r\n\t\t\t\tcloseSnackbar(key);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// do nothing if snackbar is already displayed\r\n\t\t\tif (displayed.includes(key)) return;\r\n\r\n\t\t\t// display snackbar using notistack\r\n\t\t\tenqueueSnackbar(message, {\r\n\t\t\t\tkey,\r\n\t\t\t\t...options,\r\n\t\t\t\tonClose: (event, reason, myKey) => {\r\n\t\t\t\t\tif (options.onClose) {\r\n\t\t\t\t\t\toptions.onClose(event, reason, myKey);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tonExited: (event, myKey) => {\r\n\t\t\t\t\t// remove this snackbar from redux store\r\n\t\t\t\t\tdispatch(removeSnackbar(myKey));\r\n\t\t\t\t\tremoveDisplayed(myKey);\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\t// keep track of snackbars that we've displayed\r\n\t\t\tstoreDisplayed(key);\r\n\t\t});\r\n\t}, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default Notifier;\r\n","import { Chart } from 'react-chartjs-2';\r\n\r\n// ChartJS extension rounded bar chart\r\n// https://codepen.io/jedtrow/full/ygRYgo\r\nfunction draw() {\r\n\tconst { ctx } = this._chart;\r\n\tconst vm = this._view;\r\n\tlet { borderWidth } = vm;\r\n\r\n\tlet left;\r\n\tlet right;\r\n\tlet top;\r\n\tlet bottom;\r\n\tlet signX;\r\n\tlet signY;\r\n\tlet borderSkipped;\r\n\tlet radius;\r\n\r\n\t// If radius is less than 0 or is large enough to cause drawing errors a max\r\n\t// radius is imposed. If cornerRadius is not defined set it to 0.\r\n\tlet { cornerRadius } = this._chart.config.options;\r\n\tif (cornerRadius < 0) {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (typeof cornerRadius === 'undefined') {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (!vm.horizontal) {\r\n\t\t// bar\r\n\t\tleft = vm.x - vm.width / 2;\r\n\t\tright = vm.x + vm.width / 2;\r\n\t\ttop = vm.y;\r\n\t\tbottom = vm.base;\r\n\t\tsignX = 1;\r\n\t\tsignY = bottom > top ? 1 : -1;\r\n\t\tborderSkipped = vm.borderSkipped || 'bottom';\r\n\t} else {\r\n\t\t// horizontal bar\r\n\t\tleft = vm.base;\r\n\t\tright = vm.x;\r\n\t\ttop = vm.y - vm.height / 2;\r\n\t\tbottom = vm.y + vm.height / 2;\r\n\t\tsignX = right > left ? 1 : -1;\r\n\t\tsignY = 1;\r\n\t\tborderSkipped = vm.borderSkipped || 'left';\r\n\t}\r\n\r\n\t// Canvas doesn't allow us to stroke inside the width so we can\r\n\t// adjust the sizes to fit if we're setting a stroke on the line\r\n\tif (borderWidth) {\r\n\t\t// borderWidth shold be less than bar width and bar height.\r\n\t\tconst barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n\t\tconst halfStroke = borderWidth / 2;\r\n\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\r\n\t\tconst borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n\t\tconst borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n\t\tconst borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n\t\tconst borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n\t\t// not become a vertical line?\r\n\t\tif (borderLeft !== borderRight) {\r\n\t\t\ttop = borderTop;\r\n\t\t\tbottom = borderBottom;\r\n\t\t}\r\n\t\t// not become a horizontal line?\r\n\t\tif (borderTop !== borderBottom) {\r\n\t\t\tleft = borderLeft;\r\n\t\t\tright = borderRight;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.fillStyle = vm.backgroundColor;\r\n\tctx.strokeStyle = vm.borderColor;\r\n\tctx.lineWidth = borderWidth;\r\n\r\n\t// Corner points, from bottom-left to bottom-right clockwise\r\n\t// | 1 2 |\r\n\t// | 0 3 |\r\n\tconst corners = [\r\n\t\t[left, bottom],\r\n\t\t[left, top],\r\n\t\t[right, top],\r\n\t\t[right, bottom],\r\n\t];\r\n\r\n\t// Find first (starting) corner with fallback to 'bottom'\r\n\tconst borders = ['bottom', 'left', 'top', 'right'];\r\n\tlet startCorner = borders.indexOf(borderSkipped, 0);\r\n\tif (startCorner === -1) {\r\n\t\tstartCorner = 0;\r\n\t}\r\n\r\n\tfunction cornerAt(index) {\r\n\t\treturn corners[(startCorner + index) % 4];\r\n\t}\r\n\r\n\t// Draw rectangle from 'startCorner'\r\n\tlet corner = cornerAt(0);\r\n\tctx.moveTo(corner[0], corner[1]);\r\n\r\n\tfor (let i = 1; i < 4; i += 1) {\r\n\t\tcorner = cornerAt(i);\r\n\t\tlet nextCornerId = i + 1;\r\n\t\tif (nextCornerId === 4) {\r\n\t\t\tnextCornerId = 0;\r\n\t\t}\r\n\r\n\t\tconst width = corners[2][0] - corners[1][0];\r\n\t\tconst height = corners[0][1] - corners[1][1];\r\n\t\tconst x = corners[1][0];\r\n\t\tconst y = corners[1][1];\r\n\r\n\t\tradius = cornerRadius;\r\n\t\t// Fix radius being too large\r\n\t\tif (radius > Math.abs(height) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(height) / 2);\r\n\t\t}\r\n\t\tif (radius > Math.abs(width) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(width) / 2);\r\n\t\t}\r\n\r\n\t\tif (height < 0) {\r\n\t\t\t// Negative values in a standard bar chart\r\n\t\t\tconst xTl = x;\r\n\t\t\tconst xTr = x + width;\r\n\t\t\tconst yTl = y + height;\r\n\t\t\tconst yTr = y + height;\r\n\r\n\t\t\tconst xBl = x;\r\n\t\t\tconst xBr = x + width;\r\n\t\t\tconst yBl = y;\r\n\t\t\tconst yBr = y;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else if (width < 0) {\r\n\t\t\t// Negative values in a horizontal bar chart\r\n\t\t\tconst xTl = x + width;\r\n\t\t\tconst xTr = x;\r\n\t\t\tconst yTl = y;\r\n\t\t\tconst yTr = y;\r\n\r\n\t\t\tconst xBl = x + width;\r\n\t\t\tconst xBr = x;\r\n\t\t\tconst yBl = y + height;\r\n\t\t\tconst yBr = y + height;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else {\r\n\t\t\t// Positive Value\r\n\t\t\tctx.moveTo(x + radius, y);\r\n\t\t\tctx.lineTo(x + width - radius, y);\r\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n\t\t\tctx.lineTo(x + width, y + height - radius);\r\n\t\t\tctx.quadraticCurveTo(\r\n\t\t\t\tx + width,\r\n\t\t\t\ty + height,\r\n\t\t\t\tx + width - radius,\r\n\t\t\t\ty + height\r\n\t\t\t);\r\n\t\t\tctx.lineTo(x + radius, y + height);\r\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n\t\t\tctx.lineTo(x, y + radius);\r\n\t\t\tctx.quadraticCurveTo(x, y, x + radius, y);\r\n\t\t}\r\n\t}\r\n\r\n\tctx.fill();\r\n\tif (borderWidth) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n\tdraw,\r\n});\r\n","import moment from 'moment';\r\n\r\nmoment.updateLocale('en', {\r\n\trelativeTime: {\r\n\t\tfuture: 'in %s',\r\n\t\tpast: '%s ago',\r\n\t\ts: 'seconds',\r\n\t\tss: '%ss',\r\n\t\tm: '1m',\r\n\t\tmm: '%dm',\r\n\t\th: '1h',\r\n\t\thh: '%dh',\r\n\t\td: '1d',\r\n\t\tdd: '%dd',\r\n\t\tM: '1M',\r\n\t\tMM: '%dM',\r\n\t\ty: '1Y',\r\n\t\tyy: '%dY',\r\n\t},\r\n});\r\n","/* eslint-disable consistent-return */\r\nimport validate from 'validate.js';\r\n\r\nconst regex = (value, options) => {\r\n\tconst regExp = new RegExp(options.pattern);\r\n\r\n\tif (!regExp.test(value)) {\r\n\t\treturn options.message;\r\n\t}\r\n};\r\n\r\nconst checked = (value, options) => {\r\n\tif (value !== true) {\r\n\t\treturn options.message || 'must be checked';\r\n\t}\r\n};\r\n\r\nvalidate.validators = {\r\n\t...validate.validators,\r\n\tregex,\r\n\tchecked,\r\n};\r\n","import AxiosMockAdapter from 'axios-mock-adapter';\r\n\r\nimport axios from './axios';\r\n\r\nconst instance = new AxiosMockAdapter(axios, { delayResponse: 0 });\r\n\r\nexport default instance;\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/account/profile').reply(200, {\r\n\tprofile: {\r\n\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\tcanHire: false,\r\n\t\tcountry: 'USA',\r\n\t\temail: 'shen.zhi@devias.io',\r\n\t\tfirstName: 'Shen',\r\n\t\tisPublic: true,\r\n\t\tlastName: 'Zhi',\r\n\t\tphone: '+40 777666555',\r\n\t\tstate: 'Alabama',\r\n\t\ttimezone: '4:32PM (GMT-4)',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/statistics').reply(200, {\r\n\tstatistics: {\r\n\t\tpayout: '4,250',\r\n\t\tprojects: '12,500',\r\n\t\tvisitors: '230',\r\n\t\twatching: '5',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '3K - 6K',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/todos').reply(200, {\r\n\ttodos: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment().subtract(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Upload the files for the client @Adrian Stefan with the fonts, assets exported and all the fancy svgs',\r\n\t\t\tdeadline: moment().add(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Re-write the card component with hooks and context',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Send proposal for the fintech project',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Create todo app with react hooks just to get a better understanding of the concept',\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t\tdone: true,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/notifications').reply(200, {\r\n\tnotifications: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New order has been received',\r\n\t\t\ttype: 'order',\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New customer is registered',\r\n\t\t\ttype: 'user',\r\n\t\t\tcreated_at: moment().subtract(1, 'day'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Project has been approved',\r\n\t\t\ttype: 'project',\r\n\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New feature has been added',\r\n\t\t\ttype: 'feature',\r\n\t\t\tcreated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/subscription').reply(200, {\r\n\tsubscription: {\r\n\t\tname: 'Freelancer',\r\n\t\tprice: '5',\r\n\t\tcurrency: '$',\r\n\t\tproposalsLeft: 12,\r\n\t\ttemplatesLeft: 5,\r\n\t\tinvitesLeft: 24,\r\n\t\tadsLeft: 10,\r\n\t\thasAnalytics: true,\r\n\t\thasEmailAlerts: true,\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/settings').reply(200, {\r\n\tsettings: {},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/calendar').reply(200, {\r\n\tdraft: [],\r\n\tevents: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Samantha',\r\n\t\t\tdesc: 'Inform about new contract',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-01 16:55:00'),\r\n\t\t\tend: moment('2019-07-01 17:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Meet with IBM',\r\n\t\t\tdesc: 'Discuss about new partnership',\r\n\t\t\tstart: moment('2019-07-03 08:55:00'),\r\n\t\t\tend: moment('2019-07-04 15:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'SCRUM Planning',\r\n\t\t\tdesc: 'Prepare documentation',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-14 16:55:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Beign SEM',\r\n\t\t\tdesc: 'Meet with team to discuss',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-18 07:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Fire John',\r\n\t\t\tdesc: 'Sorry, John',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-20 08:55:00'),\r\n\t\t\tend: moment('2019-07-20 09:30:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Alex',\r\n\t\t\tdesc: 'Discuss about the new project',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Visit Samantha',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tdesc: 'Get a new quote for the payment processor',\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t\tend: moment('2019-07-30 09:00:00'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/chat/conversations').reply(200, {\r\n\tconversations: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t\tlastActivity: moment(),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(10, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t'I would need to know more details, but my hourly rate stats at $35/hour. Thanks!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Well it's a really easy one, I'm sure we can make it half of the price.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Then why don't you make it if it's that easy? Sorry I'm not interetes, have fantastic day Adam!\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Last offer, $25 per hour',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: '/images/projects/project_1.jpg',\r\n\t\t\t\t\tcontentType: 'image',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey, would you like to collaborate?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(6, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I don't think that's ideal\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 3,\r\n\t\t\tcreated_at: moment().subtract(26, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(2, 'minutes'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hi Shen, we should submit the product today',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Oh, totally forgot about it',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t\t\t.subtract(2, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Alright then',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'hour'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hi Kwak! I've seen your projects and we can work together on a project. Will send you the details later.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha, right, we'll do it\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 1,\r\n\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(4, 'hours'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Did you receive my email about the brief?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I'm not sure, but I will check it later\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey Shen! I love your projects!!!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha thank you Clarke, I'm doing our best\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/chat/activity').reply(200, {\r\n\tgroups: [\r\n\t\t{\r\n\t\t\tid: 'clients',\r\n\t\t\tname: 'Clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'friends',\r\n\t\t\tname: 'Friends',\r\n\t\t},\r\n\t],\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(1, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/management/customers').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'West Virginia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '3',\r\n\t\t\trating: 4.3,\r\n\t\t\tlocation: 'Bristow',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tspent: '2,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Georgia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\temail: 'anje.keizer@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tspent: '5,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '6',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'Ohio, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 3.5,\r\n\t\t\tlocation: 'Texas, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tspent: '5,230.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\temail: 'ava.gregoraci@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\temail: 'emilee.simchenko@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tspent: '100.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '4',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Nevada, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\temail: 'kwak.seong.min@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tspent: '1,000.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '2',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'Michigan, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\temail: 'shen.zhi@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tspent: '2,300.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3.9,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tspent: '200.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '7',\r\n\t\t\trating: 4.2,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/summary').reply(200, {\r\n\tsummary: {\r\n\t\tname: 'Ekaterina Tankova',\r\n\t\temail: 'ekaterina@devias.io',\r\n\t\tphone: '+55 748 327 439',\r\n\t\tstate: 'Alabama',\r\n\t\tcountry: 'United States',\r\n\t\tzipCode: '240355',\r\n\t\taddress1: 'Street John Wick, no. 7',\r\n\t\taddress2: 'House #25',\r\n\t\tiban: '4142 **** **** **** ****',\r\n\t\tautoCC: false,\r\n\t\tverified: true,\r\n\t\tcurrency: '$',\r\n\t\tinvoices: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 15.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'due',\r\n\t\t\t\tvalue: 5,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'income',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t],\r\n\t\tvat: 19,\r\n\t\tbalance: 0,\r\n\t\temails: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(3, 'days')\r\n\t\t\t\t\t.subtract(5, 'hours')\r\n\t\t\t\t\t.subtract(34, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(4, 'days')\r\n\t\t\t\t\t.subtract(11, 'hours')\r\n\t\t\t\t\t.subtract(49, 'minutes'),\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/invoices').reply(200, {\r\n\tinvoices: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/logs').reply(200, {\r\n\tlogs: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 522,\r\n\t\t\terror: 'Invalid credit card',\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'DELETE',\r\n\t\t\troute: '/api/products/d65654e/remove',\r\n\t\t\tdesc: 'Cart remove',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(8, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/d65654e/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(20, 'minutes')\r\n\t\t\t\t.subtract(54, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(34, 'minutes')\r\n\t\t\t\t.subtract(16, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f',\r\n\t\t\tdesc: 'View product',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(54, 'minutes')\r\n\t\t\t\t.subtract(30, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products',\r\n\t\t\tdesc: 'Get products',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(56, 'minutes')\r\n\t\t\t\t.subtract(40, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/login',\r\n\t\t\tdesc: 'Login',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(5, 'seconds'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/mail').reply(200, {\r\n\temails: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Business',\r\n\t\t\t\t\tcolor: colors.blue[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Personal',\r\n\t\t\t\t\tcolor: colors.orange[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tsubject: 'Website redesign. Interested in collaboration',\r\n\t\t\tmessage: `\r\nHi Matt, I saw your work on instagram and would be interested in getting a quote for Logo and slider\r\n\r\nInteger velit massa, pharetra sed lacus eu, pulvinar faucibus ex. Ut pretium ex id turpis elementum, aliquam accumsan enim sollicitudin. Sed nec consectetur lorem, ac ullamcorper augue. Suspendisse tempus ligula suscipit finibus vehicula. Morbi viverra finibus lectus, egestas dictum mi mollis nec. Proin eget vehicula eros, sit amet molestie ipsum. Morbi feugiat, elit non placerat fringilla, leo risus tristique felis, sollicitudin tristique nibh arcu nec arcu. Maecenas vel turpis nibh. Etiam in lectus quis felis facilisis dictum. Morbi id vehicula lectus, vel imperdiet dolor. Phasellus consequat tempor tellus, quis placerat quam posuere eget. Mauris blandit, nisl eu sollicitudin tincidunt, tellus diam accumsan arcu, vel pharetra lectus est nec nisi. In sem dolor, mollis sed risus eu, mattis dictum lectus. Suspendisse urna est, finibus et urna non, tincidunt placerat eros.\r\n\r\nDonec viverra ipsum id auctor rutrum. Morbi consequat a nunc non interdum. Nulla accumsan eget felis a dictum. Cras rhoncus tortor eget velit fringilla suscipit. Donec quis arcu eu nibh aliquet auctor eget fringilla felis. Sed commodo efficitur massa. Proin maximus elit in suscipit laoreet. Integer pretium arcu ac mauris ullamcorper auctor. Vivamus tincidunt lacus eget purus feugiat tincidunt. Etiam feugiat gravida ullamcorper. Pellentesque cursus vehicula lectus et consectetur. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam ligula risus, congue eu pellentesque id, volutpat aliquam arcu. Donec efficitur ipsum id neque rhoncus viverra. Vestibulum hendrerit et eros eu bibendum.\r\n\r\n\r\nKind regards,\r\n\r\nEkaterina Tankova\r\n\t `,\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Amazing work',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tsubject: 'Flight reminder',\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Work',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tmessage:\r\n\t\t\t\t'Dear Shen, Your flight is coming up soon. Please don’t forget to check in for your scheduled flight.',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Posible candidates for the position',\r\n\t\t\tmessage:\r\n\t\t\t\t'My market leading client has another fantastic opportunity for an experienced Software Developer to join them on a heavily remote basis',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 5,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 3,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 8,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 10,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Canceled',\r\n\t\t\tmembers: 2,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Kalli UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 12,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/projects/1').reply(200, {\r\n\tproject: {\r\n\t\ttitle: 'Develop a PDF Export App',\r\n\t\tauthor: {\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tbio: 'We build beautiful functional themes for web professionals',\r\n\t\t},\r\n\t\tbrief: `\r\n#### TL;DR\r\n\r\nThe primary aim of the product is to convert survery responses into PDF reports, these reports are generated on to what we call templates. This product is designer to work with 3rd party survery providers. The first MVP will integrate with TypeForm, because the's no direct way to convert results to PDF from the form people create in TypeForm and then ask users to fill out.\r\n\r\n#### Background information\r\n\r\nDesign files are attachedin the files tab.\r\n\r\nDevelop the web app screens for our product called \"PDFace\". Please look at the wireframes, system activity workflow and read the section above to understand what we're trying to archive.\r\n\r\nThere's not many screens we need designed, but there will be modals and various other system triggered evenets that will need to be considered.\r\n\r\nThe project has benn created in Sketch so let me know if there are any problmes opening this project and I'll try to convert into a usable file.\r\n\r\nI have attached a chat with our users most used devices.\r\n\r\n#### Goals:\r\n - Maintainable Code\r\n - Easy UX\r\n - Readable Code\r\n - No Redux\r\n\t`,\r\n\t\tprice: '12,500',\r\n\t\tcurrency: 'USD',\r\n\t\ttags: [\r\n\t\t\t{\r\n\t\t\t\ttext: 'React JS',\r\n\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t},\r\n\t\t],\r\n\t\tmembers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tbio: 'Front End Developer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tbio: 'UX Designer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\tbio: 'Copyright',\r\n\t\t\t},\r\n\t\t],\r\n\t\tfiles: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project1.jpg',\r\n\t\t\t\turl: '/images/projects/project_2.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 3,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'docs.zip',\r\n\t\t\t\turl: '#',\r\n\t\t\t\tmimeType: 'application/zip',\r\n\t\t\t\tsize: 1024 * 1024 * 25,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project2.jpg',\r\n\t\t\t\turl: '/images/projects/project_1.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 2,\r\n\t\t\t},\r\n\t\t],\r\n\t\tactivities: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'upload_file',\r\n\t\t\t\taction_desc: 'has uploaded a new file',\r\n\t\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Adrian Stefan',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Front-End Developer',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Alexandru Robert',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Full Stack Developer',\r\n\t\t\t\tcreated_at: moment().subtract(9, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'price_change',\r\n\t\t\t\taction_desc: 'raised the project budget',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Contest',\r\n\t\t\t\tsubject_type: 'project',\r\n\t\t\t\taction_type: 'contest_created',\r\n\t\t\t\taction_desc: 'created',\r\n\t\t\t\tcreated_at: moment().subtract(4, 'days'),\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubscribers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tcover: '/images/covers/cover_1.jpg',\r\n\t\t\t\tcommon_connections: 12,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Experience',\r\n\t\t\t\t\t'FrontEnd development',\r\n\t\t\t\t\t'HTML5',\r\n\t\t\t\t\t'VueJS',\r\n\t\t\t\t\t'ReactJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 5,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Interface',\r\n\t\t\t\t\t'FullStack development',\r\n\t\t\t\t\t'Angular',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 17,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'BackEnd development',\r\n\t\t\t\t\t'Firebase',\r\n\t\t\t\t\t'MongoDB',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t],\r\n\t\tdeadline: moment().add(7, 'days'),\r\n\t\tupdated_at: moment().subtract(23, 'minutes'),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/social-feed').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tmessage: \"Hey guys! What's your favorite framework?\",\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 1,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: \"I've been using Angular for the past 3 years\",\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(16, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'Oh... so sentimental',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/users').reply(200, {\r\n\tusers: [],\r\n});\r\n\r\nmock.onGet('/api/users/1/posts').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'It looks nice',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/reviews').reply(200, {\r\n\treviews: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 4,\r\n\t\t\tmessage:\r\n\t\t\t\t'Shen was really great during the all time session we created the project',\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\t\tprice: '5,240.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '43.00',\r\n\t\t\thours: 31,\r\n\t\t\tcurrency: '$',\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 5,\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Dashboard Design',\r\n\t\t\t\tprice: '3,680.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '38.00',\r\n\t\t\thours: 76,\r\n\t\t\tcurrency: '$',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Being the savage's bowsman, that is, the person who pulled the bow-oar in his boat (the second one from forward), it was my cheerful duty to attend upon him while taking that hard-scrabble scramble upon the dead whale's back. You have seen Italian organ-boys holding a dancing-ape by a long cord. Just so, from the ship's steep side, did I hold Queequeg down there in the sea, by what is technically called in the fishery a monkey-rope, attached to a strong strip of canvas belted round his waist.\",\r\n\t\t\tcreated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/connections').reply(200, {\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tcommon: 12,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tcommon: 10,\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tcommon: 8,\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tcommon: 5,\r\n\t\t\tstatus: 'not_connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tcommon: 1,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/invoices').reply(200, {\r\n\tinvoices: [],\r\n});\r\n\r\nmock.onGet('/api/invoices/1').reply(200, {\r\n\tinvoice: {\r\n\t\tid: uuid(),\r\n\t\tdue_date: moment(),\r\n\t\tissue_date: moment().add(15, 'days'),\r\n\t\tref: 'DEV-9483',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Tracey Herman',\r\n\t\t\tcompany: 'Countdown Grey Lynn',\r\n\t\t\tnzbn: '6934656584231',\r\n\t\t\taddress: '271 Richmond Rd, Grey Lynn, Auckland 1022, New Zealand',\r\n\t\t},\r\n\t\tproducts: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdesc: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\t\tvalue: '55.50',\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubtotal: '50.00',\r\n\t\ttaxes: '5.50',\r\n\t\ttotal: '55.50',\r\n\t\tcurrency: '$',\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/kanban').reply(200, {\r\n\tlists: [\r\n\t\t{\r\n\t\t\tid: 'incoming',\r\n\t\t\ttitle: 'Incoming',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_progress',\r\n\t\t\ttitle: 'In progress',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_review',\r\n\t\t\ttitle: 'In review',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'completed',\r\n\t\t\ttitle: 'Completed',\r\n\t\t},\r\n\t],\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '38',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Call with sales of HubSpot',\r\n\t\t\tdesc:\r\n\t\t\t\t'Duis condimentum lacus finibus felis pellentesque, ac auctor nibh fermentum. Duis sed dui ante. Phasellus id eros tincidunt, dictum lorem vitae, pellentesque sem. Aenean eu enim sit amet mauris rhoncus mollis. Sed enim turpis, porta a felis et, luctus faucibus nisi. Phasellus et metus fermentum, ultrices arcu aliquam, facilisis justo. Cras nunc nunc, elementum sed euismod ut, maximus eget nibh. Phasellus condimentum lorem neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce sagittis pharetra eleifend. Suspendisse potenti.',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_1.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '37',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Interview for the Asis. Sales Manager',\r\n\t\t\tdesc:\r\n\t\t\t\t'We are looking for vue experience and of course node js strong knowledge',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(6, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '39',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_11.png'],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '19',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(4, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '15',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Update the customer API for payments',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_10.png'],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 60,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '10',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_11.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 76,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '24',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '21',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '17',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Design Customer Management Page',\r\n\t\t\tdesc:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 3,\r\n\t\t\tcomments: 3,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '23',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Integrate Messaging API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 1,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/tasks').reply(200, {\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Update the API for the project',\r\n\t\t\tdeadline: moment().add(1, 'days').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_7.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdeadline: moment().add(2, 'day').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_12.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Solve the bug for the showState',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tmembers: ['/images/avatars/avatar_7.png'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Release v1.0 Beta',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'GDPR Compliance',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign Landing Page',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: ['/images/avatars/avatar_8.png'],\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(10, 'minutes'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD103',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(32, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD102',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(36, 'minutes')\r\n\t\t\t\t.subtract(51, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD101',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(38, 'minutes')\r\n\t\t\t\t.subtract(55, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD100',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(40, 'minutes').subtract(3, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD99',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(45, 'minutes')\r\n\t\t\t\t.subtract(32, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD98',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(48, 'minutes')\r\n\t\t\t\t.subtract(57, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD97',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(49, 'minutes').subtract(4, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD96',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD95',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'rejected',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(59, 'minutes').subtract(6, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD94',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t.subtract(15, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD93',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/orders/1').reply(200, {\r\n\torder: {\r\n\t\tid: uuid(),\r\n\t\tref: 'FAD107',\r\n\t\tpromoCode: null,\r\n\t\tvalue: '55.25',\r\n\t\tcurrency: '$',\r\n\t\tstatus: 'canceled',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\taddress: 'Street King William, 42456',\r\n\t\t\tcity: 'Montgomery',\r\n\t\t\tcountry: 'United States',\r\n\t\t},\r\n\t\titems: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Project Points',\r\n\t\t\t\tcuantity: 25,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '50.25',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Freelancer Subscription',\r\n\t\t\t\tcuantity: 1,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '5.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t],\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/dashboard/top-referrals').reply(200, {\r\n\treferrals: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['700'],\r\n\t\t\tname: 'GitHub',\r\n\t\t\tinitials: 'GT',\r\n\t\t\tvalue: '53,032',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.cyan['500'],\r\n\t\t\tname: 'Twitter',\r\n\t\t\tinitials: 'TW',\r\n\t\t\tvalue: '39,551',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.indigo[600],\r\n\t\t\tname: 'Hacker News',\r\n\t\t\tinitials: 'HN',\r\n\t\t\tvalue: '23,150',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.red['500'],\r\n\t\t\tname: 'Stack Overflow',\r\n\t\t\tinitials: 'SO',\r\n\t\t\tvalue: '14,093',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.orange['900'],\r\n\t\t\tname: 'Reddit.com',\r\n\t\t\tinitials: 'RD',\r\n\t\t\tvalue: '7,251',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Dev.to',\r\n\t\t\tinitials: 'DE',\r\n\t\t\tvalue: '5,694',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blue['900'],\r\n\t\t\tname: 'Facebook',\r\n\t\t\tinitials: 'FB',\r\n\t\t\tvalue: '3,643',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Medium',\r\n\t\t\tinitials: 'MD',\r\n\t\t\tvalue: '1,654',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/profitable-products').reply(200, {\r\n\tproducts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_basic',\r\n\t\t\tname: 'Freelancer Basic Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '13,153',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '5.00',\r\n\t\t\tprogress: 93,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_extra',\r\n\t\t\tname: 'Freelancer Extra Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '10,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '15.00',\r\n\t\t\tprogress: 76,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'agency_basic',\r\n\t\t\tname: 'Agency Basic Subscription',\r\n\t\t\timage: '/images/products/product_agency.svg',\r\n\t\t\tsubscriptions: '5,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '25.00',\r\n\t\t\tprogress: 60,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_basic',\r\n\t\t\tname: 'Enterprise Basic Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '1,203',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '205.00',\r\n\t\t\tprogress: 46,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_extra',\r\n\t\t\tname: 'Enterprise Extra Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '254',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '500.00',\r\n\t\t\tprogress: 41,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/customer-activity').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(56, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/earnings').reply(200, {\r\n\tearnings: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Subscriptions',\r\n\t\t\tvalue: 56,\r\n\t\t\tcolor: colors.indigo[500],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Afiliate',\r\n\t\t\tvalue: 24,\r\n\t\t\tcolor: colors.indigo[300],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Sales',\r\n\t\t\tvalue: 20,\r\n\t\t\tcolor: colors.indigo[100],\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1042',\r\n\t\t\titems: 7,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1041',\r\n\t\t\titems: 8,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1040',\r\n\t\t\titems: 4,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1039',\r\n\t\t\titems: 1,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\temail: 'anje.keiser@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1038',\r\n\t\t\titems: 5,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1037',\r\n\t\t\titems: 2,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t],\r\n});\r\n","import React from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { createBrowserHistory } from 'history';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport { Provider as StoreProvider } from 'react-redux';\r\nimport { StyledEngineProvider, ThemeProvider } from '@mui/material/styles';\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport jwt from 'jwt-decode';\r\nimport { DateEnv } from '@fullcalendar/core';\r\nimport config from 'configuration/configuration.js';\r\nimport theme from './theme';\r\nimport { configureStore } from './store';\r\nimport routes from './routes';\r\nimport { getUserInfo } from './actions';\r\nimport { Loading, ScrollReset, GoogleAnalytics, CookiesNotification } from './components';\r\nimport Notifier from './components/Notifier/Notifier';\r\nimport './mixins/chartjs';\r\nimport './mixins/moment';\r\nimport './mixins/validate';\r\nimport './mixins/prismjs';\r\nimport './mock';\r\nimport './assets/scss/index.scss';\r\n\r\nimport { interceptor } from './utils/AxiosRequest';\r\n\r\nconst history = createBrowserHistory({ basename: process.env.PUBLIC_URL });\r\nconst store = configureStore();\r\ninterceptor(store);\r\n\r\nconst App = () => {\r\n\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\tif (token) {\r\n\t\tconst decoded = jwt(token);\r\n\t\tconst currentDate = new Date().getTime() / 1000;\r\n\t\tif (decoded.exp > currentDate) {\r\n\t\t\tstore.dispatch(getUserInfo(token));\r\n\t\t}\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderRoutes(routes)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default App;\r\n","import { applyMiddleware, createStore, compose } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\n// import { createLogger } from 'redux-logger';\r\nimport rootReducer from 'reducers';\r\n// const loggerMiddleware = createLogger();\r\n\r\nexport default function configureStore(preloadedState = {}) {\r\n\tconst middlewares = [thunkMiddleware]; // loggerMiddleware\r\n\tconst middlewareEnhancer = composeWithDevTools(\r\n\t\tapplyMiddleware(...middlewares)\r\n\t);\r\n\r\n\tconst enhancers = [middlewareEnhancer];\r\n\tconst composedEnhancers = compose(...enhancers);\r\n\r\n\tconst store = createStore(rootReducer, preloadedState, composedEnhancers);\r\n\r\n\treturn store;\r\n}\r\n","/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in projection, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n\twindow.location.hostname === 'localhost'\r\n\t// [::1] is the IPv6 localhost address.\r\n\t|| window.location.hostname === '[::1]'\r\n\t// 127.0.0.1/8 is considered localhost for IPv4.\r\n\t|| window.location.hostname.match(\r\n\t\t/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n\t)\r\n);\r\n\r\nexport function register(config) {\r\n\tif (process.env.NODE_ENV === 'projection' && 'serviceWorker' in navigator) {\r\n\t\t// The URL constructor is available in all browsers that support SW.\r\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n\t\tif (publicUrl.origin !== window.location.origin) {\r\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\r\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\r\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('load', () => {\r\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n\t\t\tif (isLocalhost) {\r\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\r\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\r\n\r\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\r\n\t\t\t\t// service worker/PWA documentation.\r\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t'This web app is being served cache-first by a service '\r\n\t\t\t\t\t\t+ 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Is not localhost. Just register service worker\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n\tnavigator.serviceWorker\r\n\t\t.register(swUrl)\r\n\t\t.then((registration) => {\r\n\t\t\tregistration.onupdatefound = () => {\r\n\t\t\t\tconst installingWorker = registration.installing;\r\n\t\t\t\tif (installingWorker == null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tinstallingWorker.onstatechange = () => {\r\n\t\t\t\t\tif (installingWorker.state === 'installed') {\r\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\r\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\r\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\r\n\t\t\t\t\t\t\t// content until all client tabs are closed.\r\n\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t'New content is available and will be used when all '\r\n\t\t\t\t\t\t\t\t+ 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\r\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// At this point, everything has been precached.\r\n\t\t\t\t\t\t\t// It's the perfect time to display a\r\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\r\n\t\t\t\t\t\t\tconsole.log('Content is cached for offline use.');\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\r\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tconsole.error('Error during service worker registration:', error);\r\n\t\t});\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n\t// Check if the service worker can be found. If it can't reload the page.\r\n\tfetch(swUrl)\r\n\t\t.then((response) => {\r\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\r\n\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\tif (\r\n\t\t\t\tresponse.status === 404\r\n\t\t\t\t|| (contentType != null\r\n\t\t\t\t\t&& contentType.indexOf('javascript') === -1)\r\n\t\t\t) {\r\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\r\n\t\t\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\t\t\tregistration.unregister().then(() => {\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Service worker found. Proceed as normal.\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(() => {\r\n\t\t\tconsole.log(\r\n\t\t\t\t'No internet connection found. App is running in offline mode.'\r\n\t\t\t);\r\n\t\t});\r\n}\r\n\r\nexport function unregister() {\r\n\tif ('serviceWorker' in navigator) {\r\n\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\tregistration.unregister();\r\n\t\t});\r\n\t}\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.unregister();\r\n","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, { 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 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","const config = {\r\n\tAPI_URL: process.env.REACT_APP_API_URL,\r\n\tTOKEN_KEY: process.env.REACT_APP_TOKEN_KEY,\r\n};\r\n\r\nexport default config;\r\n","import React, { 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, { 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 _ 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 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 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, { 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 { useContext } from 'react';\r\nimport { __RouterContext } from 'react-router';\r\n\r\nexport default () => useContext(__RouterContext);\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\nexport const SET_DOWNLOADS = 'SET_DOWNLOADS';\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\nconst onSetDownloads = (downloads, downloadskey) => ({\r\n\ttype: SET_DOWNLOADS,\r\n\tdownloads,\r\n\tdownloadskey\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 FetchDownloads = (userId, key) => 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/GetDownloads`,\r\n\t\t\t\tparams: { userId, key },\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(onSetDownloads(response.data, key));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const NotificationMarkAsRead = (id) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'PUT',\r\n\t\t\t\turl: `${config.API_URL}Notification/MarkAsRead/${id}`,\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(FetchNotifications());\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const SetLoading = (isLoading) => dispatch => {\r\n\tdispatch(onSetLoading(isLoading));\r\n};\r\n\r\nexport const UploadFile = (file) => {\r\n\tconst formData = new FormData();\r\n\tformData.append('file', file);\r\n\treturn AxiosRequest({\r\n\t\tmethod: 'POST',\r\n\t\turl: `${config.API_URL}File/Upload`,\r\n\t\tdata: formData,\r\n\t\theaders: {\r\n\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst ShowFile = (response) => {\r\n\tconst blob = response.data;\r\n\tconst filename = decodeURIComponent(response.headers['content-disposition'].split('\\'')[2]);\r\n\t// It is necessary to create a new blob object with mime-type\r\n\t// explicitly set otherwise only Chrome works like it should\r\n\tconst newBlob = new Blob([blob], { type: 'application/force-download' });\r\n\r\n\t// IE doesn't allow using a blob object directly as link href\r\n\t// instead it is necessary to use msSaveOrOpenBlob\r\n\tif (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n\t\twindow.navigator.msSaveOrOpenBlob(newBlob);\r\n\t\treturn;\r\n\t}\r\n\r\n\t// For other browsers:\r\n\t// Create a link pointing to the ObjectURL containing the blob.\r\n\tconst data = window.URL.createObjectURL(newBlob);\r\n\tconst link = document.createElement('a');\r\n\tlink.href = data;\r\n\tlink.download = filename;\r\n\tdocument.body.appendChild(link);\r\n\tlink.click();\r\n\tsetTimeout(() => {\r\n\t\t// For Firefox it is necessary to delay revoking the ObjectURL\r\n\t\tdocument.body.removeChild(link);\r\n\t\twindow.URL.revokeObjectURL(data);\r\n\t}, 100);\r\n};\r\n\r\nexport const DownloadFile = (filePath) => async dispatch => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: `${config.API_URL}File/Download?file=${filePath}`,\r\n\t\t\t\tresponseType: 'blob'\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tShowFile(response);\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n"],"sourceRoot":""}