{"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","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/Reports.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/WeeklyReport/requests/WeeklyReportRequests.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","routes.js","components/Notifier/Notifier.js","mixins/chartjs.js","mixins/moment.js","mixins/validate.js","utils/mock.js","mock/accountMock.js","mock/calendarMock.js","mock/chatMock.js","mock/customerMock.js","mock/mailMock.js","mock/projectMock.js","mock/socialFeedMock.js","mock/userMock.js","mock/invoiceMock.js","mock/kanbanMock.js","mock/taskMock.js","mock/orderMock.js","mock/dashboardMock.js","App.js","store/configureStore.js","serviceWorker.js","index.js","components/SelectField/SelectField.js","utils/getInitials.js","actions/notifierActions.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","selectedStreetScapeId","streetScapeDialogVisibility","siteLocalDropdown","siteClusterDropdown","activationStatusDropdown","d7StatusDropdown","streetScapeTrackerReducer","streetScapeTracker","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","TrackChangesIcon","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","Reports","isUndefined","toString","Autocomplete","getOptionLabel","option","siteDZ","renderInput","multiple","disableCloseOnSelect","infoButton","WeeklyReportTable","customFilterListOptions","render","v","generate_weekly","WeeklyReport","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","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","rescheduledDate","currentStatus","Comments","multiline","minRows","InputLabelProps","shrink","d1ReportOwner","d1ReportStatusDate","d1Status","D1PCVReportComments","d1PCVReportComments","D1BISReportComments","d1BISReportComments","d7ReportOwner","d7ReportStatusDate","d7Status","D7PCVReportComments","d7PCVReportComments","D7NewCellsReportComments","d7NewCellsReportComments","ttoSubmitDate","ttoApprovedDate","titleTypographyProps","Stack","SiteTrackerDialog","selectedSite","obj","ImportSiteTrackerModal","acceptedTypes","upload","UploadTrackerFiles","popover","pointerEvents","_onExportTrackerClick","StreetScapeTrackerTable","streetScapeIdToRemove","setStreetScapeTrackerIdToRemove","RemoveStreetScapeEntry","StreetScapeTrackerDialogFormCreate","StreetScapeTrackerDialogFormEdit","SreetScapeTrackerDialog","StreetScapeTracker","StreetScapeTrackerDialog","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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","file":"static/js/main.09e42615.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 { 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\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});\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/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/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: '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: '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: '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 Reports = () => {\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 Reports;\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 config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetWeeklyReportTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}ReportKpis/GetWeeklyReportTable`\r\n});\r\n\r\nexport const GenerateWeeklyReportRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}ReportKpis/GenerateWeeklyReport`,\r\n\tparams: {}\r\n});\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 _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 Done' || 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}\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\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\t// const _onReportEmailClick = (streetScapeTrackerId) => {\r\n\t// \t// dispatch(GetReportEmail(streetScapeTrackerId, user.id));\r\n\t// };\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 Done' || 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 } 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 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\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\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\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\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\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{/* 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 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')}\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","/* 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 Reports from './views/ReportKpis/components/Reports/Reports.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\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/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: Reports()\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/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\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\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/management',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Operators()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators/details',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: OperatorDetails()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/users',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Users(),\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/settings',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\tchildren: Settings()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\r\n\t},\r\n\t{\r\n\t\tpath: '/auth',\r\n\t\tcomponent: AuthLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/login',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/Login')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/completeregistration',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/CompleteRegistration')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/resetpassword',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/ResetPassword')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/recover',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/Recover')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/recoverconfirmation',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/RecoverConfirmation')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tcomponent: () => ,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\tpath: '/errors',\r\n\t\tcomponent: ErrorLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-401',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error401')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-404',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error404')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-500',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error500')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tcomponent: () => ,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport default routes;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useSnackbar } from 'notistack';\r\nimport { removeSnackbar } from 'actions';\r\n\r\nlet displayed = [];\r\n\r\nconst Notifier = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst notifications = useSelector(store => store.notifierReducer.notifications || []);\r\n\tconst { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n\tconst storeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed, id];\r\n\t};\r\n\r\n\tconst removeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed.filter(key => id !== key)];\r\n\t};\r\n\r\n\tReact.useEffect(() => {\r\n\t\tnotifications.forEach(({ key, message, options = {}, dismissed = false }) => {\r\n\t\t\tif (dismissed) {\r\n\t\t\t\t// dismiss snackbar using notistack\r\n\t\t\t\tcloseSnackbar(key);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// do nothing if snackbar is already displayed\r\n\t\t\tif (displayed.includes(key)) return;\r\n\r\n\t\t\t// display snackbar using notistack\r\n\t\t\tenqueueSnackbar(message, {\r\n\t\t\t\tkey,\r\n\t\t\t\t...options,\r\n\t\t\t\tonClose: (event, reason, myKey) => {\r\n\t\t\t\t\tif (options.onClose) {\r\n\t\t\t\t\t\toptions.onClose(event, reason, myKey);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tonExited: (event, myKey) => {\r\n\t\t\t\t\t// remove this snackbar from redux store\r\n\t\t\t\t\tdispatch(removeSnackbar(myKey));\r\n\t\t\t\t\tremoveDisplayed(myKey);\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\t// keep track of snackbars that we've displayed\r\n\t\t\tstoreDisplayed(key);\r\n\t\t});\r\n\t}, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default Notifier;\r\n","import { Chart } from 'react-chartjs-2';\r\n\r\n// ChartJS extension rounded bar chart\r\n// https://codepen.io/jedtrow/full/ygRYgo\r\nfunction draw() {\r\n\tconst { ctx } = this._chart;\r\n\tconst vm = this._view;\r\n\tlet { borderWidth } = vm;\r\n\r\n\tlet left;\r\n\tlet right;\r\n\tlet top;\r\n\tlet bottom;\r\n\tlet signX;\r\n\tlet signY;\r\n\tlet borderSkipped;\r\n\tlet radius;\r\n\r\n\t// If radius is less than 0 or is large enough to cause drawing errors a max\r\n\t// radius is imposed. If cornerRadius is not defined set it to 0.\r\n\tlet { cornerRadius } = this._chart.config.options;\r\n\tif (cornerRadius < 0) {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (typeof cornerRadius === 'undefined') {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (!vm.horizontal) {\r\n\t\t// bar\r\n\t\tleft = vm.x - vm.width / 2;\r\n\t\tright = vm.x + vm.width / 2;\r\n\t\ttop = vm.y;\r\n\t\tbottom = vm.base;\r\n\t\tsignX = 1;\r\n\t\tsignY = bottom > top ? 1 : -1;\r\n\t\tborderSkipped = vm.borderSkipped || 'bottom';\r\n\t} else {\r\n\t\t// horizontal bar\r\n\t\tleft = vm.base;\r\n\t\tright = vm.x;\r\n\t\ttop = vm.y - vm.height / 2;\r\n\t\tbottom = vm.y + vm.height / 2;\r\n\t\tsignX = right > left ? 1 : -1;\r\n\t\tsignY = 1;\r\n\t\tborderSkipped = vm.borderSkipped || 'left';\r\n\t}\r\n\r\n\t// Canvas doesn't allow us to stroke inside the width so we can\r\n\t// adjust the sizes to fit if we're setting a stroke on the line\r\n\tif (borderWidth) {\r\n\t\t// borderWidth shold be less than bar width and bar height.\r\n\t\tconst barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n\t\tconst halfStroke = borderWidth / 2;\r\n\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\r\n\t\tconst borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n\t\tconst borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n\t\tconst borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n\t\tconst borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n\t\t// not become a vertical line?\r\n\t\tif (borderLeft !== borderRight) {\r\n\t\t\ttop = borderTop;\r\n\t\t\tbottom = borderBottom;\r\n\t\t}\r\n\t\t// not become a horizontal line?\r\n\t\tif (borderTop !== borderBottom) {\r\n\t\t\tleft = borderLeft;\r\n\t\t\tright = borderRight;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.fillStyle = vm.backgroundColor;\r\n\tctx.strokeStyle = vm.borderColor;\r\n\tctx.lineWidth = borderWidth;\r\n\r\n\t// Corner points, from bottom-left to bottom-right clockwise\r\n\t// | 1 2 |\r\n\t// | 0 3 |\r\n\tconst corners = [\r\n\t\t[left, bottom],\r\n\t\t[left, top],\r\n\t\t[right, top],\r\n\t\t[right, bottom],\r\n\t];\r\n\r\n\t// Find first (starting) corner with fallback to 'bottom'\r\n\tconst borders = ['bottom', 'left', 'top', 'right'];\r\n\tlet startCorner = borders.indexOf(borderSkipped, 0);\r\n\tif (startCorner === -1) {\r\n\t\tstartCorner = 0;\r\n\t}\r\n\r\n\tfunction cornerAt(index) {\r\n\t\treturn corners[(startCorner + index) % 4];\r\n\t}\r\n\r\n\t// Draw rectangle from 'startCorner'\r\n\tlet corner = cornerAt(0);\r\n\tctx.moveTo(corner[0], corner[1]);\r\n\r\n\tfor (let i = 1; i < 4; i += 1) {\r\n\t\tcorner = cornerAt(i);\r\n\t\tlet nextCornerId = i + 1;\r\n\t\tif (nextCornerId === 4) {\r\n\t\t\tnextCornerId = 0;\r\n\t\t}\r\n\r\n\t\tconst width = corners[2][0] - corners[1][0];\r\n\t\tconst height = corners[0][1] - corners[1][1];\r\n\t\tconst x = corners[1][0];\r\n\t\tconst y = corners[1][1];\r\n\r\n\t\tradius = cornerRadius;\r\n\t\t// Fix radius being too large\r\n\t\tif (radius > Math.abs(height) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(height) / 2);\r\n\t\t}\r\n\t\tif (radius > Math.abs(width) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(width) / 2);\r\n\t\t}\r\n\r\n\t\tif (height < 0) {\r\n\t\t\t// Negative values in a standard bar chart\r\n\t\t\tconst xTl = x;\r\n\t\t\tconst xTr = x + width;\r\n\t\t\tconst yTl = y + height;\r\n\t\t\tconst yTr = y + height;\r\n\r\n\t\t\tconst xBl = x;\r\n\t\t\tconst xBr = x + width;\r\n\t\t\tconst yBl = y;\r\n\t\t\tconst yBr = y;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else if (width < 0) {\r\n\t\t\t// Negative values in a horizontal bar chart\r\n\t\t\tconst xTl = x + width;\r\n\t\t\tconst xTr = x;\r\n\t\t\tconst yTl = y;\r\n\t\t\tconst yTr = y;\r\n\r\n\t\t\tconst xBl = x + width;\r\n\t\t\tconst xBr = x;\r\n\t\t\tconst yBl = y + height;\r\n\t\t\tconst yBr = y + height;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else {\r\n\t\t\t// Positive Value\r\n\t\t\tctx.moveTo(x + radius, y);\r\n\t\t\tctx.lineTo(x + width - radius, y);\r\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n\t\t\tctx.lineTo(x + width, y + height - radius);\r\n\t\t\tctx.quadraticCurveTo(\r\n\t\t\t\tx + width,\r\n\t\t\t\ty + height,\r\n\t\t\t\tx + width - radius,\r\n\t\t\t\ty + height\r\n\t\t\t);\r\n\t\t\tctx.lineTo(x + radius, y + height);\r\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n\t\t\tctx.lineTo(x, y + radius);\r\n\t\t\tctx.quadraticCurveTo(x, y, x + radius, y);\r\n\t\t}\r\n\t}\r\n\r\n\tctx.fill();\r\n\tif (borderWidth) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n\tdraw,\r\n});\r\n","import moment from 'moment';\r\n\r\nmoment.updateLocale('en', {\r\n\trelativeTime: {\r\n\t\tfuture: 'in %s',\r\n\t\tpast: '%s ago',\r\n\t\ts: 'seconds',\r\n\t\tss: '%ss',\r\n\t\tm: '1m',\r\n\t\tmm: '%dm',\r\n\t\th: '1h',\r\n\t\thh: '%dh',\r\n\t\td: '1d',\r\n\t\tdd: '%dd',\r\n\t\tM: '1M',\r\n\t\tMM: '%dM',\r\n\t\ty: '1Y',\r\n\t\tyy: '%dY',\r\n\t},\r\n});\r\n","/* eslint-disable consistent-return */\r\nimport validate from 'validate.js';\r\n\r\nconst regex = (value, options) => {\r\n\tconst regExp = new RegExp(options.pattern);\r\n\r\n\tif (!regExp.test(value)) {\r\n\t\treturn options.message;\r\n\t}\r\n};\r\n\r\nconst checked = (value, options) => {\r\n\tif (value !== true) {\r\n\t\treturn options.message || 'must be checked';\r\n\t}\r\n};\r\n\r\nvalidate.validators = {\r\n\t...validate.validators,\r\n\tregex,\r\n\tchecked,\r\n};\r\n","import AxiosMockAdapter from 'axios-mock-adapter';\r\n\r\nimport axios from './axios';\r\n\r\nconst instance = new AxiosMockAdapter(axios, { delayResponse: 0 });\r\n\r\nexport default instance;\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/account/profile').reply(200, {\r\n\tprofile: {\r\n\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\tcanHire: false,\r\n\t\tcountry: 'USA',\r\n\t\temail: 'shen.zhi@devias.io',\r\n\t\tfirstName: 'Shen',\r\n\t\tisPublic: true,\r\n\t\tlastName: 'Zhi',\r\n\t\tphone: '+40 777666555',\r\n\t\tstate: 'Alabama',\r\n\t\ttimezone: '4:32PM (GMT-4)',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/statistics').reply(200, {\r\n\tstatistics: {\r\n\t\tpayout: '4,250',\r\n\t\tprojects: '12,500',\r\n\t\tvisitors: '230',\r\n\t\twatching: '5',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '3K - 6K',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/todos').reply(200, {\r\n\ttodos: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment().subtract(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Upload the files for the client @Adrian Stefan with the fonts, assets exported and all the fancy svgs',\r\n\t\t\tdeadline: moment().add(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Re-write the card component with hooks and context',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Send proposal for the fintech project',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Create todo app with react hooks just to get a better understanding of the concept',\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t\tdone: true,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/notifications').reply(200, {\r\n\tnotifications: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New order has been received',\r\n\t\t\ttype: 'order',\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New customer is registered',\r\n\t\t\ttype: 'user',\r\n\t\t\tcreated_at: moment().subtract(1, 'day'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Project has been approved',\r\n\t\t\ttype: 'project',\r\n\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New feature has been added',\r\n\t\t\ttype: 'feature',\r\n\t\t\tcreated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/subscription').reply(200, {\r\n\tsubscription: {\r\n\t\tname: 'Freelancer',\r\n\t\tprice: '5',\r\n\t\tcurrency: '$',\r\n\t\tproposalsLeft: 12,\r\n\t\ttemplatesLeft: 5,\r\n\t\tinvitesLeft: 24,\r\n\t\tadsLeft: 10,\r\n\t\thasAnalytics: true,\r\n\t\thasEmailAlerts: true,\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/settings').reply(200, {\r\n\tsettings: {},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/calendar').reply(200, {\r\n\tdraft: [],\r\n\tevents: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Samantha',\r\n\t\t\tdesc: 'Inform about new contract',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-01 16:55:00'),\r\n\t\t\tend: moment('2019-07-01 17:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Meet with IBM',\r\n\t\t\tdesc: 'Discuss about new partnership',\r\n\t\t\tstart: moment('2019-07-03 08:55:00'),\r\n\t\t\tend: moment('2019-07-04 15:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'SCRUM Planning',\r\n\t\t\tdesc: 'Prepare documentation',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-14 16:55:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Beign SEM',\r\n\t\t\tdesc: 'Meet with team to discuss',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-18 07:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Fire John',\r\n\t\t\tdesc: 'Sorry, John',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-20 08:55:00'),\r\n\t\t\tend: moment('2019-07-20 09:30:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Alex',\r\n\t\t\tdesc: 'Discuss about the new project',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Visit Samantha',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tdesc: 'Get a new quote for the payment processor',\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t\tend: moment('2019-07-30 09:00:00'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/chat/conversations').reply(200, {\r\n\tconversations: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t\tlastActivity: moment(),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(10, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t'I would need to know more details, but my hourly rate stats at $35/hour. Thanks!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Well it's a really easy one, I'm sure we can make it half of the price.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Then why don't you make it if it's that easy? Sorry I'm not interetes, have fantastic day Adam!\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Last offer, $25 per hour',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: '/images/projects/project_1.jpg',\r\n\t\t\t\t\tcontentType: 'image',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey, would you like to collaborate?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(6, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I don't think that's ideal\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 3,\r\n\t\t\tcreated_at: moment().subtract(26, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(2, 'minutes'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hi Shen, we should submit the product today',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Oh, totally forgot about it',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t\t\t.subtract(2, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Alright then',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'hour'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hi Kwak! I've seen your projects and we can work together on a project. Will send you the details later.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha, right, we'll do it\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 1,\r\n\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(4, 'hours'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Did you receive my email about the brief?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I'm not sure, but I will check it later\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey Shen! I love your projects!!!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha thank you Clarke, I'm doing our best\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/chat/activity').reply(200, {\r\n\tgroups: [\r\n\t\t{\r\n\t\t\tid: 'clients',\r\n\t\t\tname: 'Clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'friends',\r\n\t\t\tname: 'Friends',\r\n\t\t},\r\n\t],\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(1, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/management/customers').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'West Virginia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '3',\r\n\t\t\trating: 4.3,\r\n\t\t\tlocation: 'Bristow',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tspent: '2,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Georgia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\temail: 'anje.keizer@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tspent: '5,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '6',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'Ohio, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 3.5,\r\n\t\t\tlocation: 'Texas, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tspent: '5,230.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\temail: 'ava.gregoraci@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\temail: 'emilee.simchenko@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tspent: '100.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '4',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Nevada, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\temail: 'kwak.seong.min@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tspent: '1,000.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '2',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'Michigan, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\temail: 'shen.zhi@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tspent: '2,300.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3.9,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tspent: '200.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '7',\r\n\t\t\trating: 4.2,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/summary').reply(200, {\r\n\tsummary: {\r\n\t\tname: 'Ekaterina Tankova',\r\n\t\temail: 'ekaterina@devias.io',\r\n\t\tphone: '+55 748 327 439',\r\n\t\tstate: 'Alabama',\r\n\t\tcountry: 'United States',\r\n\t\tzipCode: '240355',\r\n\t\taddress1: 'Street John Wick, no. 7',\r\n\t\taddress2: 'House #25',\r\n\t\tiban: '4142 **** **** **** ****',\r\n\t\tautoCC: false,\r\n\t\tverified: true,\r\n\t\tcurrency: '$',\r\n\t\tinvoices: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 15.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'due',\r\n\t\t\t\tvalue: 5,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'income',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t],\r\n\t\tvat: 19,\r\n\t\tbalance: 0,\r\n\t\temails: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(3, 'days')\r\n\t\t\t\t\t.subtract(5, 'hours')\r\n\t\t\t\t\t.subtract(34, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(4, 'days')\r\n\t\t\t\t\t.subtract(11, 'hours')\r\n\t\t\t\t\t.subtract(49, 'minutes'),\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/invoices').reply(200, {\r\n\tinvoices: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/logs').reply(200, {\r\n\tlogs: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 522,\r\n\t\t\terror: 'Invalid credit card',\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'DELETE',\r\n\t\t\troute: '/api/products/d65654e/remove',\r\n\t\t\tdesc: 'Cart remove',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(8, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/d65654e/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(20, 'minutes')\r\n\t\t\t\t.subtract(54, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(34, 'minutes')\r\n\t\t\t\t.subtract(16, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f',\r\n\t\t\tdesc: 'View product',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(54, 'minutes')\r\n\t\t\t\t.subtract(30, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products',\r\n\t\t\tdesc: 'Get products',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(56, 'minutes')\r\n\t\t\t\t.subtract(40, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/login',\r\n\t\t\tdesc: 'Login',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(5, 'seconds'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/mail').reply(200, {\r\n\temails: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Business',\r\n\t\t\t\t\tcolor: colors.blue[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Personal',\r\n\t\t\t\t\tcolor: colors.orange[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tsubject: 'Website redesign. Interested in collaboration',\r\n\t\t\tmessage: `\r\nHi Matt, I saw your work on instagram and would be interested in getting a quote for Logo and slider\r\n\r\nInteger velit massa, pharetra sed lacus eu, pulvinar faucibus ex. Ut pretium ex id turpis elementum, aliquam accumsan enim sollicitudin. Sed nec consectetur lorem, ac ullamcorper augue. Suspendisse tempus ligula suscipit finibus vehicula. Morbi viverra finibus lectus, egestas dictum mi mollis nec. Proin eget vehicula eros, sit amet molestie ipsum. Morbi feugiat, elit non placerat fringilla, leo risus tristique felis, sollicitudin tristique nibh arcu nec arcu. Maecenas vel turpis nibh. Etiam in lectus quis felis facilisis dictum. Morbi id vehicula lectus, vel imperdiet dolor. Phasellus consequat tempor tellus, quis placerat quam posuere eget. Mauris blandit, nisl eu sollicitudin tincidunt, tellus diam accumsan arcu, vel pharetra lectus est nec nisi. In sem dolor, mollis sed risus eu, mattis dictum lectus. Suspendisse urna est, finibus et urna non, tincidunt placerat eros.\r\n\r\nDonec viverra ipsum id auctor rutrum. Morbi consequat a nunc non interdum. Nulla accumsan eget felis a dictum. Cras rhoncus tortor eget velit fringilla suscipit. Donec quis arcu eu nibh aliquet auctor eget fringilla felis. Sed commodo efficitur massa. Proin maximus elit in suscipit laoreet. Integer pretium arcu ac mauris ullamcorper auctor. Vivamus tincidunt lacus eget purus feugiat tincidunt. Etiam feugiat gravida ullamcorper. Pellentesque cursus vehicula lectus et consectetur. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam ligula risus, congue eu pellentesque id, volutpat aliquam arcu. Donec efficitur ipsum id neque rhoncus viverra. Vestibulum hendrerit et eros eu bibendum.\r\n\r\n\r\nKind regards,\r\n\r\nEkaterina Tankova\r\n\t `,\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Amazing work',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tsubject: 'Flight reminder',\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Work',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tmessage:\r\n\t\t\t\t'Dear Shen, Your flight is coming up soon. Please don’t forget to check in for your scheduled flight.',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Posible candidates for the position',\r\n\t\t\tmessage:\r\n\t\t\t\t'My market leading client has another fantastic opportunity for an experienced Software Developer to join them on a heavily remote basis',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 5,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 3,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 8,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 10,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Canceled',\r\n\t\t\tmembers: 2,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Kalli UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 12,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/projects/1').reply(200, {\r\n\tproject: {\r\n\t\ttitle: 'Develop a PDF Export App',\r\n\t\tauthor: {\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tbio: 'We build beautiful functional themes for web professionals',\r\n\t\t},\r\n\t\tbrief: `\r\n#### TL;DR\r\n\r\nThe primary aim of the product is to convert survery responses into PDF reports, these reports are generated on to what we call templates. This product is designer to work with 3rd party survery providers. The first MVP will integrate with TypeForm, because the's no direct way to convert results to PDF from the form people create in TypeForm and then ask users to fill out.\r\n\r\n#### Background information\r\n\r\nDesign files are attachedin the files tab.\r\n\r\nDevelop the web app screens for our product called \"PDFace\". Please look at the wireframes, system activity workflow and read the section above to understand what we're trying to archive.\r\n\r\nThere's not many screens we need designed, but there will be modals and various other system triggered evenets that will need to be considered.\r\n\r\nThe project has benn created in Sketch so let me know if there are any problmes opening this project and I'll try to convert into a usable file.\r\n\r\nI have attached a chat with our users most used devices.\r\n\r\n#### Goals:\r\n - Maintainable Code\r\n - Easy UX\r\n - Readable Code\r\n - No Redux\r\n\t`,\r\n\t\tprice: '12,500',\r\n\t\tcurrency: 'USD',\r\n\t\ttags: [\r\n\t\t\t{\r\n\t\t\t\ttext: 'React JS',\r\n\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t},\r\n\t\t],\r\n\t\tmembers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tbio: 'Front End Developer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tbio: 'UX Designer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\tbio: 'Copyright',\r\n\t\t\t},\r\n\t\t],\r\n\t\tfiles: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project1.jpg',\r\n\t\t\t\turl: '/images/projects/project_2.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 3,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'docs.zip',\r\n\t\t\t\turl: '#',\r\n\t\t\t\tmimeType: 'application/zip',\r\n\t\t\t\tsize: 1024 * 1024 * 25,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project2.jpg',\r\n\t\t\t\turl: '/images/projects/project_1.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 2,\r\n\t\t\t},\r\n\t\t],\r\n\t\tactivities: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'upload_file',\r\n\t\t\t\taction_desc: 'has uploaded a new file',\r\n\t\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Adrian Stefan',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Front-End Developer',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Alexandru Robert',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Full Stack Developer',\r\n\t\t\t\tcreated_at: moment().subtract(9, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'price_change',\r\n\t\t\t\taction_desc: 'raised the project budget',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Contest',\r\n\t\t\t\tsubject_type: 'project',\r\n\t\t\t\taction_type: 'contest_created',\r\n\t\t\t\taction_desc: 'created',\r\n\t\t\t\tcreated_at: moment().subtract(4, 'days'),\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubscribers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tcover: '/images/covers/cover_1.jpg',\r\n\t\t\t\tcommon_connections: 12,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Experience',\r\n\t\t\t\t\t'FrontEnd development',\r\n\t\t\t\t\t'HTML5',\r\n\t\t\t\t\t'VueJS',\r\n\t\t\t\t\t'ReactJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 5,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Interface',\r\n\t\t\t\t\t'FullStack development',\r\n\t\t\t\t\t'Angular',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 17,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'BackEnd development',\r\n\t\t\t\t\t'Firebase',\r\n\t\t\t\t\t'MongoDB',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t],\r\n\t\tdeadline: moment().add(7, 'days'),\r\n\t\tupdated_at: moment().subtract(23, 'minutes'),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/social-feed').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tmessage: \"Hey guys! What's your favorite framework?\",\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 1,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: \"I've been using Angular for the past 3 years\",\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(16, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'Oh... so sentimental',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/users').reply(200, {\r\n\tusers: [],\r\n});\r\n\r\nmock.onGet('/api/users/1/posts').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'It looks nice',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/reviews').reply(200, {\r\n\treviews: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 4,\r\n\t\t\tmessage:\r\n\t\t\t\t'Shen was really great during the all time session we created the project',\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\t\tprice: '5,240.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '43.00',\r\n\t\t\thours: 31,\r\n\t\t\tcurrency: '$',\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 5,\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Dashboard Design',\r\n\t\t\t\tprice: '3,680.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '38.00',\r\n\t\t\thours: 76,\r\n\t\t\tcurrency: '$',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Being the savage's bowsman, that is, the person who pulled the bow-oar in his boat (the second one from forward), it was my cheerful duty to attend upon him while taking that hard-scrabble scramble upon the dead whale's back. You have seen Italian organ-boys holding a dancing-ape by a long cord. Just so, from the ship's steep side, did I hold Queequeg down there in the sea, by what is technically called in the fishery a monkey-rope, attached to a strong strip of canvas belted round his waist.\",\r\n\t\t\tcreated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/connections').reply(200, {\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tcommon: 12,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tcommon: 10,\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tcommon: 8,\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tcommon: 5,\r\n\t\t\tstatus: 'not_connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tcommon: 1,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/invoices').reply(200, {\r\n\tinvoices: [],\r\n});\r\n\r\nmock.onGet('/api/invoices/1').reply(200, {\r\n\tinvoice: {\r\n\t\tid: uuid(),\r\n\t\tdue_date: moment(),\r\n\t\tissue_date: moment().add(15, 'days'),\r\n\t\tref: 'DEV-9483',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Tracey Herman',\r\n\t\t\tcompany: 'Countdown Grey Lynn',\r\n\t\t\tnzbn: '6934656584231',\r\n\t\t\taddress: '271 Richmond Rd, Grey Lynn, Auckland 1022, New Zealand',\r\n\t\t},\r\n\t\tproducts: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdesc: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\t\tvalue: '55.50',\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubtotal: '50.00',\r\n\t\ttaxes: '5.50',\r\n\t\ttotal: '55.50',\r\n\t\tcurrency: '$',\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/kanban').reply(200, {\r\n\tlists: [\r\n\t\t{\r\n\t\t\tid: 'incoming',\r\n\t\t\ttitle: 'Incoming',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_progress',\r\n\t\t\ttitle: 'In progress',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_review',\r\n\t\t\ttitle: 'In review',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'completed',\r\n\t\t\ttitle: 'Completed',\r\n\t\t},\r\n\t],\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '38',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Call with sales of HubSpot',\r\n\t\t\tdesc:\r\n\t\t\t\t'Duis condimentum lacus finibus felis pellentesque, ac auctor nibh fermentum. Duis sed dui ante. Phasellus id eros tincidunt, dictum lorem vitae, pellentesque sem. Aenean eu enim sit amet mauris rhoncus mollis. Sed enim turpis, porta a felis et, luctus faucibus nisi. Phasellus et metus fermentum, ultrices arcu aliquam, facilisis justo. Cras nunc nunc, elementum sed euismod ut, maximus eget nibh. Phasellus condimentum lorem neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce sagittis pharetra eleifend. Suspendisse potenti.',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_1.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '37',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Interview for the Asis. Sales Manager',\r\n\t\t\tdesc:\r\n\t\t\t\t'We are looking for vue experience and of course node js strong knowledge',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(6, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '39',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_11.png'],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '19',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(4, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '15',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Update the customer API for payments',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_10.png'],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 60,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '10',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_11.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 76,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '24',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '21',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '17',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Design Customer Management Page',\r\n\t\t\tdesc:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 3,\r\n\t\t\tcomments: 3,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '23',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Integrate Messaging API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 1,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/tasks').reply(200, {\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Update the API for the project',\r\n\t\t\tdeadline: moment().add(1, 'days').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_7.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdeadline: moment().add(2, 'day').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_12.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Solve the bug for the showState',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tmembers: ['/images/avatars/avatar_7.png'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Release v1.0 Beta',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'GDPR Compliance',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign Landing Page',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: ['/images/avatars/avatar_8.png'],\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(10, 'minutes'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD103',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(32, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD102',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(36, 'minutes')\r\n\t\t\t\t.subtract(51, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD101',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(38, 'minutes')\r\n\t\t\t\t.subtract(55, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD100',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(40, 'minutes').subtract(3, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD99',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(45, 'minutes')\r\n\t\t\t\t.subtract(32, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD98',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(48, 'minutes')\r\n\t\t\t\t.subtract(57, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD97',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(49, 'minutes').subtract(4, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD96',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD95',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'rejected',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(59, 'minutes').subtract(6, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD94',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t.subtract(15, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD93',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/orders/1').reply(200, {\r\n\torder: {\r\n\t\tid: uuid(),\r\n\t\tref: 'FAD107',\r\n\t\tpromoCode: null,\r\n\t\tvalue: '55.25',\r\n\t\tcurrency: '$',\r\n\t\tstatus: 'canceled',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\taddress: 'Street King William, 42456',\r\n\t\t\tcity: 'Montgomery',\r\n\t\t\tcountry: 'United States',\r\n\t\t},\r\n\t\titems: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Project Points',\r\n\t\t\t\tcuantity: 25,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '50.25',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Freelancer Subscription',\r\n\t\t\t\tcuantity: 1,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '5.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t],\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/dashboard/top-referrals').reply(200, {\r\n\treferrals: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['700'],\r\n\t\t\tname: 'GitHub',\r\n\t\t\tinitials: 'GT',\r\n\t\t\tvalue: '53,032',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.cyan['500'],\r\n\t\t\tname: 'Twitter',\r\n\t\t\tinitials: 'TW',\r\n\t\t\tvalue: '39,551',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.indigo[600],\r\n\t\t\tname: 'Hacker News',\r\n\t\t\tinitials: 'HN',\r\n\t\t\tvalue: '23,150',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.red['500'],\r\n\t\t\tname: 'Stack Overflow',\r\n\t\t\tinitials: 'SO',\r\n\t\t\tvalue: '14,093',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.orange['900'],\r\n\t\t\tname: 'Reddit.com',\r\n\t\t\tinitials: 'RD',\r\n\t\t\tvalue: '7,251',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Dev.to',\r\n\t\t\tinitials: 'DE',\r\n\t\t\tvalue: '5,694',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blue['900'],\r\n\t\t\tname: 'Facebook',\r\n\t\t\tinitials: 'FB',\r\n\t\t\tvalue: '3,643',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Medium',\r\n\t\t\tinitials: 'MD',\r\n\t\t\tvalue: '1,654',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/profitable-products').reply(200, {\r\n\tproducts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_basic',\r\n\t\t\tname: 'Freelancer Basic Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '13,153',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '5.00',\r\n\t\t\tprogress: 93,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_extra',\r\n\t\t\tname: 'Freelancer Extra Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '10,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '15.00',\r\n\t\t\tprogress: 76,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'agency_basic',\r\n\t\t\tname: 'Agency Basic Subscription',\r\n\t\t\timage: '/images/products/product_agency.svg',\r\n\t\t\tsubscriptions: '5,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '25.00',\r\n\t\t\tprogress: 60,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_basic',\r\n\t\t\tname: 'Enterprise Basic Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '1,203',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '205.00',\r\n\t\t\tprogress: 46,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_extra',\r\n\t\t\tname: 'Enterprise Extra Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '254',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '500.00',\r\n\t\t\tprogress: 41,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/customer-activity').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(56, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/earnings').reply(200, {\r\n\tearnings: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Subscriptions',\r\n\t\t\tvalue: 56,\r\n\t\t\tcolor: colors.indigo[500],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Afiliate',\r\n\t\t\tvalue: 24,\r\n\t\t\tcolor: colors.indigo[300],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Sales',\r\n\t\t\tvalue: 20,\r\n\t\t\tcolor: colors.indigo[100],\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1042',\r\n\t\t\titems: 7,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1041',\r\n\t\t\titems: 8,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1040',\r\n\t\t\titems: 4,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1039',\r\n\t\t\titems: 1,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\temail: 'anje.keiser@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1038',\r\n\t\t\titems: 5,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1037',\r\n\t\t\titems: 2,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t],\r\n});\r\n","import React from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { createBrowserHistory } from 'history';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport { Provider as StoreProvider } from 'react-redux';\r\nimport { StyledEngineProvider, ThemeProvider } from '@mui/material/styles';\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport jwt from 'jwt-decode';\r\nimport { DateEnv } from '@fullcalendar/core';\r\nimport config from 'configuration/configuration.js';\r\nimport theme from './theme';\r\nimport { configureStore } from './store';\r\nimport routes from './routes';\r\nimport { getUserInfo } from './actions';\r\nimport { Loading, ScrollReset, GoogleAnalytics, CookiesNotification } from './components';\r\nimport Notifier from './components/Notifier/Notifier';\r\nimport './mixins/chartjs';\r\nimport './mixins/moment';\r\nimport './mixins/validate';\r\nimport './mixins/prismjs';\r\nimport './mock';\r\nimport './assets/scss/index.scss';\r\n\r\nimport { interceptor } from './utils/AxiosRequest';\r\n\r\nconst history = createBrowserHistory({ basename: process.env.PUBLIC_URL });\r\nconst store = configureStore();\r\ninterceptor(store);\r\n\r\nconst App = () => {\r\n\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\tif (token) {\r\n\t\tconst decoded = jwt(token);\r\n\t\tconst currentDate = new Date().getTime() / 1000;\r\n\t\tif (decoded.exp > currentDate) {\r\n\t\t\tstore.dispatch(getUserInfo(token));\r\n\t\t}\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderRoutes(routes)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default App;\r\n","import { applyMiddleware, createStore, compose } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\n// import { createLogger } from 'redux-logger';\r\nimport rootReducer from 'reducers';\r\n// const loggerMiddleware = createLogger();\r\n\r\nexport default function configureStore(preloadedState = {}) {\r\n\tconst middlewares = [thunkMiddleware]; // loggerMiddleware\r\n\tconst middlewareEnhancer = composeWithDevTools(\r\n\t\tapplyMiddleware(...middlewares)\r\n\t);\r\n\r\n\tconst enhancers = [middlewareEnhancer];\r\n\tconst composedEnhancers = compose(...enhancers);\r\n\r\n\tconst store = createStore(rootReducer, preloadedState, composedEnhancers);\r\n\r\n\treturn store;\r\n}\r\n","/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in projection, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n\twindow.location.hostname === 'localhost'\r\n\t// [::1] is the IPv6 localhost address.\r\n\t|| window.location.hostname === '[::1]'\r\n\t// 127.0.0.1/8 is considered localhost for IPv4.\r\n\t|| window.location.hostname.match(\r\n\t\t/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n\t)\r\n);\r\n\r\nexport function register(config) {\r\n\tif (process.env.NODE_ENV === 'projection' && 'serviceWorker' in navigator) {\r\n\t\t// The URL constructor is available in all browsers that support SW.\r\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n\t\tif (publicUrl.origin !== window.location.origin) {\r\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\r\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\r\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('load', () => {\r\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n\t\t\tif (isLocalhost) {\r\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\r\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\r\n\r\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\r\n\t\t\t\t// service worker/PWA documentation.\r\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t'This web app is being served cache-first by a service '\r\n\t\t\t\t\t\t+ 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Is not localhost. Just register service worker\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n\tnavigator.serviceWorker\r\n\t\t.register(swUrl)\r\n\t\t.then((registration) => {\r\n\t\t\tregistration.onupdatefound = () => {\r\n\t\t\t\tconst installingWorker = registration.installing;\r\n\t\t\t\tif (installingWorker == null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tinstallingWorker.onstatechange = () => {\r\n\t\t\t\t\tif (installingWorker.state === 'installed') {\r\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\r\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\r\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\r\n\t\t\t\t\t\t\t// content until all client tabs are closed.\r\n\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t'New content is available and will be used when all '\r\n\t\t\t\t\t\t\t\t+ 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\r\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// At this point, everything has been precached.\r\n\t\t\t\t\t\t\t// It's the perfect time to display a\r\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\r\n\t\t\t\t\t\t\tconsole.log('Content is cached for offline use.');\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\r\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tconsole.error('Error during service worker registration:', error);\r\n\t\t});\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n\t// Check if the service worker can be found. If it can't reload the page.\r\n\tfetch(swUrl)\r\n\t\t.then((response) => {\r\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\r\n\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\tif (\r\n\t\t\t\tresponse.status === 404\r\n\t\t\t\t|| (contentType != null\r\n\t\t\t\t\t&& contentType.indexOf('javascript') === -1)\r\n\t\t\t) {\r\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\r\n\t\t\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\t\t\tregistration.unregister().then(() => {\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Service worker found. Proceed as normal.\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(() => {\r\n\t\t\tconsole.log(\r\n\t\t\t\t'No internet connection found. App is running in offline mode.'\r\n\t\t\t);\r\n\t\t});\r\n}\r\n\r\nexport function unregister() {\r\n\tif ('serviceWorker' in navigator) {\r\n\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\tregistration.unregister();\r\n\t\t});\r\n\t}\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.unregister();\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport { makeStyles } from '@mui/styles';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tchips: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tchip: {\r\n\t\tmargin: theme.spacing(0.25),\r\n\t},\r\n}));\r\n\r\nconst SelectField = (props) => {\r\n\tconst { id, name, value, error = false, onChange, hintText, menuItems, isMultiSelect = false, customRenderValue, formControlStyle, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst [labelWidth, setLabelWidth] = useState(0);\r\n\tconst InputLabelRef = useRef(undefined);\r\n\tuseEffect(() => {\r\n\t\tsetLabelWidth(InputLabelRef.current ? InputLabelRef.current.offsetWidth : 0);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\tInputLabelRef.current = ref;\r\n\t\t\t\t}}\r\n\t\t\t\thtmlFor={`${hintText}_selectField_input_id`}\r\n\t\t\t>\r\n\t\t\t\t{hintText}\r\n\t\t\t\r\n\t\t\t {\r\n\t\t\t\t\tconst selectedText = menuItems.filter((item) => selected.indexOf(item.value) !== -1);\r\n\t\t\t\t\treturn selectedText.map(item => item.text).join(', ');\r\n\t\t\t\t} : false}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t{\r\n\t\t\t\t\t!isMultiSelect && menuItems.map((item, i) => ({item.text}))\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tisMultiSelect && menuItems.map((item, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t -1} />\r\n\t\t\t\t\t\t\t{item.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t{\r\n\t\t\t\terror && (\r\n\t\t\t\t\t{error}\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t\r\n\t);\r\n};\r\n\r\nSelectField.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\tvalue: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.number\r\n\t]),\r\n\tname: PropTypes.string,\r\n\terror: PropTypes.any,\r\n\tonChange: PropTypes.func.isRequired,\r\n\thintText: PropTypes.string.isRequired,\r\n\tmenuItems: PropTypes.array.isRequired,\r\n\tclasses: PropTypes.object,\r\n\tisMultiSelect: PropTypes.bool,\r\n\tcustomRenderValue: PropTypes.func,\r\n\tformControlStyle: PropTypes.object\r\n};\r\n\r\nexport default SelectField;\r\n","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","export const ENQUEUE_SNACKBAR = 'ENQUEUE_SNACKBAR';\r\nexport const CLOSE_SNACKBAR = 'CLOSE_SNACKBAR';\r\nexport const REMOVE_SNACKBAR = 'REMOVE_SNACKBAR';\r\n\r\nexport const enqueueSnackbar = (notification) => {\r\n\tconst key = notification.options && notification.options.key;\r\n\r\n\treturn {\r\n\t\ttype: ENQUEUE_SNACKBAR,\r\n\t\tnotification: {\r\n\t\t\t...notification,\r\n\t\t\tkey: key || new Date().getTime() + Math.random(),\r\n\t\t},\r\n\t};\r\n};\r\n\r\nexport const closeSnackbar = key => ({\r\n\ttype: CLOSE_SNACKBAR,\r\n\tdismissAll: !key, // dismiss all if no key has been defined\r\n\tkey,\r\n});\r\n\r\nexport const removeSnackbar = key => ({\r\n\ttype: REMOVE_SNACKBAR,\r\n\tkey,\r\n});\r\n","const config = {\r\n\tAPI_URL: process.env.REACT_APP_API_URL,\r\n\tTOKEN_KEY: process.env.REACT_APP_TOKEN_KEY,\r\n};\r\n\r\nexport default config;\r\n","import React, { 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":""}