{"version":3,"sources":["actions/notifierActions.js","components/Map/SemiCircle.js","utils/getInitials.js","theme/palette.js","theme/typography.js","theme/overrides/MuiChip.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiInputBase.js","theme/overrides/MuiLinearProgress.js","theme/overrides/MuiListItemIcon.js","theme/overrides/MuiTableHead.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiCardActions.js","theme/overrides/MuiCardContent.js","theme/overrides/MuiCardHeader.js","theme/overrides/MuiOutlinedInput.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableRow.js","theme/overrides/MuiToggleButton.js","theme/overrides/MuiTypography.js","theme/index.js","reducers/sessionReducer.js","reducers/notifierReducer.js","views/Management/requests/UsersRequests.js","views/Management/actions/UsersActions.js","views/Management/reducers/UsersReducer.js","views/Management/requests/OperatorsRequests.js","views/Management/actions/OperatorsActions.js","views/Management/reducers/OperatorsReducer.js","views/Management/requests/SettingsRequests.js","views/Management/actions/SettingsActions.js","views/Management/reducers/SettingsReducer.js","views/Dashboard/requests/DashboardInspectRequests.js","views/Dashboard/reducers/DashboardInspectReducer.js","views/Dashboard/actions/DashboardInspectActions.js","views/FailuresMap/requests/FailuresMapRequests.js","views/FailuresMap/actions/FailuresMapActions.js","views/FailuresMap/reducers/FailuresMapReducer.js","views/Tracker/requests/VoiceRequest.js","views/Tracker/actions/VoiceActions.js","views/Tracker/reducers/VoiceReducer.js","views/Tracker/requests/PacketRequest.js","views/Tracker/actions/PacketActions.js","views/Tracker/reducers/PacketReducer.js","components/Map/reducers/MapReducer.js","views/Algorithms/requests/AlgorithmsRequests.js","views/Algorithms/actions/AlgorithmsActions.js","views/Algorithms/reducers/AlgorithmsReducer.js","views/RepositoryPdf/requests/RepositoryPdfRequests.js","views/RepositoryPdf/actions/RepositoryPdfActions.js","views/RepositoryPdf/reducers/RepositoryPdfReducer.js","views/OptimizationsSiteTracker/requests/OptSiteRequests.js","views/OptimizationsSiteTracker/actions/OptSiteActions.js","views/OptimizationsSiteTracker/reducers/OptSiteReducer.js","views/OptimizationsOverallTracker/requests/OptOverallRequests.js","views/OptimizationsOverallTracker/actions/OptOverallActions.js","views/OptimizationsOverallTracker/reducers/OptOverallReducer.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","layouts/Dashboard/Dashboard.js","layouts/Dashboard/components/ChatBar/ChatBar.js","views/DashboardAnalytics/components/EarningsSegmentation/components/Chart/Chart.js","views/DashboardAnalytics/components/EarningsSegmentation/EarningsSegmentation.js","views/DashboardAnalytics/components/FinancialStats/components/Chart/Chart.js","views/DashboardAnalytics/components/FinancialStats/FinancialStats.js","views/DashboardAnalytics/components/Header/Header.js","views/DashboardAnalytics/components/MostProfitableProducts/components/CircularProgress/CircularProgress.js","views/DashboardAnalytics/components/MostProfitableProducts/MostProfitableProducts.js","views/DashboardAnalytics/components/Overview/Overview.js","views/DashboardAnalytics/components/TopReferrals/TopReferrals.js","views/DashboardAnalytics/components/CustomerActivity/CustomerActivity.js","views/DashboardAnalytics/components/LatestOrders/LatestOrders.js","views/DashboardAnalytics/DashboardAnalytics.js","views/DashboardDefault/components/Header/Header.js","views/DashboardDefault/components/LatestProjects/LatestProjects.js","views/DashboardDefault/components/NewProjects/NewProjects.js","views/DashboardDefault/components/RoiPerCustomer/RoiPerCustomer.js","views/DashboardDefault/components/TeamTasks/components/TaskItem/TaskItem.js","views/DashboardDefault/components/TeamTasks/TeamTasks.js","views/DashboardDefault/components/TodaysMoney/TodaysMoney.js","views/DashboardDefault/components/SystemHealth/SystemHealth.js","views/DashboardDefault/components/RealTime/components/Chart/Chart.js","views/DashboardDefault/components/RealTime/RealTime.js","views/DashboardDefault/components/PerformanceOverTime/components/Chart/Chart.js","views/DashboardDefault/components/PerformanceOverTime/PerformanceOverTime.js","views/DashboardDefault/DashboardDefault.js","views/Overview/components/Header/Header.js","views/Overview/components/Statistics/Statistics.js","views/Overview/components/Notifications/Notifications.js","views/Overview/components/Projects/Projects.js","views/Overview/components/Todos/Todos.js","views/Overview/Overview.js","views/Home/Home.js","views/Presentation/components/FAQ/FAQ.js","views/Presentation/components/Header/Header.js","views/Presentation/components/PluginsSupport/PluginsSupport.js","views/Presentation/components/SourceFiles/SourceFiles.js","views/Presentation/components/UserFlows/UserFlows.js","views/Presentation/Presentation.js","views/Management/components/Users/components/Card/Card.js","views/Management/components/Users/components/UsersDataTable/UsersDataTable.js","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/Security/Security.js","views/Management/components/Settings/components/Notifications/Notifications.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/Tracker/requests/ImportRequests.js","views/Tracker/components/Import.js","views/Tracker/actions/ImportActions.js","views/Tracker/components/Voice/components/VoiceDataTable.js","components/DatePicker/DateTimePicker.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/components/VoiceMocMtcDataTable.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/components/VoiceComments.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3DataTables.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3Charts.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3Map.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/Layer3Form.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/Layer3Dialog.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/components/VoiceEditFailureDialogForm.js","views/Tracker/components/Voice/components/VoiceEditFailureDialog/VoiceEditFailureDialog.js","views/Tracker/components/Voice/Voice.js","views/Tracker/components/Packet/components/PacketDataTable.js","views/Tracker/components/Packet/components/PacketEditFailureDialog/components/components/PacketMocMtcDataTable.js","views/Tracker/components/Packet/components/PacketEditFailureDialog/components/components/PacketComments.js","views/Tracker/components/Packet/components/PacketEditFailureDialog/components/PacketEditFailureDialogForm.js","views/Tracker/components/Packet/components/PacketEditFailureDialog/PacketEditFailureDialog.js","views/Tracker/components/Packet/Packet.js","views/Tracker/components/Failures.js","views/FailuresMap/components/components/CompareBox.js","views/FailuresMap/components/components/FiltersTop.js","views/FailuresMap/components/components/FiltersTopCompare.js","views/FailuresMap/components/components/FiltersSide.js","views/FailuresMap/components/components/FiltersSideCompare.js","views/FailuresMap/components/components/Components/DrivetestChart.js","views/FailuresMap/components/components/AdditionalInfo.js","views/FailuresMap/components/components/Components/Components/SummaryDialogForm.js","views/FailuresMap/components/components/Components/SummaryDialog.js","views/FailuresMap/components/components/Components/Components/CarriersColorsDialogForm.js","views/FailuresMap/components/components/Components/CarriersColorsDialog.js","views/FailuresMap/components/components/Components/CarriersColorsPickerDialog.js","views/FailuresMap/components/FailuresMap.js","views/Algorithms/components/components/components/ByCoordinates.js","views/Algorithms/components/components/components/ByFile.js","views/Algorithms/components/components/Overshooting.js","views/Algorithms/components/components/CrossedSectors.js","views/Algorithms/components/components/CoverageHoles.js","views/Algorithms/components/Algorithms.js","views/RepositoryExcel/requests/RepositoryExcelRequests.js","views/RepositoryExcel/actions/RepositoryExcelActions.js","views/RepositoryExcel/components/components/components/ExcelUpload.js","views/RepositoryExcel/components/components/components/ExcelTable.js","views/RepositoryExcel/components/components/RepositoryExcelForm.js","views/RepositoryExcel/components/components/RepositoryExcelFileRemoveDialog.js","views/RepositoryExcel/components/RepositoryExcel.js","views/RepositoryPdf/components/components/components/PdfUpload.js","views/RepositoryPdf/components/components/components/PdfTable.js","views/RepositoryPdf/components/components/components/PdfViewer.js","views/RepositoryPdf/components/components/RepositoryPdfForm.js","views/RepositoryPdf/components/components/RepositoryPdfFileRemoveDialog.js","views/RepositoryPdf/components/RepositoryPdf.js","views/OptimizationsSiteTracker/components/components/OptSiteDatatable.js","views/OptimizationsSiteTracker/components/components/OptSiteDialog/components/OptSiteDialogForm.js","views/OptimizationsSiteTracker/components/components/OptSiteDialog/OptSiteDialog.js","views/OptimizationsSiteTracker/components/components/OptSiteDialog/OptSiteDeleteDialog.js","views/OptimizationsSiteTracker/components/components/OptSiteDialog/components/components/OptSiteAddFileDialog.js","views/OptimizationsSiteTracker/components/components/OptSiteDialog/components/components/OptSiteDeleteFileDialog.js","views/OptimizationsSiteTracker/components/OptSiteTracker.js","views/OptimizationsOverallTracker/components/components/OptOverallDatatable.js","views/OptimizationsOverallTracker/components/components/OptOverallDialog/components/OptOverallDialogForm.js","views/OptimizationsOverallTracker/components/components/OptOverallDialog/OptOverallDialog.js","views/OptimizationsOverallTracker/components/components/OptOverallDialog/OptOverallDeleteDialog.js","views/OptimizationsOverallTracker/components/OptOverallTracker.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/DatePicker/DatePicker.js","components/AddPost/AddPost.js","components/Alert/Alert.js","components/CodeBlock/CodeBlock.js","components/CookiesNotification/CookiesNotification.js","components/FilesDropzone/FilesDropzone.js","components/GenericMoreButton/GenericMoreButton.js","components/GoogleAnalytics/GoogleAnalytics.js","components/Markdown/Markdown.js","components/Navigation/components/NavigationListItem/NavigationListItem.js","components/Navigation/Navigation.js","components/NotificationsPopover/components/NotificationList/NotificationList.js","components/NotificationsPopover/components/EmptyList/EmptyList.js","components/NotificationsPopover/NotificationsPopover.js","components/Page/Page.js","components/Paginate/Paginate.js","components/PostCard/components/CommentBubble/CommentBubble.js","components/PostCard/components/CommentForm/CommentForm.js","components/PostCard/components/Reactions/Reactions.js","components/PostCard/PostCard.js","components/PricingModal/PricingModal.js","components/ProjectCard/ProjectCard.js","components/ReviewStars/ReviewStars.js","components/RichEditor/components/EditorToolbar/EditorToolbar.js","components/RichEditor/utils/block.js","components/RichEditor/RichEditor.js","components/ScrollReset/ScrollReset.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/Map/Map.js","components/FiltersDrawer/FiltersDrawer.js","components/Chart/Chart.js","components/PdfViewer/Components/PdfModalForm.js","components/PdfViewer/Components/PdfModal.js","components/PdfViewer/single-page.js","components/PdfViewer/all-pages.js","components/Label/Label.js","components/SelectField/SelectField.js","configuration/configuration.js","utils/AxiosRequest.js","components/Label/index.js","components/TableauDashboard/TableauDashboard.js","components/Checkbox/Checkbox.js","components/ModalDialog/components/DialogTitle.js","components/ModalDialog/components/DialogContent.js","components/ModalDialog/ModalDialog.js","utils/useRouter.js","utils/bytesToSize.js","utils/axios.js","components/DataTable/DataTable.js","components/Map/actions/MapActions.js","components/AuthGuard/AuthGuard.js","actions/sessionActions.js","utils/gradients.js"],"names":["ENQUEUE_SNACKBAR","CLOSE_SNACKBAR","REMOVE_SNACKBAR","enqueueSnackbar","notification","key","options","type","Date","getTime","Math","random","closeSnackbar","dismissAll","removeSnackbar","define","L","DEG_TO_RAD","PI","fixAngle","angle","Point","prototype","rotated","r","p","add","point","cos","sin","multiplyBy","this","semicircle","startAngle","stopAngle","innerRadius","setStartAngle","redraw","setStopAngle","setInnerRadius","radius","setDirection","direction","degrees","undefined","getDirection","isSemicircle","_containsPoint","normalize","atan2","y","_point","x","nStart","nStop","distanceTo","_radius","_clickTolerance","SemiCircle","Circle","extend","SemiCircleMarker","CircleMarker","semiCircle","latlng","semiCircleMarker","_updateCircleSVG","SVG","_updateCircle","_updateCircleCanvas","Canvas","include","layer","call","_empty","_setPath","_map","latLngToLayerPoint","_latlng","r2","round","_radiusY","start","end","largeArc","d","_mRadius","lng","lat","map","crs","latR","Earth","R","top","project","bottom","p2","divideBy","lat2","unproject","lngR","acos","Number","isNaN","subtract","getPixelOrigin","innerStart","innerEnd","innerR2","path","ctx","_ctx","s","save","scale","beginPath","moveTo","lineTo","arc","restore","_fillStroke","dest","i","j","len","src","arguments","length","latLngToPoint","zoom","projectedPoint","projection","transformation","_transform","pointToLatLng","untransformedPoint","untransform","pow","log","LN2","getProjectedBounds","infinite","b","bounds","min","transform","max","Bounds","wrapLatLng","wrapLng","wrapNum","wrapLat","alt","LatLng","wrapLatLngBounds","center","getCenter","newCenter","latShift","lngShift","sw","getSouthWest","ne","getNorthEast","newSw","newNe","LatLngBounds","distance","latlng1","latlng2","rad","lat1","sinDLat","sinDLon","a","c","sqrt","name","replace","split","slice","v","toUpperCase","join","white","black","primary","contrastText","dark","colors","blue","main","light","secondary","error","red","text","blueGrey","link","icon","background","default","paper","divider","grey","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","root","backgroundColor","deletable","input","opacity","borderRadius","overflow","colorPrimary","minWidth","MuiButton","contained","boxShadow","MuiCardActions","padding","MuiCardContent","MuiCardHeader","MuiChip","MuiIconButton","MuiInputBase","MuiLinearProgress","MuiListItemIcon","MuiOutlinedInput","notchedOutline","borderColor","MuiPaper","elevation1","MuiTableHead","MuiTableCell","typography","borderBottom","MuiTableRow","MuiToggleButton","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","MuiTypography","gutterBottom","marginBottom","theme","createMuiTheme","overrides","token","localStorage","getItem","config","TOKEN_KEY","initialState","loggedIn","user","notifications","isLoading","loadingCount","decoded","jwt","currentDate","exp","sessionReducer","state","action","actionTypes","role","defaultState","GetUsersRequest","AxiosRequest","method","url","API_URL","params","GetRolesRequest","GetOperatorProjectsRequest","operatorIds","GetUserRequest","userId","ResendConfirmationEmailRequest","DeactivateUserRequest","DeleteUserRequest","GetUsers","dispatch","then","response","users","data","catch","message","variant","GetUsersStats","usersStats","ToggleAddEditUserDialog","openAddEditUserDialog","openAddEditUserDialogId","onToggleAddEditUserDialog","ToggleDeleteUserDialog","openDeleteUserDialog","openDeleteUserDialogId","onToggleDeleteUserDialog","roles","operators","operatorProjects","formState","isValid","values","touched","errors","usersReducer","GetOperatorRequest","operatorId","UpdateImageRequest","operator","DeleteProjectRequest","projectId","UpdateOperatorRequest","GetOperators","ToggleAddOperatorDialog","openAddEditOperatorDialog","openAddOperatorDialog","SetFormState","value","onSetFormState","GetOperator","UpdateImage","id","ToggleAddProjectDialog","openAddEditProjectDialog","openAddProjectDialog","detailsOperatorId","operatorsReducer","GetOperatorsRequest","UpdateSettingsRequest","ChangePasswordRequest","DashboardInspectRequest","dashboardId","dashboard","reportsReducer","GetFailuresFiltersRequest","GetFailuresPointsVoiceRequest","city","dates","failureType","cfn1Level","GetFailuresPointsPacketRequest","GetDriveTestsCitiesRequest","userOperator","GetDriveTestsDrivesRequest","GetDriveTestsDatesRequest","drive","GetDriveTestRequest","tech","kpi","GetDriveTestScannerCodesRequest","freq","GetDriveTestScannerRequest","code","GetTopologyRequest","bands","coordinates","GetTopologyLabelsRequest","GetDriveTestsTechBandVoiceRequest","GetDriveTestsTechBandPacketRequest","GetScannerRouteRequest","GetDriveTestSummaryRequest","scenario","GetSiteIdLocationRequest","siteId","SaveCarrierColorRequest","tableId","colorCode","GetFailuresPointsVoice","failuresVoice","GetFailuresPointsPacket","failuresPacket","SetSelectedDates","selectedDates","GetDriveTest","driveTest","GetDriveTestScannerCodes","driveTestScannerCodes","GetDriveTestScanner","driveTestScanner","GetTopology2g","topology2gData","GetTopology3g","topology3gData","GetTopology4g","topology4gData","GetTopology5g","topology5gData","GetTopologyLabels2g","topologyLabels2gData","GetTopologyLabels3g","topologyLabels3gData","GetTopologyLabels4g","topologyLabels4gData","GetTopologyLabels5g","topologyLabels5gData","GetDriveTestsTechBandVoice","techBandVoice","GetDriveTestsTechBandPacket","techBandPacket","GetDriveTestSummaryDropdown","drivetestSummaryDropdown","GetDriveTestSummary","drivetestSummary","GetDriveTestSummaryCompare","drivetestSummaryCompare","GetScannerRoute","scannerRoute","ToggleSummaryDialog","visible","onToggleSummaryDialog","ToggleCarriersColorsDialog","onToggleCarriersColorsDialog","ToggleCarriersColorsPickerDialog","tableIdColorCode","currentColorCode","onToggleCarriersColorsPickerDialog","GetFailuresPointsVoiceCompare","failuresVoiceCompare","GetFailuresPointsPacketCompare","failuresPacketCompare","SetSelectedDatesCompare","selectedDatesCompare","GetDriveTestCompare","driveTestCompare","GetDriveTestScannerCodesCompare","driveTestScannerCodesCompare","GetDriveTestScannerCompare","driveTestScannerCompare","GetTopology2gCompare","topology2gDataCompare","GetTopology3gCompare","topology3gDataCompare","GetTopology4gCompare","topology4gDataCompare","GetTopology5gCompare","topology5gDataCompare","GetTopologyLabels2gCompare","topologyLabels2gDataCompare","GetTopologyLabels3gCompare","topologyLabels3gDataCompare","GetTopologyLabels4gCompare","topologyLabels4gDataCompare","GetTopologyLabels5gCompare","topologyLabels5gDataCompare","GetDriveTestsTechBandVoiceCompare","techBandVoiceCompare","GetDriveTestsTechBandPacketCompare","techBandPacketCompare","GetScannerRouteCompare","scannerRouteCompare","GetCarriersColors","carriersColors","failuresFilters","cities","drives","driveTests4g","driveTestCodes","failuresFiltersSideCompare","citiesCompare","drivesCompare","datesCompare","driveTestCodesCompare","openFilters","summaryDialogVisibility","carriersColorsDialogVisibility","carriersColorsPickerDialogVisibility","sitesIds","siteIdLocation","selectedCity","selectedDrive","voiceActive","packetActive","techBandVoiceActive","techBandPacketActive","failureTypeVoice","failureTypePacket","cfn1LevelVoice","cfn1LevelPacket","scannerBsic","scannerSc","scannerPci","freq2g","freq3g","freq4g","top2g","top3g","top4g","mapAutoZoom","mapCompare","mapFrameSize","mapSync","mapFilters","mapSize","selectedCityCompare","selectedDriveCompare","voiceActiveCompare","packetActiveCompare","techBandVoiceActiveCompare","techBandPacketActiveCompare","failureTypeVoiceCompare","failureTypePacketCompare","cfn1LevelVoiceCompare","cfn1LevelPacketCompare","scannerBsicCompare","scannerScCompare","scannerPciCompare","freq2gCompare","freq3gCompare","freq4gCompare","top2gCompare","top3gCompare","top4gCompare","failuresMapReducer","GetFailuresVoiceRequest","SetFailureVoiceValidInvalidRequest","GetFailureVoiceDetailsRequest","GetFailureVoiceCommentsRequest","SetFailureVoiceDetailsRequest","trackerVoiceDetailsDto","AddVoiceCommentRequest","comment","ExportFailuresVoiceRequest","GetLayer3Request","filenameMoc","filenameMtc","initialTimestamp","GetLayer3MessageMoRequest","side","GetLayer3MessageMtRequest","GetLayer3FailureRequest","GetLayer3DriveTestRequest","failureSide","GetLayer3KpisRequest","ToggleVoiceEditFailureDialog","onToggleVoiceEditFailureDialog","GetFailureVoiceDetails","failure","ToggleLayer3Dialog","onToggleLayer3Dialog","GetLayer3Failure","layer3Failure","failures","voiceEditFailureDialogVisibility","failureSource","layer3","layer3Message","layer3DriveTest","layer3Kpis","comments","failuresVoiceFilePath","voiceReducer","layer3DialogVisibility","layer3MessageMo","layer3MessageMt","GetFailuresPacketRequest","SetFailurePacketValidInvalidRequest","GetFailurePacketDetailsRequest","SetFailurePacketDetailsRequest","trackerPacketDetailsDto","AddPacketCommentRequest","ExportFailuresPacketRequest","TogglePacketEditFailureDialog","failureId","onTogglePacketEditFailureDialog","GetFailurePacketDetails","packetEditFailureDialogVisibility","packetReducer","lon","maps","mapUpdated","zoomToUpdate","AddNewMap","mapAlreadyExists","find","el","newAddMaps","filter","push","CenterLatitude","CenterLongitude","topology","twoG","threeG","fourG","legend","legendElements","title","updateEnd","UpdateCoordinates","newUpdateMaps","item","newCoordinates","UpdateTopology","newTopologyMaps","newTopology","UpdateLegend","newLegendMaps","newLegend","UpdatePopup","newMaps","control","activePopup","UpdateOverlays","activeLayers","MapReducer","GetAlgorithmsCitiesRequest","GetAlgorithmsDatesRequest","RunOvershootingByCoordinatesRequest","date","points","tech2g","tech3g","tech4g","osParameters2g","osParameters3g","osParameters4g","RunOvershootingByFileRequest","filePath","RunOvershootingByFile","DownloadFile","algoCities","algoDates","algoSelectedCity","algoSelectedDate","northEastLatitude","northEastLongitude","southWestLatitude","southWestLongitude","algoSelectedTab","algoInputFilePath","numberOfBins2g","powerDelta2g","clusterRadius2g","warningPwrDelta2g","powerThreshold2g","qualityDelta2g","qualityThreshold2g","warningQualityDelta2g","numberOfBins3g","powerDelta3g","clusterRadius3g","warningPwrDelta3g","powerThreshold3g","qualityDelta3g","qualityThreshold3g","warningQualityDelta3g","numberOfBins4g","powerDelta4g","clusterRadius4g","warningPwrDelta4g","powerThreshold4g","qualityDelta4g","qualityThreshold4g","warningQualityDelta4g","algorithmsReducer","SavePdfFileRequest","stream","tempFilePath","GetRepositoryFilesRequest","DownloadRepositoryFileRequest","filename","RemoveRepositoryFileRequest","GetPdfInformationRequest","GetRepositoryFiles","filesInfo","SavePdfFile","ToggleRemoveRepositoryFileDialog","onToggleRemoveRepositoryFileDialog","removeRepoFileDialogVisibility","pdfInformationBase64","repositoryPdfInputFilePath","repositoryReducer","GetOptSitesIncidentsRequest","GetOptSiteIncidentDetailsRequest","EditOptSiteIncidentDetailsRequest","optimizationsSiteDto","CreateOptSiteIncidentRequest","DeleteOptSiteIncidentRequest","ExportOptSitesIncidentsRequest","GetAutocompleteFieldsRequest","GetFailuresRequest","AddAttachmentRequest","incidentId","DownloadAttachmentRequest","RemoveAttachmentRequest","GetOptSitesIncidents","incidents","ToggleOptSiteDialog","onToggleOptSiteDialog","GetOptSiteIncidentDetails","incidentDetails","ToggleDeleteOptSiteDialog","onToggleDeleteOptSiteDialog","GetDriveTestsDrives","GetDriveTestsDates","GetFailures","SetSelectedFailures","selectedFailures","AddAttachment","ToggleAttachFileOptSiteDialog","onToggleAttachFileOptSiteDialog","ToggleRemoveFileOptSiteDialog","onToggleRemoveFileOptSiteDialog","optSiteDialogVisibility","dropdowns","deleteOptSiteDialogVisibility","attachFileOptSiteDialogVisibility","removeFileOptSiteDialogVisibility","autocompleteFields","inputFilePath","globalStatus","optSiteReducer","GetOptOverallsIncidentsRequest","GetOptOverallIncidentDetailsRequest","EditOptOverallIncidentDetailsRequest","optimizationsOverallDto","CreateOptOverallIncidentRequest","DeleteOptOverallIncidentRequest","ExportOptOverallsIncidentsRequest","GetOptOverallsIncidents","ToggleOptOverallDialog","onToggleOptOverallDialog","GetOptOverallIncidentDetails","ToggleDeleteOptOverallDialog","onToggleDeleteOptOverallDialog","optOverallDialogVisibility","deleteOptOverallDialogVisibility","optOverallReducer","rootReducer","combineReducers","session","notifierReducer","dismissed","settingsReducer","dashboardInspectReducer","mapReducer","useStyles","makeStyles","Topbar","props","className","rest","classes","AppBar","clsx","Toolbar","to","style","maxHeight","content","height","paddingTop","breakpoints","up","Auth","route","fallback","LinearProgress","renderRoutes","routes","Error","startSignalRConnection","connection","origin","err","NotificationHub","useRef","useDispatch","NotificationRecieved","info","actions","useEffect","current","urlRoot","connectionHub","HubConnectionBuilder","withUrl","build","on","onclose","setTimeout","stop","pages","href","HomeIcon","AssignmentIcon","MapIcon","DnsIcon","BrandingWatermarkIcon","FileCopyIcon","SettingsInputAntennaIcon","DeveloperBoardIcon","SupervisorAccountIcon","children","target","DesktopMacIcon","SettingsIcon","overflowY","spacing","profile","display","flexDirection","alignItems","minHeight","avatar","width","marginTop","navigation","NavBar","openMobile","onMobileClose","router","useRouter","useSelector","location","pathname","projects","projectsMenu","FolderIcon","management","navigationConfig","hangfire","hangfireindex","findIndex","splice","managementIndex","navbarContent","Avatar","component","RouterLink","getInitials","firstname","lastname","Typography","Divider","list","includes","_","intersection","userRole","userProjects","Hidden","lgUp","Drawer","anchor","onClose","open","mdDown","Paper","elevation","square","flexGrow","search","flexBasis","searchIcon","marginRight","searchInput","searchPopper","zIndex","appBar","searchPopperContent","trialButton","marginLeft","green","trialIcon","notificationsButton","notificationsBadge","orange","logoutButton","logoutIcon","TopBar","onOpenNavBarMobile","history","notificationsRef","useState","pricingModalOpen","setPricingModalOpen","openNotifications","setOpenNotifications","shallowEqual","fontFamily","IconButton","onClick","ref","Badge","badgeContent","readed","badge","Button","anchorEl","drawer","listItemText","lastActivity","whiteSpace","fab","position","right","topBar","container","flex","navBar","Dashboard","openNavBarMobile","setOpenNavBarMobile","Chart","dataProp","useTheme","datasets","borderWidth","hoverBorderColor","labels","label","responsive","maintainAspectRatio","animation","cutoutPercentage","layout","tooltips","enabled","mode","intersect","caretSize","yPadding","xPadding","titleFontColor","bodyFontColor","footerFontColor","callbacks","tooltipItem","paddingBottom","chartContainer","chart","statsContainer","statsItem","justifyContent","borderRight","EarningsSegmentation","earnings","setEarnings","mounted","axios","get","Card","CardHeader","CardContent","earning","align","thisYear","lastYear","cornerRadius","scales","xAxes","barThickness","maxBarThickness","barPercentage","categoryPercentage","gridLines","drawBorder","ticks","fontColor","yAxes","borderDash","borderDashOffset","zeroLineBorderDash","zeroLineBorderDashOffset","zeroLineColor","beginAtZero","maxTicksLimit","callback","yLabel","inner","FinancialStats","calendarTodayIcon","Header","moment","startDate","setStartDate","endDate","setEndDate","selectEdge","setSelectEdge","calendarDate","setCalendarDate","handleCalendarOpen","edge","Boolean","Grid","justify","lg","xs","ButtonGroup","format","maxDate","onAccept","isAfter","isBefore","onChange","defaultProps","circle1","stroke","fill","strokeWidth","circle2","strokeDasharray","CircularProgress","viewBox","details","image","flexShrink","subscriptions","fontWeightMedium","price","conversion","conversionStats","arrowForwardIcon","MostProfitableProducts","products","setProducts","Table","TableBody","product","TableRow","hover","TableCell","currency","progress","CardActions","size","textAlign","down","valueContainer","Overview","md","sm","fontWeightBold","TopReferrals","referrals","setReferrals","List","disablePadding","referral","ListItem","ListItemAvatar","initials","ListItemText","CustomerActivity","customers","setCustomers","customer","author","disableTypography","description","Link","created_at","fromNow","progressContainer","labelColors","complete","pending","rejected","LatestOrders","orders","setOrders","suppressScrollY","TableHead","sortDirection","Tooltip","enterDelay","TableSortLabel","active","order","items","totalCell","status","DashboardAnalytics","xl","startDateButton","endDateButton","tags","LatestProjects","setProjects","tag","flexWrap","backgroundImage","gradients","NewProjects","RoiPerCustomer","critical","indicator","borderStyle","viewButton","TaskItem","task","deadline","now","deadlineMoment","diff","ListItemIcon","primaryTypographyProps","noWrap","avatars","members","limit","TeamTasks","tasks","setTasks","TodaysMoney","margin","SystemHealth","stacked","indigo","itemDivider","borderBottomColor","RealTime","setData","setInterval","newData","shift","ceil","floor","pop","subheader","subheaderTypographyProps","titleTypographyProps","views","page","canvas","gradient","getContext","createLinearGradient","addColorStop","fade","pointBorderColor","pointBorderWidth","pointRadius","pointBackgroundColor","buttons","PerformanceOverTime","thisWeek","thisMonth","DashboardDefault","summaryButton","barChartIcon","first_name","smDown","titleWrapper","Statistics","statistics","setStatistics","payout","visitors","watching","Notifications","uuid","icons","invite","ListItemSecondaryAction","header","left","arrowIcon","Projects","addIcon","done","textDecoration","Todos","todos","setTodos","todo","Radio","checked","event","persist","t","handleChange","isSame","getLabel","maxWidth","FAQ","faq","secondaryTypographyProps","mediaContainer","media","stats","statsInner","enqueueSnackbarAction","closeSnackbarAction","PluginsSupport","SourceFiles","UserFlows","Presentation","nameCell","primaryButton","errorButton","UsersDataTable","_resendConfirmationEmail","ResendConfirmationEmail","_deactivateUser","DeactivateUser","_renderActions","tableMeta","rowData","DataTable","columns","viewColumns","filterType","customBodyRender","sortBy","val","index","Label","sort","empty","updateValue","rowsPerPage","tableBodyMaxHeight","tableBodyCellMaxWidth","selectableRows","expandableRows","schema","presence","allowEmpty","email","roleId","fields","submitButton","AddEditUserForm","isEdit","setFormState","usePrevious","hasOperatorIdsChanged","validate","hasError","field","TextField","fullWidth","helperText","disabled","SelectField","hintText","menuItems","isMultiSelect","projectIds","AddEditUserDialog","alignContent","applyButton","onApply","getData","useCallback","ModalDialog","confirmLabel","onConfirmClicked","userData","CreateUser","DeleteUserDialog","Users","_addUser","module","view","online","client","registered","results","detailsButton","deleteButton","OperatorCard","deleteOperator","navigateDetails","gridList","AddOperatorForm","AddOperatorDialog","Operators","_addOperator","OperatorsList","onNavigateDetails","saveButton","Details","UpdateOperator","textAlgin","removeButton","addButton","Picture","inputFile","click","updateOperator","accept","files","reader","FileReader","addEventListener","result","readAsDataURL","deliverables","memo","moreRef","openMenu","setOpenMenu","anchorOrigin","vertical","horizontal","menu","transformOrigin","MenuItem","ProjectsDataTable","_deleteProject","DeleteProject","AddProjectForm","AddProjectDialog","projectList","tabs","alert","OperatorDetails","tab","setTab","Tabs","scrollButtons","Tab","userList","GeneralForm","getUserInfo","General","oldpassword","newpassword","confirmnewpassword","equality","Security","overview","productImage","notice","Settings","exportPdf","fullScreen","DashboardInspect","match","pageTitle","headerHidden","handle","useFullScreenHandle","_getDashboard","_fullScreen","enter","hidden","ShowExportPDFDialog","TableauDashboard","reportId","serverId","accessToken","ImportFileRequest","fileLocation","popover","pointerEvents","acceptedFiles","fileformat","Import","setAnchorEl","handlePopoverClose","aria-owns","aria-haspopup","onMouseOver","currentTarget","onMouseLeave","multiple","acceptedTypes","upload","file","UploadFile","Upload","Popover","disableRestoreFocus","aria-label","row","scope","infoButton","BlueRedSwitch","withStyles","switchBase","common","thumb","track","border","Switch","VoiceDataTable","_editValid","SetFailureVoiceValidInvalid","_getTableColumns","FormControlLabel","defaultChecked","_renderValid","DatePicker","minutesStep","ampm","inputVariant","VoiceMocMtcDataTable","generate","VoiceComments","commentValue","setCommentValue","userName","creationTimestamp","toString","disableUnderline","trim","placeholder","tableRow","cursor","Layer3DataTables","upHidden","downHidden","_onRowClick","rowMeta","layer3SelectedType","GetLayer3MessageMo","GetLayer3MessageMt","_getTableOptions","onRowClick","rowsPerPageOptions","layer3MessageMoc","layer3MessageMtc","layer3TableMoc","InputProps","readOnly","multiline","rowsMax","layer3TableMtc","Layer3Charts","dataLabels","Layer3Map","mapOne","failureLockOn","makeDetailsTable","latitude","longitude","useMemo","layerData","fitBounds","RemoveLayerById","markers","voiceIconBlocked","iconUrl","iconSize","iconAnchor","popupAnchor","voiceIconBlockedQoe","voiceIconDropped","voiceIconDroppedQoe","packetIcondrop","isEmpty","forEach","marker","bindPopup","autoPan","layerGroup","addTo","mapContext","group","featureGroup","getBounds","_addLayerFailures","circle","fillColor","fillOpacity","makeDetailsTableKpis","onUpdateLegend","_addLayerKpi","driveTestPoints","DriveTestLegend","defaultValue","layer3Kpi","GetLayer3DriveTest","Layer3Form","Layer3Dialog","GetLayer3","GetLayer3Kpis","cancelLabel","hasConfirm","VoiceEditFailureDialogForm","React","hideFields","setHideFields","trackerVoiceCommentsDto","_handleChange","_hasError","mobilityScenario","testType","initialClassification","week","incNumber","trackerVoiceMocMtcDto","Accordion","defaultExpanded","AccordionSummary","expandIcon","aria-controls","AccordionDetails","cfn2LevelList","cfn2Level","cfn3LevelList","cfn3Level","failureTypeList","solutionList","solution","solutionDescription","VoiceEditFailureDialog","_getData","SetFailureVoiceDetails","Voice","GetFailuresVoice","agreeButton","ExportFailuresVoice","PacketDataTable","SetFailurePacketValidInvalid","PacketMocMtcDataTable","PacketComments","PacketEditFailureDialogForm","_handleDateChange","routeType","routeName","trackerPacketMocMtcDto","trackerPacketCommentsDto","statusList","solutionOwnerList","solutionOwner","expectedSolutionDate","actualSolutionDate","PacketEditFailureDialog","SetFailurePacketDetails","Packet","GetFailuresPacket","ExportFailuresPacket","Failures","buttonIcon","contentSection","contentSectionHeader","contentSectionContent","formGroup","fieldGroup","minAmount","maxAmount","radioGroup","CompareBox","onFilter","filterDisabled","onClear","mapTwo","_addSiteLocation","layerName","flyTo","_autoZoom","_onSiteIdChange","GetSiteIdLocation","filterOptions","createFilterOptions","labelPlacement","selectedKpiTech","kpi4g","kpi3g","kpi2g","selectedKpiScannerTech","kpi4gScanner","kpi3gScanner","kpi2gScanner","driveTestTechBand","selectedKpiTechCompare","kpi4gCompare","kpi3gCompare","kpi2gCompare","selectedKpiScannerTechCompare","kpi4gScannerCompare","kpi3gScannerCompare","kpi2gScannerCompare","Autocomplete","getOptionLabel","option","renderInput","FiltersTop","disableCloseOnSelect","renderTags","getTagProps","renderOption","selected","Checkbox","checkedIcon","findWhere","FiltersTopCompare","nested","paddingLeft","nestedTwo","bands2g","bands3g","bands4g","bands5g","FiltersSide","openTopology","setOpenTopology","openTopology5g","setOpenTopology5g","openTopology4g","setOpenTopology4g","openTopology3g","setOpenTopology3g","openTopology2g","setOpenTopology2g","openUe","setOpenUe","open4g","setOpen4g","open3g","setOpen3g","open2g","setOpen2g","commonMenu","setCommonMenu","openEvents","setOpenEvents","openEventsVoice","setOpenEventsVoice","openEventsPacket","setOpenEventsPacket","openScanner","setOpenScanner","openScanner4g","setOpenScanner4g","openScanner3g","setOpenScanner3g","openScanner2g","setOpenScanner2g","commonScannerMenu","setCommonScannerMenu","techBandVoiceSelection","techBandPacketSelection","voice","packet","topology2g900","topology2g1800","topologyLabels2g","topology3g900","topology3g2100","topologyLabels3g","topology4g800","topology4g2100","topology4g2600","topologyLabels4g","topology5g78","topologyLabels5g","setState","value4g","setValue4g","value3g","setValue3g","value2g","setValue2g","valueScanner4g","setValueScanner4g","valueScanner3g","setValueScanner3g","valueScanner2g","setValueScanner2g","_removeLayerById","handleChangeType","handleChangeTopology2g","mapBounds","getEast","getWest","getNorth","getSouth","mapBoundsPoints","northEast","_northEast","southWest","_southWest","indexOf","handleChangeTopology3g","handleChangeTopology4g","getZoom","handleChangeTopologyLabels","handleChangeTechBand","_addLayerTechBandKpi","band","makeDetailsTechBandKpi","updateTopology2g","topology2gDto","addTopologyLabels","topologyLabels2gDto","updateTopology3g","topology3gDto","topologyLabels3gDto","updateTopology4g","topology4gDto","topologyLabels4gDto","updateTopology5g","topology5gDto","topologyLabels5gDto","driveTestTechBandLegend","_handleChangeFailuresFilters","_voiceFilter","_packetFilter","cardStyle","topList","aria-labelledby","Collapse","in","timeout","unmountOnExit","FormGroup","RadioGroup","bsics","scs","pcis","FiltersSideCompare","console","techBandpacketActiveCompare","techBandvoiceActiveCompare","DrivetestChart","stepSize","AdditionalInfo","dataCompare","measures","average","maximum","minimum","SummaryDialogForm","SummaryDialog","CarriersColorsDialogForm","_editColor","_renderActionsColor","CarriersColorsDialog","CarriersColorsPickerDialog","setColor","SaveCarrierColor","onChangeComplete","selectedColor","hex","FailuresMap","GetFailuresFilters","GetDriveTestsCities","GetFailuresFiltersSideCompare","_addLayerKpiScanner","driveTestLegend","topologyColors","updateTopologyCarriersColors","invalidateSize","sync","chartData","reason","ByCoordinates","ByFile","Overshooting","numberOfBins","powerDelta","clusterRadius","warningPwrDelta","powerThreshold","qualityDelta","qualityThreshold","warningQualityDelta","_handleOsParametersChange","_handleTechChange","FormControl","RunOvershootingByCoordinates","UploadFileThenRunOvershooting","CrossedSectors","CoverageHoles","Algorithms","algoFilePath","GetAlgorithmsCities","SaveExcelFileRequest","SaveExcelFile","ExcelUpload","repositoryExcelInputFilePath","UploadExcelFile","ExcelTable","_downloadFile","DownloadRepositoryFile","RepositoryForm","RepositoryFileRemoveDialog","RemoveRepositoryFile","InputBase","inputProps","Repository","PdfUpload","UploadPdfFile","PdfTable","_handleRowClick","rowState","GetPdfInformation","PdfViewer","pdf","pdfInformationBase64Complete","pdfSelected","OptSiteDatatable","jvcoId","OptSiteDialogForm","statusClosedDate","setStatusClosedDate","closedDate","newTouched","submit","each","keys","fullMessages","polygon","driveTestCity","driveTestRound","InputLabelProps","shrink","area","numberOfFailures","source","issueDescription","solutionType","cfnOwner","cfnProposals","cell","requested","incTefNumber","executionDate","operatorComments","hasAttachment","DownloadAttachment","OptSiteDialog","object","CreateOptSiteIncident","OptSiteDeleteDialog","DeleteOptSiteIncident","OptSiteAddFileDialog","UploadAttachment","OptSiteDeleteFileDialog","RemoveAttachment","OptSiteTracker","ExportOptSitesIncidents","OptOverallDatatable","OptOverallDialogForm","category","reportedDate","vfUkComments","vfUkOwner","implementationDate","closeDate","overallComments","overallImprovement","OptOverallDialog","CreateOptOverallIncident","OptOverallDeleteDialog","DeleteOptOverallIncident","OptOverallTracker","ExportOptOverallsIncidents","exact","AuthGuard","DashboardLayout","RepositoryExcel","AuthLayout","lazy","ErrorLayout","DashboardAnalyticsView","DashboardDefaultView","OverviewView","PresentationView","displayed","Notifier","store","useSnackbar","myKey","onExited","helpers","elements","Rectangle","draw","signX","signY","borderSkipped","_chart","vm","_view","base","barSize","abs","halfStroke","borderLeft","borderTop","fillStyle","strokeStyle","lineWidth","corners","startCorner","cornerAt","corner","nextCornerId","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","quadraticCurveTo","updateLocale","relativeTime","future","past","ss","m","mm","h","hh","dd","M","MM","yy","validators","regex","RegExp","pattern","test","instance","AxiosMockAdapter","delayResponse","mock","onGet","reply","canHire","country","firstName","isPublic","lastName","phone","timezone","updated_at","subscription","proposalsLeft","templatesLeft","invitesLeft","adsLeft","hasAnalytics","hasEmailAlerts","settings","draft","events","desc","allDay","conversations","otherUser","messages","sender","authUser","contentType","unread","groups","connections","spent","rating","summary","zipCode","address1","address2","iban","autoCC","verified","invoices","vat","balance","emails","paymentMethod","logs","IP","seen","favorited","subject","receiver","start_date","end_date","bio","brief","mimeType","activities","subject_type","action_type","action_desc","subscribers","cover","common_connections","posts","liked","likes","reviews","reviewer","pricePerHour","hours","invoice","due_date","issue_date","company","nzbn","address","subtotal","taxes","total","lists","payment","promoCode","cuantity","billing","cyan","createBrowserHistory","basename","process","preloadedState","middlewares","thunkMiddleware","middlewareEnhancer","composeWithDevTools","applyMiddleware","enhancers","composedEnhancers","compose","createStore","configureStore","interceptor","App","ThemeProvider","maxSnack","autoHideDuration","utils","MomentUtils","window","hostname","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister","emptyLabel","fileInput","AddPost","fileInputRef","setValue","handleAttach","Input","shape","success","lightBlue","warning","Alert","forwardRef","setOpen","displayName","CodeBlock","async","language","Component","Prism","codeLines","indexOfFirstChar","output","line","substr","trimCode","outline","CookiesNotification","Cookies","set","dropZone","dragActive","FilesDropzone","maxSize","setFiles","handleDrop","concat","useDropzone","onDrop","getRootProps","getInputProps","isDragActive","underline","suppressScrollX","bytesToSize","Menu","REACT_APP_GA_MEASUREMENT_ID","Markdown","highlightAll","CustomRouterLink","itemLeaf","buttonLeaf","fontWeightRegular","NavigationListItem","depth","Icon","openProp","disableGutters","activeClassName","NavigationList","reduce","matchPath","reduceChildRoutes","Navigation","listItem","avatarBlue","avatarGreen","avatarOrange","avatarRed","NotificationList","NotificationMarkAsRead","addedDate","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","EmptyList","NotificationsPopover","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","CommentBubble","CommentForm","likeButton","likedButton","shareButton","shareIcon","Reactions","post","setLiked","setLikes","accessTimeIcon","mediaArea","backgroundPosition","PostCard","CardActionArea","CardMedia","reactions","transition","transitions","create","easing","sharp","duration","leavingScreen","recommended","contact","startButton","PricingModal","Dialog","subtitle","learnMoreButton","ProjectCard","colo","starIcon","starFilledIcon","amber","starBorderIcon","ReviewStars","starCount","starNodes","starNode","useStyles1","useStyles2","activeButton","BLOCK_TYPES","blockType","tooltip","FormatQuoteIcon","FormatListBulletedIcon","FormatListNumberedIcon","CodeIcon","FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon","INLINE_STYLES","inlineStyle","FormatBoldIcon","FormatItalicIcon","FormatUnderlined","ButtonBase","BlockTypeButtons","editorState","onToggle","selection","getSelection","getCurrentContent","getBlockForKey","getStartKey","getType","blockData","preventDefault","handleClick","InlineStyleButtons","currentStyle","getCurrentInlineStyle","has","EditorToolbar","newBlockRenderMap","Map","unstyled","element","paragraph","blockRenderMap","DefaultDraftBlockRenderMap","merge","editorContainer","textAlignLeft","textAlignCenter","textAlignRight","textAlignJustify","RichEditor","editorRef","EditorState","createEmpty","setEditorState","handleEditorChange","newContentState","Modifier","setBlockData","newEditorState","RichUtils","toggleBlockType","toggleInlineStyle","focus","blockStyleFn","contentBlock","string","charAt","handleKeyCommand","command","newState","keyBindingFn","keyCode","getDefaultKeyBinding","onTab","spellCheck","ScrollReset","scrollTo","Filter","initialValues","paymentStatus","amount","projectStatus","customerName","customerType","customerEmail","customerPhone","customerAge","expandProject","setExpandProject","expandCustomer","setExpandCustomer","setValues","handleFieldChange","onSubmit","select","SelectProps","native","newValues","Chip","deleteIcon","onDelete","handleTagDelete","Slider","valueLabelDisplay","ToggleButtonGroup","exclusive","ToggleButton","searchButton","Search","onSearch","filterButton","filterIcon","SearchBar","openFilter","setOpenFilter","more","StackAvatars","avatarNodes","small","medium","large","StatusBullet","rootClassName","TableEditBar","onMarkPaid","onMarkUnpaid","PaperProps","backdrop","Loading","Backdrop","iconButton","selectedDate","handleDateChange","usePickerState","selectedStateDate","setSelectedDate","FilePicker","orientation","PowerBIDashboard","embedConfig","embedUrl","tokenType","models","TokenType","Aad","panes","filters","expanded","BackgroundType","Default","cssClassName","getEmbeddedComponent","embeddedReport","report","_self","Layer2G","Layer3G","Layer4G","overlays","layerControl","LegendElements","Title","initMap","getActiveOverlays","getActivePopup","isUndefined","AddLegend","onUpdateCoordinates","onAddMap","osmBase","tileLayer","baseMaps","Satellite","attributionControl","preferCanvas","groupedLayers","that","e","GetMapDataBounds","Markers","coords","latLng","textMarker","divIcon","html","Markers2G","currentZoom","GetRadius","azimuth","beamWidth","cellColor","cellRadius","weight","makeDetailsTableTopologySeparated","Markers3G","Markers4G","Markers5G","technology","RemoveLayer","intToRGB","invertColor","makeDetailsTableTopology","cellName","mechanicalTilt","electricalTilt","TopRightCornerLatitude","TopRightCornerLongitude","BottomLeftCornerLatitude","BottomLeftCornerLongitude","thatState","_layers","obj","_update","eachLayer","removeLayer","layerId","hasLayer","pane","getPopup","isOpen","Control","removeControl","onAdd","div","DomUtil","innerHTML","legendColor","legendValue","substring","_hex","parseInt","g","padZero","str","_len","Array","connect","bindActionCreators","MapActions","_getChartOptions","legendPosition","tension","_getScaleValue","newValue","parseFloat","decimal","String","difference","finalValue","toFixed","_createChart","elem","ChartJs","_updateChart","destroy","update","canvasHeight","canvasWidth","PdfModalForm","numPages","setNumPages","pageNumber","setPageNumber","setScale","zoomOutLimit","setZoomOutLimit","zoomInLimit","setZoomInLimit","changePage","offset","prevPageNumber","workerSrc","onLoadSuccess","pdfjs","GlobalWorkerOptions","version","PdfModal","SinglePage","PdfModalVisibility","setPdfModalVisibility","Box","rounded","finalStyle","formControl","chips","chip","formControlStyle","customRenderValue","labelWidth","setLabelWidth","InputLabelRef","offsetWidth","htmlFor","renderValue","interceptors","request","use","configuration","headers","Authorization","hasLoading","SetLoading","Promise","reject","statusCode","RedirectToError","errorObject","isString","viz","showExportPDFDialog","dispose","containerDiv","hideToolbar","onFirstVizSizeKnown","innerHeight","setAttribute","tableau","Viz","_initViz","MaterialCheckbox","onCheck","labelStyle","muiName","DialogTitle","closeButton","DialogContent","MuiDialogContent","isDisabled","modal","autoScrollBodyContent","dialogProps","disableBackdropClick","disableEscapeKeyDown","DialogActions","useContext","__RouterContext","bytes","decimals","k","dm","sizes","getMuiTheme","outerTheme","actionColumnWidth","MUIDataTable","MUIDataTableHead","head","MUIDataTableHeadCell","MUIDataTableHeadRow","MUIDataTableBody","MUIDataTableBodyRow","MUIDataTableBodyCell","body","MUIDataTablePagination","MUIDataTableViewCol","MUIDataTableSearch","MUIDataTableToolbar","MUIDataTableFilter","MUIDataTableFilterList","_onRowSelection","currentRowsSelected","allRowsSelected","rowsSelected","onRowSelection","dt","showDownload","showPrint","download","print","onRowSelectionChange","UPDATE_COORDINATES","ADD_MAP","UPDATE_TOPOLOGY","UPDATE_LEGEND","UPDATE_POPUP","UPDATE_OVERLAYS","onUpdateTopology","onUpdatePopup","onUpdateOverlays","propTypes","PropTypes","node","array","isRequired","SESSION_LOGIN","SESSION_LOGOUT","SET_NOTIFICATIONS","USER_INFO","SET_LOADING","REDIRECT_TO_ERROR","onLogin","onRedirectToError","login","password","setItem","logout","removeItem","recover","CompleteRegistration","rpassword","ResetPassword","FetchNotifications","formData","FormData","append","ShowFile","blob","decodeURIComponent","newBlob","Blob","msSaveOrOpenBlob","URL","createObjectURL","createElement","appendChild","removeChild","revokeObjectURL","responseType","buildGradient"],"mappings":"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","file":"static/js/main.1629a1ea.chunk.js","sourcesContent":["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 const key = notification.options && notification.options.key;\r\n\r\n return {\r\n type: ENQUEUE_SNACKBAR,\r\n notification: {\r\n ...notification,\r\n key: key || new Date().getTime() + Math.random(),\r\n },\r\n };\r\n};\r\n\r\nexport const closeSnackbar = key => ({\r\n type: CLOSE_SNACKBAR,\r\n dismissAll: !key, // dismiss all if no key has been defined\r\n key,\r\n});\r\n\r\nexport const removeSnackbar = key => ({\r\n type: REMOVE_SNACKBAR,\r\n key,\r\n});","/* eslint-disable no-restricted-properties */\r\n/* eslint-disable no-restricted-syntax */\r\n/* eslint-disable prefer-rest-params */\r\n/* eslint-disable guard-for-in */\r\n/* eslint-disable no-mixed-operators */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable consistent-return */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-throw-literal */\r\n/* eslint-disable global-require */\r\n/* eslint-disable no-undef */\r\n/* eslint-disable func-names */\r\n/**\r\n * Semicircle extension for L.Circle.\r\n * Jan Pieter Waagmeester \r\n *\r\n * This version is tested with leaflet 1.0.2\r\n */\r\n(function (factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine(['leaflet'], factory);\r\n\t} else if (typeof module !== 'undefined' && typeof require !== 'undefined') {\r\n\t\t// Node/CommonJS\r\n\t\tmodule.exports = factory(require('leaflet'));\r\n\t} else {\r\n\t\t// Browser globals\r\n\t\tif (typeof window.L === 'undefined') {\r\n\t\t\tthrow 'Leaflet must be loaded first';\r\n\t\t}\r\n\t\tfactory(window.L);\r\n\t}\r\n}((L) => {\r\n\tconst DEG_TO_RAD = Math.PI / 180;\r\n\r\n\t// make sure 0 degrees is up (North) and convert to radians.\r\n\tfunction fixAngle(angle) {\r\n\t\treturn (angle - 90) * DEG_TO_RAD;\r\n\t}\r\n\r\n\t// rotate point [x + r, y+r] around [x, y] by `angle` radians.\r\n\tfunction rotated(p, angle, r) {\r\n\t\treturn p.add(\r\n\t\t\tL.point(Math.cos(angle), Math.sin(angle)).multiplyBy(r)\r\n\t\t);\r\n\t}\r\n\r\n\tL.Point.prototype.rotated = function (angle, r) {\r\n\t\treturn rotated(this, angle, r);\r\n\t};\r\n\r\n\tconst semicircle = {\r\n\t\toptions: {\r\n\t\t\tstartAngle: 0,\r\n\t\t\tstopAngle: 359.9999,\r\n\t\t\tinnerRadius: 0\r\n\t\t},\r\n\r\n\t\tstartAngle() {\r\n\t\t\tif (this.options.startAngle < this.options.stopAngle) {\r\n\t\t\t\treturn fixAngle(this.options.startAngle);\r\n\t\t\t}\r\n\t\t\treturn fixAngle(this.options.stopAngle);\r\n\t\t},\r\n\t\tstopAngle() {\r\n\t\t\tif (this.options.startAngle < this.options.stopAngle) {\r\n\t\t\t\treturn fixAngle(this.options.stopAngle);\r\n\t\t\t}\r\n\t\t\treturn fixAngle(this.options.startAngle);\r\n\t\t},\r\n\r\n\t\tsetStartAngle(angle) {\r\n\t\t\tthis.options.startAngle = angle;\r\n\t\t\treturn this.redraw();\r\n\t\t},\r\n\r\n\t\tsetStopAngle(angle) {\r\n\t\t\tthis.options.stopAngle = angle;\r\n\t\t\treturn this.redraw();\r\n\t\t},\r\n\r\n\t\tsetInnerRadius(radius) {\r\n\t\t\tthis.options.innerRadius = radius;\r\n\t\t\treturn this.redraw();\r\n\t\t},\r\n\r\n\t\tsetDirection(direction, degrees) {\r\n\t\t\tif (degrees === undefined) {\r\n\t\t\t\tdegrees = 10;\r\n\t\t\t}\r\n\t\t\tthis.options.startAngle = direction - (degrees / 2);\r\n\t\t\tthis.options.stopAngle = direction + (degrees / 2);\r\n\r\n\t\t\treturn this.redraw();\r\n\t\t},\r\n\t\tgetDirection() {\r\n\t\t\treturn this.stopAngle() - (this.stopAngle() - this.startAngle()) / 2;\r\n\t\t},\r\n\r\n\t\tisSemicircle() {\r\n\t\t\tconst { startAngle } = this.options;\r\n\t\t\tconst { stopAngle } = this.options;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t!(startAngle === 0 && stopAngle > 359)\r\n\t\t\t\t&& !(startAngle === stopAngle)\r\n\t\t\t);\r\n\t\t},\r\n\t\t_containsPoint(p) {\r\n\t\t\tfunction normalize(angle) {\r\n\t\t\t\twhile (angle <= -Math.PI) {\r\n\t\t\t\t\tangle += 2.0 * Math.PI;\r\n\t\t\t\t}\r\n\t\t\t\twhile (angle > Math.PI) {\r\n\t\t\t\t\tangle -= 2.0 * Math.PI;\r\n\t\t\t\t}\r\n\t\t\t\treturn angle;\r\n\t\t\t}\r\n\t\t\tlet angle = Math.atan2(p.y - this._point.y, p.x - this._point.x);\r\n\t\t\tconst nStart = normalize(this.startAngle());\r\n\t\t\tlet nStop = normalize(this.stopAngle());\r\n\t\t\tif (nStop <= nStart) {\r\n\t\t\t\tnStop += 2.0 * Math.PI;\r\n\t\t\t}\r\n\t\t\tif (angle <= nStart) {\r\n\t\t\t\tangle += 2.0 * Math.PI;\r\n\t\t\t}\r\n\t\t\treturn (\r\n\t\t\t\tnStart < angle && angle <= nStop\r\n\t\t\t\t&& p.distanceTo(this._point) <= this._radius + this._clickTolerance()\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tL.SemiCircle = L.Circle.extend(semicircle);\r\n\tL.SemiCircleMarker = L.CircleMarker.extend(semicircle);\r\n\r\n\tL.semiCircle = function (latlng, options) {\r\n\t\treturn new L.SemiCircle(latlng, options);\r\n\t};\r\n\tL.semiCircleMarker = function (latlng, options) {\r\n\t\treturn new L.SemiCircleMarker(latlng, options);\r\n\t};\r\n\r\n\tconst _updateCircleSVG = L.SVG.prototype._updateCircle;\r\n\tconst _updateCircleCanvas = L.Canvas.prototype._updateCircle;\r\n\r\n\tL.SVG.include({\r\n\t\t_updateCircle(layer) {\r\n\t\t\t// If we want a circle, we use the original function\r\n\t\t\tif (!(layer instanceof L.SemiCircle || layer instanceof L.SemiCircleMarker)\r\n\t\t\t\t|| !layer.isSemicircle()) {\r\n\t\t\t\treturn _updateCircleSVG.call(this, layer);\r\n\t\t\t}\r\n\t\t\tif (layer._empty()) {\r\n\t\t\t\treturn this._setPath(layer, 'M0 0');\r\n\t\t\t}\r\n\r\n\t\t\tconst p = layer._map.latLngToLayerPoint(layer._latlng);\r\n\t\t\tconst r = layer._radius;\r\n\t\t\tconst r2 = Math.round(layer._radiusY || r);\r\n\t\t\tconst start = p.rotated(layer.startAngle(), r);\r\n\t\t\tconst end = p.rotated(layer.stopAngle(), r);\r\n\r\n\t\t\tconst largeArc = (layer.options.stopAngle - layer.options.startAngle >= 180) ? '1' : '0';\r\n\r\n\t\t\tif (layer.options.innerRadius === 0 || layer.options.innerRadius === undefined) {\r\n\t\t\t\tconst d = `M${p.x},${p.y\r\n\t\t\t\t\t// line to first start point\r\n\t\t\t\t}L${start.x},${start.y\r\n\t\t\t\t}A ${r},${r2},0,${largeArc},1,${end.x},${end.y\r\n\t\t\t\t} z`;\r\n\r\n\t\t\t\tthis._setPath(layer, d);\r\n\t\t\t} else {\r\n\t\t\t\tif (layer.options.innerRadius >= layer.options.radius) {\r\n\t\t\t\t\tthis._mRadius = layer.options.radius - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis._mRadius = layer.options.innerRadius;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst { lng } = layer._latlng;\r\n\t\t\t\tconst { lat } = layer._latlng;\r\n\t\t\t\tconst map = layer._map;\r\n\t\t\t\tconst { crs } = map.options;\r\n\r\n\t\t\t\tconst d = Math.PI / 180;\r\n\t\t\t\tconst latR = (this._mRadius / Earth.R) / d;\r\n\t\t\t\tconst top = map.project([lat + latR, lng]);\r\n\t\t\t\tconst bottom = map.project([lat - latR, lng]);\r\n\t\t\t\tconst p2 = top.add(bottom).divideBy(2);\r\n\t\t\t\tconst lat2 = map.unproject(p2).lat;\r\n\t\t\t\tlet lngR = Math.acos((Math.cos(latR * d) - Math.sin(lat * d) * Math.sin(lat2 * d))\r\n\t\t\t\t\t/ (Math.cos(lat * d) * Math.cos(lat2 * d))) / d;\r\n\r\n\t\t\t\tif (Number.isNaN(lngR) || lngR === 0) {\r\n\t\t\t\t\tlngR = latR / Math.cos(Math.PI / 180 * lat); // Fallback for edge case, #2425\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._point = p2.subtract(map.getPixelOrigin());\r\n\t\t\t\tthis._radius = Number.isNaN(lngR) ? 0 : p2.x - map.project([lat2, lng - lngR]).x;\r\n\t\t\t\tthis._radiusY = p2.y - top.y;\r\n\r\n\t\t\t\tconst innerStart = p.rotated(layer.startAngle(), this._radius);\r\n\t\t\t\tconst innerEnd = p.rotated(layer.stopAngle(), this._radius);\r\n\t\t\t\tconst innerR2 = Math.round(this._radiusY || this._radius);\r\n\r\n\t\t\t\tconst path = `M${innerStart.x},${innerStart.y\r\n\t\t\t\t\t// line to first start point\r\n\t\t\t\t}L${start.x},${start.y\r\n\t\t\t\t}A ${r},${r2},0,${largeArc},1,${end.x},${end.y\r\n\t\t\t\t}L ${innerEnd.x},${innerEnd.y\r\n\t\t\t\t}M${innerStart.x},${innerStart.y\r\n\t\t\t\t}A ${this._radius},${innerR2},0,${largeArc},1,${innerEnd.x},${innerEnd.y\r\n\t\t\t\t}`;\r\n\r\n\t\t\t\tthis._setPath(layer, path);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tL.Canvas.include({\r\n\t\t_updateCircle(layer) {\r\n\t\t\t// If we want a circle, we use the original function\r\n\t\t\tif (!(layer instanceof L.SemiCircle || layer instanceof L.SemiCircleMarker)\r\n\t\t\t\t|| !layer.isSemicircle()) {\r\n\t\t\t\treturn _updateCircleCanvas.call(this, layer);\r\n\t\t\t}\r\n\r\n\t\t\tconst p = layer._point;\r\n\t\t\tconst ctx = this._ctx;\r\n\t\t\tconst r = layer._radius;\r\n\t\t\tconst s = (layer._radiusY || r) / r;\r\n\t\t\tconst start = p.rotated(layer.startAngle(), r);\r\n\t\t\t// comentado porque dá erro\r\n\t\t\t// console.log(layer)\r\n\t\t\t// console.log(this)\r\n\t\t\t// this._drawnLayers[layer._leaflet_id] = layer;\r\n\r\n\t\t\tif (s !== 1) {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.scale(1, s);\r\n\t\t\t}\r\n\r\n\t\t\tif (layer.options.innerRadius === 0 || layer.options.innerRadius === undefined) {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.moveTo(p.x, p.y);\r\n\t\t\t\tctx.lineTo(start.x, start.y);\r\n\t\t\t\tctx.arc(p.x, p.y, r, layer.startAngle(), layer.stopAngle());\r\n\t\t\t\tctx.lineTo(p.x, p.y);\r\n\t\t\t} else {\r\n\t\t\t\tif (layer.options.innerRadius >= layer.options.radius) {\r\n\t\t\t\t\tthis._mRadius = layer.options.radius - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis._mRadius = layer.options.innerRadius;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst { lng } = layer._latlng;\r\n\t\t\t\tconst { lat } = layer._latlng;\r\n\t\t\t\tconst map = layer._map;\r\n\t\t\t\tconst { crs } = map.options;\r\n\r\n\t\t\t\tconst d = Math.PI / 180;\r\n\t\t\t\tconst latR = (this._mRadius / Earth.R) / d;\r\n\t\t\t\tconst top = map.project([lat + latR, lng]);\r\n\t\t\t\tconst bottom = map.project([lat - latR, lng]);\r\n\t\t\t\tconst p2 = top.add(bottom).divideBy(2);\r\n\t\t\t\tconst lat2 = map.unproject(p2).lat;\r\n\t\t\t\tlet lngR = Math.acos((Math.cos(latR * d) - Math.sin(lat * d) * Math.sin(lat2 * d))\r\n\t\t\t\t\t/ (Math.cos(lat * d) * Math.cos(lat2 * d))) / d;\r\n\r\n\t\t\t\tif (Number.isNaN(lngR) || lngR === 0) {\r\n\t\t\t\t\tlngR = latR / Math.cos(Math.PI / 180 * lat); // Fallback for edge case, #2425\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._point = p2.subtract(map.getPixelOrigin());\r\n\t\t\t\tthis._radius = Number.isNaN(lngR) ? 0 : p2.x - map.project([lat2, lng - lngR]).x;\r\n\t\t\t\tthis._radiusY = p2.y - top.y;\r\n\r\n\t\t\t\tconst innerStart = p.rotated(layer.startAngle(), this._radius);\r\n\t\t\t\tconst innerEnd = p.rotated(layer.stopAngle(), this._radius);\r\n\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.moveTo(innerStart.x, innerStart.y);\r\n\t\t\t\tctx.lineTo(start.x, start.y);\r\n\t\t\t\tctx.arc(p.x, p.y, r, layer.startAngle(), layer.stopAngle());\r\n\t\t\t\tctx.lineTo(innerEnd.x, innerEnd.y);\r\n\t\t\t\tctx.arc(p.x, p.y, this._radius, layer.startAngle(), layer.stopAngle());\r\n\t\t\t}\r\n\r\n\t\t\tif (s !== 1) {\r\n\t\t\t\tctx.restore();\r\n\t\t\t}\r\n\r\n\t\t\tthis._fillStroke(ctx, layer);\r\n\t\t}\r\n\t});\r\n}));\r\n\r\n// @function extend(dest: Object, src?: Object): Object\r\n// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\nfunction extend(dest) {\r\n\tlet i; let j; let len; let\r\n\t\tsrc;\r\n\r\n\tfor (j = 1, len = arguments.length; j < len; j++) {\r\n\t\tsrc = arguments[j];\r\n\t\tfor (i in src) {\r\n\t\t\tdest[i] = src[i];\r\n\t\t}\r\n\t}\r\n\treturn dest;\r\n}\r\n\r\nconst CRS = {\r\n\t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n\t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n\tlatLngToPoint(latlng, zoom) {\r\n\t\tconst projectedPoint = this.projection.project(latlng);\r\n\t\tconst scale = this.scale(zoom);\r\n\r\n\t\treturn this.transformation._transform(projectedPoint, scale);\r\n\t},\r\n\r\n\t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n\t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n\t// zoom into geographical coordinates.\r\n\tpointToLatLng(point, zoom) {\r\n\t\tconst scale = this.scale(zoom);\r\n\t\tconst untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n\t\treturn this.projection.unproject(untransformedPoint);\r\n\t},\r\n\r\n\t// @method project(latlng: LatLng): Point\r\n\t// Projects geographical coordinates into coordinates in units accepted for\r\n\t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n\tproject(latlng) {\r\n\t\treturn this.projection.project(latlng);\r\n\t},\r\n\r\n\t// @method unproject(point: Point): LatLng\r\n\t// Given a projected coordinate returns the corresponding LatLng.\r\n\t// The inverse of `project`.\r\n\tunproject(point) {\r\n\t\treturn this.projection.unproject(point);\r\n\t},\r\n\r\n\t// @method scale(zoom: Number): Number\r\n\t// Returns the scale used when transforming projected coordinates into\r\n\t// pixel coordinates for a particular zoom. For example, it returns\r\n\t// `256 * 2^zoom` for Mercator-based CRS.\r\n\tscale(zoom) {\r\n\t\treturn 256 * Math.pow(2, zoom);\r\n\t},\r\n\r\n\t// @method zoom(scale: Number): Number\r\n\t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n\t// factor of `scale`.\r\n\tzoom(scale) {\r\n\t\treturn Math.log(scale / 256) / Math.LN2;\r\n\t},\r\n\r\n\t// @method getProjectedBounds(zoom: Number): Bounds\r\n\t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n\tgetProjectedBounds(zoom) {\r\n\t\tif (this.infinite) { return null; }\r\n\r\n\t\tconst b = this.projection.bounds;\r\n\t\tconst s = this.scale(zoom);\r\n\t\tconst min = this.transformation.transform(b.min, s);\r\n\t\tconst max = this.transformation.transform(b.max, s);\r\n\r\n\t\treturn new Bounds(min, max);\r\n\t},\r\n\r\n\t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n\t// Returns the distance between two geographical coordinates.\r\n\r\n\t// @property code: String\r\n\t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n\t//\r\n\t// @property wrapLng: Number[]\r\n\t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n\t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n\t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n\t//\r\n\t// @property wrapLat: Number[]\r\n\t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n\t// wrapLng: [min, max],\r\n\t// wrapLat: [min, max],\r\n\r\n\t// @property infinite: Boolean\r\n\t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n\tinfinite: false,\r\n\r\n\t// @method wrapLatLng(latlng: LatLng): LatLng\r\n\t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n\t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n\twrapLatLng(latlng) {\r\n\t\tconst lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng;\r\n\t\tconst lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat;\r\n\t\tconst { alt } = latlng;\r\n\r\n\t\treturn new LatLng(lat, lng, alt);\r\n\t},\r\n\r\n\t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n\t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n\t// that its center is within the CRS's bounds.\r\n\t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n\twrapLatLngBounds(bounds) {\r\n\t\tconst center = bounds.getCenter();\r\n\t\tconst newCenter = this.wrapLatLng(center);\r\n\t\tconst latShift = center.lat - newCenter.lat;\r\n\t\tconst lngShift = center.lng - newCenter.lng;\r\n\r\n\t\tif (latShift === 0 && lngShift === 0) {\r\n\t\t\treturn bounds;\r\n\t\t}\r\n\r\n\t\tconst sw = bounds.getSouthWest();\r\n\t\tconst ne = bounds.getNorthEast();\r\n\t\tconst newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift);\r\n\t\tconst newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n\t\treturn new LatLngBounds(newSw, newNe);\r\n\t}\r\n};\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.Earth\r\n *\r\n * Serves as the base for CRS that are global such that they cover the earth.\r\n * Can only be used as the base for other CRS and cannot be used directly,\r\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\r\n * meters.\r\n */\r\n\r\nconst Earth = extend({}, CRS, {\r\n\twrapLng: [-180, 180],\r\n\r\n\t// Mean Earth Radius, as recommended for use by\r\n\t// the International Union of Geodesy and Geophysics,\r\n\t// see http://rosettacode.org/wiki/Haversine_formula\r\n\tR: 6371000,\r\n\r\n\t// distance between two geographical points using spherical law of cosines approximation\r\n\tdistance(latlng1, latlng2) {\r\n\t\tconst rad = Math.PI / 180;\r\n\t\tconst lat1 = latlng1.lat * rad;\r\n\t\tconst lat2 = latlng2.lat * rad;\r\n\t\tconst sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2);\r\n\t\tconst sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2);\r\n\t\tconst a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon;\r\n\t\tconst c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n\t\treturn this.R * c;\r\n\t}\r\n});\r\n","export default (name = '') =>\r\n name\r\n .replace(/\\s+/, ' ')\r\n .split(' ')\r\n .slice(0, 2)\r\n .map((v) => v && v[0].toUpperCase())\r\n .join('')\r\n","import { colors } from '@material-ui/core'\r\n\r\nconst white = '#FFFFFF'\r\nconst black = '#000000'\r\n\r\nexport default {\r\n black,\r\n white,\r\n primary: {\r\n contrastText: white,\r\n dark: colors.blue[900],\r\n main: colors.blue[800],\r\n light: colors.blue[100],\r\n },\r\n secondary: {\r\n contrastText: white,\r\n dark: colors.blue[900],\r\n main: colors.blue['A400'],\r\n light: colors.blue['A400'],\r\n },\r\n error: {\r\n contrastText: white,\r\n dark: colors.red[900],\r\n main: colors.red[600],\r\n light: colors.red[400],\r\n },\r\n text: {\r\n primary: colors.blueGrey[900],\r\n secondary: colors.blueGrey[600],\r\n link: colors.blue[600],\r\n },\r\n link: colors.blue[800],\r\n icon: colors.blueGrey[600],\r\n background: {\r\n default: '#F4F6F8',\r\n paper: white,\r\n },\r\n divider: colors.grey[200],\r\n}\r\n","import palette from './palette'\r\n\r\nexport default {\r\n h1: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '35px',\r\n letterSpacing: '-0.24px',\r\n lineHeight: '40px',\r\n },\r\n h2: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '29px',\r\n letterSpacing: '-0.24px',\r\n lineHeight: '32px',\r\n },\r\n h3: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '24px',\r\n letterSpacing: '-0.06px',\r\n lineHeight: '28px',\r\n },\r\n h4: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '20px',\r\n letterSpacing: '-0.06px',\r\n lineHeight: '24px',\r\n },\r\n h5: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '16px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '20px',\r\n },\r\n h6: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '20px',\r\n },\r\n subtitle1: {\r\n color: palette.text.primary,\r\n fontSize: '16px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '25px',\r\n },\r\n subtitle2: {\r\n color: palette.text.secondary,\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '21px',\r\n },\r\n body1: {\r\n color: palette.text.primary,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '21px',\r\n },\r\n body2: {\r\n color: palette.text.secondary,\r\n fontSize: '12px',\r\n letterSpacing: '-0.04px',\r\n lineHeight: '18px',\r\n },\r\n button: {\r\n color: palette.text.primary,\r\n fontSize: '14px',\r\n },\r\n caption: {\r\n color: palette.text.secondary,\r\n fontSize: '11px',\r\n letterSpacing: '0.33px',\r\n lineHeight: '13px',\r\n },\r\n overline: {\r\n color: palette.text.secondary,\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n letterSpacing: '0.33px',\r\n lineHeight: '13px',\r\n textTransform: 'uppercase',\r\n },\r\n}\r\n","import { colors } from '@material-ui/core'\r\n\r\nexport default {\r\n root: {\r\n backgroundColor: colors.blueGrey[50],\r\n color: colors.blueGrey[900],\r\n },\r\n deletable: {\r\n '&:focus': {\r\n backgroundColor: colors.blueGrey[100],\r\n },\r\n },\r\n}\r\n","import palette from '../palette'\r\n\r\nexport default {\r\n root: {\r\n color: palette.icon,\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\r\n },\r\n },\r\n}\r\n","import palette from '../palette'\r\n\r\nexport default {\r\n root: {},\r\n input: {\r\n '&::placeholder': {\r\n opacity: 1,\r\n color: palette.text.secondary,\r\n },\r\n },\r\n}\r\n","import { colors } from '@material-ui/core'\r\n\r\nexport default {\r\n root: {\r\n borderRadius: 3,\r\n overflow: 'hidden',\r\n },\r\n colorPrimary: {\r\n backgroundColor: colors.blueGrey[50],\r\n },\r\n}\r\n","import palette from '../palette'\r\n\r\nexport default {\r\n root: {\r\n color: palette.icon,\r\n minWidth: 32,\r\n },\r\n}\r\n","import { colors } from '@material-ui/core'\r\n\r\nexport default {\r\n root: {\r\n backgroundColor: colors.grey[50],\r\n },\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 MuiButton,\r\n MuiCardActions,\r\n MuiCardContent,\r\n MuiCardHeader,\r\n MuiChip,\r\n MuiIconButton,\r\n MuiInputBase,\r\n MuiLinearProgress,\r\n MuiListItemIcon,\r\n MuiOutlinedInput,\r\n MuiPaper,\r\n MuiTableHead,\r\n MuiTableCell,\r\n MuiTableRow,\r\n MuiToggleButton,\r\n MuiTypography,\r\n}\r\n","export default {\r\n contained: {\r\n boxShadow:\r\n '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 backgroundColor: '#FFFFFF',\r\n },\r\n}\r\n","export default {\r\n root: {\r\n padding: '16px 24px',\r\n },\r\n}\r\n","export default {\r\n root: {\r\n padding: 24,\r\n },\r\n}\r\n","export default {\r\n root: {\r\n padding: '16px 24px',\r\n },\r\n}\r\n","export default {\r\n root: {},\r\n notchedOutline: {\r\n borderColor: 'rgba(0,0,0,0.15)',\r\n },\r\n}\r\n","export default {\r\n root: {},\r\n elevation1: {\r\n boxShadow:\r\n '0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)',\r\n },\r\n}\r\n","import palette from '../palette';\r\nimport typography from '../typography';\r\n\r\nexport default {\r\n\troot: {\r\n\t\t...typography.body1,\r\n\t\tborderBottom: `1px solid ${palette.divider}`,\r\n\t},\r\n};\r\n","import palette from '../palette'\r\n\r\nexport default {\r\n root: {\r\n '&$selected': {\r\n backgroundColor: palette.background.default,\r\n },\r\n '&$hover': {\r\n '&:hover': {\r\n backgroundColor: palette.background.default,\r\n },\r\n },\r\n },\r\n}\r\n","import { colors } from '@material-ui/core'\r\n\r\nimport palette from '../palette'\r\n\r\nexport default {\r\n root: {\r\n color: palette.icon,\r\n '&:hover': {\r\n backgroundColor: colors.grey[100],\r\n },\r\n '&$selected': {\r\n backgroundColor: colors.grey[50],\r\n color: palette.primary.main,\r\n '&:hover': {\r\n backgroundColor: colors.grey[100],\r\n },\r\n },\r\n '&:first-child': {\r\n borderTopLeftRadius: 4,\r\n borderBottomLeftRadius: 4,\r\n },\r\n '&:last-child': {\r\n borderTopRightRadius: 4,\r\n borderBottomRightRadius: 4,\r\n },\r\n },\r\n}\r\n","export default {\r\n gutterBottom: {\r\n marginBottom: 8,\r\n },\r\n}\r\n","import { createMuiTheme } from '@material-ui/core'\r\n\r\nimport palette from './palette'\r\nimport typography from './typography'\r\nimport overrides from './overrides'\r\n\r\nconst theme = createMuiTheme({\r\n palette,\r\n typography,\r\n overrides,\r\n})\r\n\r\nexport default theme\r\n","import jwt from 'jwt-decode';\r\nimport * as actionTypes from 'actions';\r\nimport config from 'configuration/configuration.js';\r\n\r\nconst token = localStorage.getItem(config.TOKEN_KEY);\r\nlet initialState = {\r\n\tloggedIn: false,\r\n\tuser: {\r\n\t},\r\n\tnotifications: [],\r\n\tisLoading: false,\r\n\tloadingCount: 0,\r\n};\r\n\r\nif (token) {\r\n\tconst decoded = jwt(token);\r\n\tconst currentDate = new Date().getTime() / 1000;\r\n\tif (decoded.exp > currentDate) {\r\n\t\tinitialState = { ...initialState, loggedIn: true, user: { ...decoded } };\r\n\t}\r\n}\r\n\r\nconst sessionReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase actionTypes.REDIRECT_TO_ERROR: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlink: action.link\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SESSION_LOGIN: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tloggedIn: true\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.USER_INFO: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tuser: { ...state.user, ...action.user }\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SESSION_LOGOUT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tloggedIn: false,\r\n\t\t\t\t\t\t\tuser: {\r\n\t\t\t\t\t\t\t\trole: 'Client',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SET_NOTIFICATIONS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: action.notifications || [],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SET_LOADING: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\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 method: 'GET',\r\n url: `${config.API_URL}Account/GetUserOperators`,\r\n params: { userId }\r\n});\r\n\r\nexport const UpdateSettingsRequest = (data) => AxiosRequest({\r\n method: 'POST',\r\n url: `${config.API_URL}Account/UpdateSettings`,\r\n data: data\r\n});\r\n\r\nexport const ChangePasswordRequest = (data) => AxiosRequest({\r\n method: 'POST',\r\n url: `${config.API_URL}Account/ChangePassword`,\r\n data: data\r\n});\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 GET_OPERATORS,\r\n SET_FORM_STATE\r\n} from '../actions/SettingsActions.js'\r\n\r\nconst initialState = {\r\n operators: [],\r\n formState: {\r\n isValid: false,\r\n values: {},\r\n touched: {},\r\n errors: {},\r\n }\r\n}\r\n\r\nconst usersReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case GET_OPERATORS: {\r\n return {\r\n ...state,\r\n operators: action.operators\r\n }\r\n }\r\n case SET_FORM_STATE: {\r\n return {\r\n ...state,\r\n formState: action.formState\r\n }\r\n }\r\n default: {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default usersReducer\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const DashboardInspectRequest = (dashboardId, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Dashboard/Inspect`,\r\n\tparams: { dashboardId, userId }\r\n});\r\n","import {\r\n DASHBOARD_INSPECT\r\n} from '../actions/DashboardInspectActions.js'\r\n\r\nconst initialState = {\r\n dashboard: {\r\n }\r\n}\r\n\r\nconst reportsReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case DASHBOARD_INSPECT: {\r\n return {\r\n ...state,\r\n dashboard: action.dashboard\r\n }\r\n }\r\n default: {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default reportsReducer;\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 config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetFailuresFiltersRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetFailuresFilters`,\r\n\tparams: { role }\r\n});\r\n\r\nexport const GetFailuresPointsVoiceRequest = (userId, role, type, city, dates, failureType, cfn1Level) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetFailuresPoints`,\r\n\tdata: { userId, role, type, city, dates, failureType, cfn1Level }\r\n});\r\n\r\nexport const GetFailuresPointsPacketRequest = (userId, role, type, city, dates, failureType, cfn1Level) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetFailuresPoints`,\r\n\tdata: { userId, role, type, city, dates, failureType, cfn1Level }\r\n});\r\n\r\nexport const GetDriveTestsCitiesRequest = (userId, userOperator) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetDriveTestsCities`,\r\n\tparams: { userId, userOperator }\r\n});\r\n\r\nexport const GetDriveTestsDrivesRequest = (city) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetDriveTestsDrives`,\r\n\tparams: { city }\r\n});\r\n\r\nexport const GetDriveTestsDatesRequest = (city, drive) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetDriveTestsDates`,\r\n\tparams: { city, drive }\r\n});\r\n\r\nexport const GetDriveTestRequest = (userId, tech, city, dates, kpi) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetDriveTest`,\r\n\tdata: { userId, tech, city, dates, kpi }\r\n});\r\n\r\nexport const GetDriveTestScannerCodesRequest = (userId, city, dates, freq, top) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetDriveTestScannerCodes`,\r\n\tdata: { userId, city, dates, freq, top }\r\n});\r\n\r\nexport const GetDriveTestScannerRequest = (userId, tech, city, dates, kpi, freq, top, code) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetDriveTestScanner`,\r\n\tdata: { userId, tech, city, dates, kpi, freq, top, code }\r\n});\r\n\r\nexport const GetTopologyRequest = (userId, tech, bands, coordinates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetTopology`,\r\n\tdata: { userId, tech, bands, coordinates }\r\n});\r\n\r\nexport const GetTopologyLabelsRequest = (userId, tech, bands, coordinates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetTopologyLabels`,\r\n\tdata: { userId, tech, bands, coordinates }\r\n});\r\n\r\nexport const GetDriveTestsTechBandVoiceRequest = (city, dates, userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetDriveTestsTechBandVoice`,\r\n\tdata: { city, dates, userId }\r\n});\r\n\r\nexport const GetDriveTestsTechBandPacketRequest = (city, dates, userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetDriveTestsTechBandPacket`,\r\n\tdata: { city, dates, userId }\r\n});\r\n\r\nexport const GetDriveTestSummaryDropdownRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetDriveTestSummaryDropdown`\r\n});\r\n\r\nexport const GetScannerRouteRequest = (userId, city, dates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetScannerRoute`,\r\n\tdata: { userId, city, dates }\r\n});\r\n\r\nexport const GetDriveTestSummaryRequest = (city, dates, scenario) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/GetDriveTestSummary`,\r\n\tdata: { city, dates, scenario }\r\n});\r\n\r\nexport const GetSitesIdsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetSitesIds`,\r\n});\r\n\r\nexport const GetSiteIdLocationRequest = (siteId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetSiteIdLocation`,\r\n\tparams: { siteId }\r\n});\r\n\r\nexport const GetCarriersColorsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Map/GetCarriersColors`,\r\n});\r\n\r\nexport const SaveCarrierColorRequest = (userId, tableId, colorCode) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Map/SaveCarrierColor`,\r\n\tdata: { userId, tableId, colorCode }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetFailuresFiltersRequest,\r\n\tGetFailuresPointsVoiceRequest,\r\n\tGetFailuresPointsPacketRequest,\r\n\tGetDriveTestsCitiesRequest,\r\n\tGetDriveTestsDrivesRequest,\r\n\tGetDriveTestsDatesRequest,\r\n\tGetDriveTestRequest,\r\n\tGetDriveTestScannerCodesRequest,\r\n\tGetDriveTestScannerRequest,\r\n\tGetTopologyRequest,\r\n\tGetTopologyLabelsRequest,\r\n\tGetDriveTestsTechBandVoiceRequest,\r\n\tGetDriveTestsTechBandPacketRequest,\r\n\tGetDriveTestSummaryDropdownRequest,\r\n\tGetDriveTestSummaryRequest,\r\n\tGetSitesIdsRequest,\r\n\tGetSiteIdLocationRequest,\r\n\tGetScannerRouteRequest,\r\n\tGetCarriersColorsRequest,\r\n\tSaveCarrierColorRequest,\r\n} from '../requests/FailuresMapRequests';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const RESET_FIELDS = 'RESET_FIELDS';\r\nexport const GET_FAILURES_FILTERS = 'GET_FAILURES_FILTERS';\r\nexport const GET_FAILURES_VOICE = 'GET_FAILURES_VOICE';\r\nexport const GET_FAILURES_PACKET = 'GET_FAILURES_PACKET';\r\nexport const GET_DRIVETESTS_CITIES = 'GET_DRIVETESTS_CITIES';\r\nexport const GET_DRIVETESTS_DRIVES = 'GET_DRIVETESTS_DRIVES';\r\nexport const GET_DRIVETESTS_DATES = 'GET_DRIVETESTS_DATES';\r\nexport const SET_SELECTED_DATES = 'SET_SELECTED_DATES';\r\nexport const GET_DRIVETEST = 'GET_DRIVETEST';\r\nexport const GET_DRIVETEST_SCANNER_CODES = 'GET_DRIVETEST_SCANNER_CODES';\r\nexport const GET_DRIVETEST_SCANNER = 'GET_DRIVETEST_SCANNER';\r\nexport const GET_TOPOLOGY_2G = 'GET_TOPOLOGY_2G';\r\nexport const GET_TOPOLOGY_3G = 'GET_TOPOLOGY_3G';\r\nexport const GET_TOPOLOGY_4G = 'GET_TOPOLOGY_4G';\r\nexport const GET_TOPOLOGY_5G = 'GET_TOPOLOGY_5G';\r\nexport const GET_TOPOLOGY_LABELS_2G = 'GET_TOPOLOGY_LABELS_2G';\r\nexport const GET_TOPOLOGY_LABELS_3G = 'GET_TOPOLOGY_LABELS_3G';\r\nexport const GET_TOPOLOGY_LABELS_4G = 'GET_TOPOLOGY_LABELS_4G';\r\nexport const GET_TOPOLOGY_LABELS_5G = 'GET_TOPOLOGY_LABELS_5G';\r\nexport const GET_DRIVETESTS_TECH_BAND_VOICE = 'GET_DRIVETESTS_TECH_BAND_VOICE';\r\nexport const GET_DRIVETESTS_TECH_BAND_PACKET = 'GET_DRIVETESTS_TECH_BAND_PACKET';\r\nexport const GET_DRIVETEST_SUMMARY_DROPDOWN = 'GET_DRIVETEST_SUMMARY_DROPDOWN';\r\nexport const GET_DRIVETEST_SUMMARY = 'GET_DRIVETEST_SUMMARY';\r\nexport const GET_SITES_IDS = 'GET_SITES_IDS';\r\nexport const GET_SITE_ID_LOCATION = 'GET_SITE_ID_LOCATION';\r\nexport const GET_SCANNER_ROUTE = 'GET_SCANNER_ROUTE';\r\n\r\n// Map Compare\r\nexport const GET_FAILURES_FILTERS_COMPARE = 'GET_FAILURES_FILTERS_COMPARE';\r\nexport const GET_FAILURES_VOICE_COMPARE = 'GET_FAILURES_VOICE_COMPARE';\r\nexport const GET_FAILURES_PACKET_COMPARE = 'GET_FAILURES_PACKET_COMPARE';\r\nexport const GET_DRIVETESTS_CITIES_COMPARE = 'GET_DRIVETESTS_CITIES_COMPARE';\r\nexport const GET_DRIVETESTS_DRIVES_COMPARE = 'GET_DRIVETESTS_DRIVES_COMPARE';\r\nexport const GET_DRIVETESTS_DATES_COMPARE = 'GET_DRIVETESTS_DATES_COMPARE';\r\nexport const SET_SELECTED_DATES_COMPARE = 'SET_SELECTED_DATES_COMPARE';\r\nexport const GET_DRIVETEST_COMPARE = 'GET_DRIVETEST_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_CODES_COMPARE = 'GET_DRIVETEST_SCANNER_CODES_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_COMPARE = 'GET_DRIVETEST_SCANNER_COMPARE';\r\nexport const GET_TOPOLOGY_2G_COMPARE = 'GET_TOPOLOGY_2G_COMPARE';\r\nexport const GET_TOPOLOGY_3G_COMPARE = 'GET_TOPOLOGY_3G_COMPARE';\r\nexport const GET_TOPOLOGY_4G_COMPARE = 'GET_TOPOLOGY_4G_COMPARE';\r\nexport const GET_TOPOLOGY_5G_COMPARE = 'GET_TOPOLOGY_5G_COMPARE';\r\nexport const GET_TOPOLOGY_LABELS_2G_COMPARE = 'GET_TOPOLOGY_LABELS_2G_COMPARE';\r\nexport const GET_TOPOLOGY_LABELS_3G_COMPARE = 'GET_TOPOLOGY_LABELS_3G_COMPARE';\r\nexport const GET_TOPOLOGY_LABELS_4G_COMPARE = 'GET_TOPOLOGY_LABELS_4G_COMPARE';\r\nexport const GET_TOPOLOGY_LABELS_5G_COMPARE = 'GET_TOPOLOGY_LABELS_5G_COMPARE';\r\nexport const GET_DRIVETESTS_TECH_BAND_VOICE_COMPARE = 'GET_DRIVETESTS_TECH_BAND_VOICE_COMPARE';\r\nexport const GET_DRIVETESTS_TECH_BAND_PACKET_COMPARE = 'GET_DRIVETESTS_TECH_BAND_PACKET_COMPARE';\r\nexport const GET_DRIVETEST_SUMMARY_COMPARE = 'GET_DRIVETEST_SUMMARY_COMPARE';\r\nexport const GET_SCANNER_ROUTE_COMPARE = 'GET_SCANNER_ROUTE_COMPARE';\r\n\r\n// Global\r\nexport const TOGGLE_FILTERS = 'TOGGLE_FILTERS';\r\nexport const CLEAR_FORM = 'CLEAR_FORM';\r\nexport const TOGGLE_SUMMARY_DIALOG = 'TOGGLE_SUMMARY_DIALOG';\r\nexport const TOGGLE_CARRIERS_COLORS_DIALOG = 'TOGGLE_CARRIERS_COLORS_DIALOG';\r\nexport const GET_CARRIERS_COLORS = 'GET_CARRIERS_COLORS';\r\nexport const TOGGLE_CARRIERS_COLORS_PICKER_DIALOG = 'TOGGLE_CARRIERS_COLORS_PICKER_DIALOG';\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 onGetFailuresFilters = (value) => ({\r\n\ttype: GET_FAILURES_FILTERS,\r\n\tfailuresFilters: value\r\n});\r\n\r\nconst onGetFailuresPointsVoice = (value) => ({\r\n\ttype: GET_FAILURES_VOICE,\r\n\tfailuresVoice: value\r\n});\r\n\r\nconst onGetFailuresPointsPacket = (value) => ({\r\n\ttype: GET_FAILURES_PACKET,\r\n\tfailuresPacket: value\r\n});\r\n\r\nconst onGetDriveTestsCities = (value) => ({\r\n\ttype: GET_DRIVETESTS_CITIES,\r\n\tcities: value\r\n});\r\n\r\nconst onGetDriveTestsDrives = (value) => ({\r\n\ttype: GET_DRIVETESTS_DRIVES,\r\n\tdrives: value\r\n});\r\n\r\nconst onGetDriveTestsDates = (value) => ({\r\n\ttype: GET_DRIVETESTS_DATES,\r\n\tdates: value\r\n});\r\n\r\nconst onSetSelectedDates = (value) => ({\r\n\ttype: SET_SELECTED_DATES,\r\n\tselectedDates: value\r\n});\r\n\r\nconst onGetDriveTest = (value) => ({\r\n\ttype: GET_DRIVETEST,\r\n\tdriveTest: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES,\r\n\tdriveTestScannerCodes: value\r\n});\r\n\r\nconst onGetDriveTestScanner = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER,\r\n\tdriveTestScanner: value\r\n});\r\n\r\nconst onGetTopology2g = (value) => ({\r\n\ttype: GET_TOPOLOGY_2G,\r\n\ttopology2gData: value\r\n});\r\n\r\nconst onGetTopology3g = (value) => ({\r\n\ttype: GET_TOPOLOGY_3G,\r\n\ttopology3gData: value\r\n});\r\n\r\nconst onGetTopology4g = (value) => ({\r\n\ttype: GET_TOPOLOGY_4G,\r\n\ttopology4gData: value\r\n});\r\n\r\nconst onGetTopology5g = (value) => ({\r\n\ttype: GET_TOPOLOGY_5G,\r\n\ttopology5gData: value\r\n});\r\n\r\nconst onGetTopologyLabels2g = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_2G,\r\n\ttopologyLabels2gData: value\r\n});\r\n\r\nconst onGetTopologyLabels3g = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_3G,\r\n\ttopologyLabels3gData: value\r\n});\r\n\r\nconst onGetTopologyLabels4g = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_4G,\r\n\ttopologyLabels4gData: value\r\n});\r\n\r\nconst onGetTopologyLabels5g = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_5G,\r\n\ttopologyLabels5gData: value\r\n});\r\n\r\nconst onGetDriveTestsTechBandVoice = (value) => ({\r\n\ttype: GET_DRIVETESTS_TECH_BAND_VOICE,\r\n\ttechBandVoice: value\r\n});\r\n\r\nconst onGetDriveTestsTechBandPacket = (value) => ({\r\n\ttype: GET_DRIVETESTS_TECH_BAND_PACKET,\r\n\ttechBandPacket: value\r\n});\r\n\r\nconst onGetDriveTestSummaryDropdown = (value) => ({\r\n\ttype: GET_DRIVETEST_SUMMARY_DROPDOWN,\r\n\tdrivetestSummaryDropdown: value\r\n});\r\n\r\nconst onGetDriveTestSummary = (value) => ({\r\n\ttype: GET_DRIVETEST_SUMMARY,\r\n\tdrivetestSummary: value\r\n});\r\n\r\nconst onGetScannerRoute = (value) => ({\r\n\ttype: GET_SCANNER_ROUTE,\r\n\tscannerRoute: value\r\n});\r\n\r\n// Map Compare\r\nconst onGetFailuresFiltersSideCompare = (value) => ({\r\n\ttype: GET_FAILURES_FILTERS_COMPARE,\r\n\tfailuresFiltersSideCompare: value\r\n});\r\nconst onGetFailuresPointsVoiceCompare = (value) => ({\r\n\ttype: GET_FAILURES_VOICE_COMPARE,\r\n\tfailuresVoiceCompare: value\r\n});\r\n\r\nconst onGetFailuresPointsPacketCompare = (value) => ({\r\n\ttype: GET_FAILURES_PACKET_COMPARE,\r\n\tfailuresPacketCompare: value\r\n});\r\n\r\nconst onGetDriveTestsCitiesCompare = (value) => ({\r\n\ttype: GET_DRIVETESTS_CITIES_COMPARE,\r\n\tcitiesCompare: value\r\n});\r\n\r\nconst onGetDriveTestsDrivesCompare = (value) => ({\r\n\ttype: GET_DRIVETESTS_DRIVES_COMPARE,\r\n\tdrivesCompare: value\r\n});\r\n\r\nconst onGetDriveTestsDatesCompare = (value) => ({\r\n\ttype: GET_DRIVETESTS_DATES_COMPARE,\r\n\tdatesCompare: value\r\n});\r\n\r\nconst onSetSelectedDatesCompare = (value) => ({\r\n\ttype: SET_SELECTED_DATES_COMPARE,\r\n\tselectedDatesCompare: value\r\n});\r\n\r\nconst onGetDriveTestCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_COMPARE,\r\n\tdriveTestCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodesCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_COMPARE,\r\n\tdriveTestScannerCodesCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_COMPARE,\r\n\tdriveTestScannerCompare: value\r\n});\r\n\r\nconst onGetTopology2gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_2G_COMPARE,\r\n\ttopology2gDataCompare: value\r\n});\r\n\r\nconst onGetTopology3gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_3G_COMPARE,\r\n\ttopology3gDataCompare: value\r\n});\r\n\r\nconst onGetTopology4gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_4G_COMPARE,\r\n\ttopology4gDataCompare: value\r\n});\r\n\r\nconst onGetTopology5gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_5G_COMPARE,\r\n\ttopology5gDataCompare: value\r\n});\r\n\r\nconst onGetTopologyLabels2gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_2G_COMPARE,\r\n\ttopologyLabels2gDataCompare: value\r\n});\r\n\r\nconst onGetTopologyLabels3gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_3G_COMPARE,\r\n\ttopologyLabels3gDataCompare: value\r\n});\r\n\r\nconst onGetTopologyLabels4gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_4G_COMPARE,\r\n\ttopologyLabels4gDataCompare: value\r\n});\r\n\r\nconst onGetTopologyLabels5gCompare = (value) => ({\r\n\ttype: GET_TOPOLOGY_LABELS_5G_COMPARE,\r\n\ttopologyLabels5gDataCompare: value\r\n});\r\n\r\nconst onGetDriveTestsTechBandVoiceCompare = (value) => ({\r\n\ttype: GET_DRIVETESTS_TECH_BAND_VOICE_COMPARE,\r\n\ttechBandVoiceCompare: value\r\n});\r\n\r\nconst onGetDriveTestsTechBandPacketCompare = (value) => ({\r\n\ttype: GET_DRIVETESTS_TECH_BAND_PACKET_COMPARE,\r\n\ttechBandPacketCompare: value\r\n});\r\n\r\nconst onGetDriveTestSummaryCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SUMMARY_COMPARE,\r\n\tdrivetestSummaryCompare: value\r\n});\r\n\r\nconst onGetScannerRouteCompare = (value) => ({\r\n\ttype: GET_SCANNER_ROUTE_COMPARE,\r\n\tscannerRouteCompare: value\r\n});\r\n\r\n// Global\r\nconst onToggleFilters = (openFilters) => ({\r\n\ttype: TOGGLE_FILTERS,\r\n\topenFilters,\r\n});\r\n\r\nconst onClearForm = () => ({\r\n\ttype: CLEAR_FORM\r\n});\r\n\r\nconst onToggleSummaryDialog = (visible) => ({\r\n\ttype: TOGGLE_SUMMARY_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleCarriersColorsDialog = (visible) => ({\r\n\ttype: TOGGLE_CARRIERS_COLORS_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleCarriersColorsPickerDialog = (visible, tableIdColorCode, currentColorCode) => ({\r\n\ttype: TOGGLE_CARRIERS_COLORS_PICKER_DIALOG,\r\n\tvisible,\r\n\ttableIdColorCode,\r\n\tcurrentColorCode\r\n});\r\n\r\nconst onGetSitesIds = (value) => ({\r\n\ttype: GET_SITES_IDS,\r\n\tsitesIds: value\r\n});\r\n\r\nconst onGetSiteIdLocation = (value) => ({\r\n\ttype: GET_SITE_ID_LOCATION,\r\n\tsiteIdLocation: value\r\n});\r\n\r\nconst onGetCarriersColors = (value) => ({\r\n\ttype: GET_CARRIERS_COLORS,\r\n\tcarriersColors: 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 GetFailuresFilters = (role) => async (dispatch) => {\r\n\tawait GetFailuresFiltersRequest(role).then(response => {\r\n\t\tdispatch(onGetFailuresFilters(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 GetFailuresPointsVoice = (userId, role, city, dates, failureType, cfn1Level) => async (dispatch) => {\r\n\tawait GetFailuresPointsVoiceRequest(userId, role, 'voice', city, dates, failureType, cfn1Level).then(response => {\r\n\t\tdispatch(onGetFailuresPointsVoice(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 GetFailuresPointsPacket = (userId, role, city, dates, failureType, cfn1Level) => async (dispatch) => {\r\n\tawait GetFailuresPointsPacketRequest(userId, role, 'packet', city, dates, failureType, cfn1Level).then(response => {\r\n\t\tdispatch(onGetFailuresPointsPacket(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 GetDriveTestsCities = (userId, userOperator) => async (dispatch) => {\r\n\tawait GetDriveTestsCitiesRequest(userId, userOperator).then(response => {\r\n\t\tdispatch(onGetDriveTestsCities(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 GetDriveTestsDrives = (city) => async (dispatch) => {\r\n\tawait GetDriveTestsDrivesRequest(city).then(response => {\r\n\t\tdispatch(onGetDriveTestsDrives(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 GetDriveTestsDates = (city, drive) => async (dispatch) => {\r\n\tawait GetDriveTestsDatesRequest(city, drive).then(response => {\r\n\t\tdispatch(onGetDriveTestsDates(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 SetSelectedDates = (selectedDates) => (dispatch) => {\r\n\tdispatch(onSetSelectedDates(selectedDates));\r\n};\r\n\r\nexport const GetDriveTest = (userId, tech, city, dates, kpi) => async (dispatch) => {\r\n\tawait GetDriveTestRequest(userId, tech, city, dates, kpi).then(response => {\r\n\t\tdispatch(onGetDriveTest(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 GetDriveTestScannerCodes = (userId, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes(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 GetDriveTestScanner = (userId, tech, city, dates, kpi, freq, top, code) => async (dispatch) => {\r\n\tawait GetDriveTestScannerRequest(userId, tech, city, dates, kpi, freq, top, code).then(response => {\r\n\t\tdispatch(onGetDriveTestScanner(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 GetTopology2g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '2G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology2g(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 GetTopology3g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '3G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology3g(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 GetTopology4g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '4G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology4g(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 GetTopology5g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '5G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology5g(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 GetTopologyLabels2g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '2G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels2g(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 GetTopologyLabels3g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '3G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels3g(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 GetTopologyLabels4g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '4G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels4g(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 GetTopologyLabels5g = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '5G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels5g(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 GetDriveTestsTechBandVoice = (city, dates, userId) => async (dispatch) => {\r\n\tawait GetDriveTestsTechBandVoiceRequest(city, dates, userId).then(response => {\r\n\t\tdispatch(onGetDriveTestsTechBandVoice(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 GetDriveTestsTechBandPacket = (city, dates, userId) => async (dispatch) => {\r\n\tawait GetDriveTestsTechBandPacketRequest(city, dates, userId).then(response => {\r\n\t\tdispatch(onGetDriveTestsTechBandPacket(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 GetDriveTestSummaryDropdown = () => async (dispatch) => {\r\n\tawait GetDriveTestSummaryDropdownRequest().then(response => {\r\n\t\tdispatch(onGetDriveTestSummaryDropdown(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 GetDriveTestSummary = (city, dates, scenario) => async (dispatch) => {\r\n\tawait GetDriveTestSummaryRequest(city, dates, scenario).then(response => {\r\n\t\tdispatch(onGetDriveTestSummary(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 GetDriveTestSummaryCompare = (city, dates, scenario) => async (dispatch) => {\r\n\tawait GetDriveTestSummaryRequest(city, dates, scenario).then(response => {\r\n\t\tdispatch(onGetDriveTestSummaryCompare(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 GetScannerRoute = (userId, city, dates) => async (dispatch) => {\r\n\tawait GetScannerRouteRequest(userId, city, dates).then(response => {\r\n\t\tdispatch(onGetScannerRoute(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 ToggleFilters = (openFilters) => (dispatch) => {\r\n\tdispatch(onToggleFilters(openFilters));\r\n};\r\n\r\nexport const ClearForm = () => (dispatch) => {\r\n\tdispatch(onClearForm());\r\n};\r\n\r\nexport const ToggleSummaryDialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleSummaryDialog(visible));\r\n};\r\n\r\nexport const ToggleCarriersColorsDialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleCarriersColorsDialog(visible));\r\n};\r\n\r\nexport const ToggleCarriersColorsPickerDialog = (visible, tableIdColorCode, currentColorCode) => (dispatch) => {\r\n\tdispatch(onToggleCarriersColorsPickerDialog(visible, tableIdColorCode, currentColorCode));\r\n};\r\n\r\n// Map Compare\r\nexport const GetFailuresFiltersSideCompare = (role) => async (dispatch) => {\r\n\tawait GetFailuresFiltersRequest(role).then(response => {\r\n\t\tdispatch(onGetFailuresFiltersSideCompare(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 GetFailuresPointsVoiceCompare = (userId, role, city, dates, failureType, cfn1Level) => async (dispatch) => {\r\n\tawait GetFailuresPointsVoiceRequest(userId, role, 'voice', city, dates, failureType, cfn1Level).then(response => {\r\n\t\tdispatch(onGetFailuresPointsVoiceCompare(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 GetFailuresPointsPacketCompare = (userId, role, city, dates, failureType, cfn1Level) => async (dispatch) => {\r\n\tawait GetFailuresPointsPacketRequest(userId, role, 'packet', city, dates, failureType, cfn1Level).then(response => {\r\n\t\tdispatch(onGetFailuresPointsPacketCompare(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 GetDriveTestsCitiesCompare = (userId, userOperator) => async (dispatch) => {\r\n\tawait GetDriveTestsCitiesRequest(userId, userOperator).then(response => {\r\n\t\tdispatch(onGetDriveTestsCitiesCompare(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 GetDriveTestsDrivesCompare = (city) => async (dispatch) => {\r\n\tawait GetDriveTestsDrivesRequest(city).then(response => {\r\n\t\tdispatch(onGetDriveTestsDrivesCompare(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 GetDriveTestsDatesCompare = (city, drive) => async (dispatch) => {\r\n\tawait GetDriveTestsDatesRequest(city, drive).then(response => {\r\n\t\tdispatch(onGetDriveTestsDatesCompare(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 SetSelectedDatesCompare = (selectedDates) => (dispatch) => {\r\n\tdispatch(onSetSelectedDatesCompare(selectedDates));\r\n};\r\n\r\nexport const GetDriveTestCompare = (userId, tech, city, dates, kpi) => async (dispatch) => {\r\n\tawait GetDriveTestRequest(userId, tech, city, dates, kpi).then(response => {\r\n\t\tdispatch(onGetDriveTestCompare(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 GetDriveTestScannerCodesCompare = (userId, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodesCompare(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 GetDriveTestScannerCompare = (userId, tech, city, dates, kpi, freq, top, code) => async (dispatch) => {\r\n\tawait GetDriveTestScannerRequest(userId, tech, city, dates, kpi, freq, top, code).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCompare(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 GetTopology2gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '2G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology2gCompare(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 GetTopology3gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '3G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology3gCompare(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 GetTopology4gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '4G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology4gCompare(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 GetTopology5gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyRequest(userId, '5G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopology5gCompare(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 GetTopologyLabels2gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '2G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels2gCompare(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 GetTopologyLabels3gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '3G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels3gCompare(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 GetTopologyLabels4gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '4G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels4gCompare(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 GetTopologyLabels5gCompare = (userId, bands, coordinates) => async (dispatch) => {\r\n\tawait GetTopologyLabelsRequest(userId, '5G', bands, coordinates).then(response => {\r\n\t\tdispatch(onGetTopologyLabels5gCompare(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 GetDriveTestsTechBandVoiceCompare = (city, dates, userId) => async (dispatch) => {\r\n\tawait GetDriveTestsTechBandVoiceRequest(city, dates, userId).then(response => {\r\n\t\tdispatch(onGetDriveTestsTechBandVoiceCompare(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 GetDriveTestsTechBandPacketCompare = (city, dates, userId) => async (dispatch) => {\r\n\tawait GetDriveTestsTechBandPacketRequest(city, dates, userId).then(response => {\r\n\t\tdispatch(onGetDriveTestsTechBandPacketCompare(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 GetScannerRouteCompare = (userId, city, dates) => async (dispatch) => {\r\n\tawait GetScannerRouteRequest(userId, city, dates).then(response => {\r\n\t\tdispatch(onGetScannerRouteCompare(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\n// Global\r\nexport const GetSitesIds = () => async (dispatch) => {\r\n\tawait GetSitesIdsRequest().then(response => {\r\n\t\tdispatch(onGetSitesIds(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 GetSiteIdLocation = (siteId) => async (dispatch) => {\r\n\tawait GetSiteIdLocationRequest(siteId).then(response => {\r\n\t\tdispatch(onGetSiteIdLocation(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 GetCarriersColors = () => async (dispatch) => {\r\n\tawait GetCarriersColorsRequest().then(response => {\r\n\t\tdispatch(onGetCarriersColors(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 SaveCarrierColor = (userId, tableId, colorCode) => async (dispatch) => {\r\n\tawait SaveCarrierColorRequest(userId, tableId, colorCode).then(response => {\r\n\t\tdispatch(GetCarriersColors());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tRESET_FIELDS,\r\n\tGET_FAILURES_FILTERS,\r\n\tGET_FAILURES_VOICE,\r\n\tGET_FAILURES_PACKET,\r\n\tGET_DRIVETESTS_CITIES,\r\n\tGET_DRIVETESTS_DRIVES,\r\n\tGET_DRIVETESTS_DATES,\r\n\tSET_SELECTED_DATES,\r\n\tGET_DRIVETEST,\r\n\tGET_DRIVETEST_SCANNER_CODES,\r\n\tGET_DRIVETEST_SCANNER,\r\n\tGET_TOPOLOGY_2G,\r\n\tGET_TOPOLOGY_3G,\r\n\tGET_TOPOLOGY_4G,\r\n\tGET_TOPOLOGY_5G,\r\n\tGET_TOPOLOGY_LABELS_2G,\r\n\tGET_TOPOLOGY_LABELS_3G,\r\n\tGET_TOPOLOGY_LABELS_4G,\r\n\tGET_TOPOLOGY_LABELS_5G,\r\n\tGET_DRIVETESTS_TECH_BAND_VOICE,\r\n\tGET_DRIVETESTS_TECH_BAND_PACKET,\r\n\t// Map Compare\r\n\tGET_FAILURES_FILTERS_COMPARE,\r\n\tGET_FAILURES_VOICE_COMPARE,\r\n\tGET_FAILURES_PACKET_COMPARE,\r\n\tGET_DRIVETESTS_CITIES_COMPARE,\r\n\tGET_DRIVETESTS_DRIVES_COMPARE,\r\n\tGET_DRIVETESTS_DATES_COMPARE,\r\n\tSET_SELECTED_DATES_COMPARE,\r\n\tGET_DRIVETEST_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_CODES_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_COMPARE,\r\n\tGET_TOPOLOGY_2G_COMPARE,\r\n\tGET_TOPOLOGY_3G_COMPARE,\r\n\tGET_TOPOLOGY_4G_COMPARE,\r\n\tGET_TOPOLOGY_5G_COMPARE,\r\n\tGET_TOPOLOGY_LABELS_2G_COMPARE,\r\n\tGET_TOPOLOGY_LABELS_3G_COMPARE,\r\n\tGET_TOPOLOGY_LABELS_4G_COMPARE,\r\n\tGET_TOPOLOGY_LABELS_5G_COMPARE,\r\n\tGET_DRIVETESTS_TECH_BAND_VOICE_COMPARE,\r\n\tGET_DRIVETESTS_TECH_BAND_PACKET_COMPARE,\r\n\tGET_DRIVETEST_SUMMARY_COMPARE,\r\n\tGET_SCANNER_ROUTE_COMPARE,\r\n\t// Global\r\n\tGET_DRIVETEST_SUMMARY_DROPDOWN,\r\n\tGET_DRIVETEST_SUMMARY,\r\n\tGET_SCANNER_ROUTE,\r\n\tTOGGLE_FILTERS,\r\n\tCLEAR_FORM,\r\n\tTOGGLE_SUMMARY_DIALOG,\r\n\tTOGGLE_CARRIERS_COLORS_DIALOG,\r\n\tGET_CARRIERS_COLORS,\r\n\tGET_SITES_IDS,\r\n\tGET_SITE_ID_LOCATION,\r\n\tTOGGLE_CARRIERS_COLORS_PICKER_DIALOG,\r\n} from '../actions/FailuresMapActions';\r\n\r\nconst initialState = {\r\n\tfailuresFilters: [],\r\n\tfailuresVoice: [],\r\n\tfailuresPacket: [],\r\n\tcities: [],\r\n\tdrives: [],\r\n\tdates: [],\r\n\tselectedDates: [],\r\n\tdriveTests4g: [],\r\n\tdriveTest: [],\r\n\tdriveTestCodes: [],\r\n\tdriveTestScanner: [],\r\n\ttopology2gData: [],\r\n\ttopology3gData: [],\r\n\ttopology4gData: [],\r\n\ttopology5gData: [],\r\n\ttopologyLabels2gData: [],\r\n\ttopologyLabels3gData: [],\r\n\ttopologyLabels4gData: [],\r\n\ttopologyLabels5gData: [],\r\n\ttechBandVoice: [],\r\n\ttechBandPacket: [],\r\n\t// Map Compare\r\n\tfailuresFiltersSideCompare: [],\r\n\tfailuresVoiceCompare: [],\r\n\tfailuresPacketCompare: [],\r\n\tcitiesCompare: [],\r\n\tdrivesCompare: [],\r\n\tdatesCompare: [],\r\n\tselectedDatesCompare: [],\r\n\tdriveTestCompare: [],\r\n\tdriveTestCodesCompare: [],\r\n\tdriveTestScannerCompare: [],\r\n\ttopology2gDataCompare: [],\r\n\ttopology3gDataCompare: [],\r\n\ttopology4gDataCompare: [],\r\n\ttopology5gDataCompare: [],\r\n\ttopologyLabels2gDataCompare: [],\r\n\ttopologyLabels3gDataCompare: [],\r\n\ttopologyLabels4gDataCompare: [],\r\n\ttopologyLabels5gDataCompare: [],\r\n\ttechBandVoiceCompare: [],\r\n\ttechBandPacketCompare: [],\r\n\tdrivetestSummaryCompare: [],\r\n\tscannerRouteCompare: [],\r\n\t// Global\r\n\tdrivetestSummaryDropdown: [],\r\n\tdrivetestSummary: [],\r\n\tscannerRoute: [],\r\n\topenFilters: false,\r\n\tsummaryDialogVisibility: false,\r\n\tcarriersColorsDialogVisibility: false,\r\n\tcarriersColorsPickerDialogVisibility: false,\r\n\tsitesIds: [],\r\n\tsiteIdLocation: [],\r\n\tcarriersColors: [],\r\n\tcurrentColorCode: 'white',\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {\r\n\t\t\tselectedCity: '',\r\n\t\t\tselectedDrive: '',\r\n\t\t\tvoiceActive: false,\r\n\t\t\tpacketActive: false,\r\n\t\t\ttechBandVoiceActive: false,\r\n\t\t\ttechBandPacketActive: false,\r\n\t\t\tfailureTypeVoice: 'all',\r\n\t\t\tfailureTypePacket: 'all',\r\n\t\t\tcfn1LevelVoice: 'all',\r\n\t\t\tcfn1LevelPacket: 'all',\r\n\t\t\tscannerBsic: 'all',\r\n\t\t\tscannerSc: 'all',\r\n\t\t\tscannerPci: 'all',\r\n\t\t\tfreq2g: '',\r\n\t\t\tfreq3g: '',\r\n\t\t\tfreq4g: '',\r\n\t\t\ttop2g: 'all',\r\n\t\t\ttop3g: 'all',\r\n\t\t\ttop4g: 'all',\r\n\t\t\tmapAutoZoom: true,\r\n\t\t\tmapCompare: false,\r\n\t\t\tmapFrameSize: '80vw',\r\n\t\t\tmapSync: true,\r\n\t\t\tmapFilters: true,\r\n\t\t\tmapSize: 10,\r\n\t\t\tscenario: 'all',\r\n\t\t\tscannerRoute: false,\r\n\t\t\t// Map Compare\r\n\t\t\tselectedCityCompare: '',\r\n\t\t\tselectedDriveCompare: '',\r\n\t\t\tvoiceActiveCompare: false,\r\n\t\t\tpacketActiveCompare: false,\r\n\t\t\ttechBandVoiceActiveCompare: false,\r\n\t\t\ttechBandPacketActiveCompare: false,\r\n\t\t\tfailureTypeVoiceCompare: 'all',\r\n\t\t\tfailureTypePacketCompare: 'all',\r\n\t\t\tcfn1LevelVoiceCompare: 'all',\r\n\t\t\tcfn1LevelPacketCompare: 'all',\r\n\t\t\tscannerBsicCompare: 'all',\r\n\t\t\tscannerScCompare: 'all',\r\n\t\t\tscannerPciCompare: 'all',\r\n\t\t\tfreq2gCompare: '',\r\n\t\t\tfreq3gCompare: '',\r\n\t\t\tfreq4gCompare: '',\r\n\t\t\ttop2gCompare: 'all',\r\n\t\t\ttop3gCompare: 'all',\r\n\t\t\ttop4gCompare: 'all',\r\n\t\t\tscannerRouteCompare: false\r\n\t\t},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t},\r\n};\r\n\r\nconst failuresMapReducer = (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_FAILURES_FILTERS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailuresFilters: action.failuresFilters,\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_FAILURES_VOICE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailuresVoice: action.failuresVoice\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_FAILURES_PACKET: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailuresPacket: action.failuresPacket\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_CITIES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tcities: action.cities\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_DRIVES: {\r\n\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: action.drives\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_DATES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdates: action.dates\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_SELECTED_DATES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tselectedDates: action.selectedDates\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdriveTest: action.driveTest\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_SCANNER_CODES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdriveTestScannerCodes: action.driveTestScannerCodes\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_SCANNER: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdriveTestScanner: action.driveTestScanner\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_2G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology2gData: action.topology2gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_3G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology3gData: action.topology3gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_4G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology4gData: action.topology4gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_5G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology5gData: action.topology5gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_2G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels2gData: action.topologyLabels2gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_3G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels3gData: action.topologyLabels3gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_4G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels4gData: action.topologyLabels4gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_5G: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels5gData: action.topologyLabels5gData\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_TECH_BAND_VOICE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttechBandVoice: action.techBandVoice\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_TECH_BAND_PACKET: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttechBandPacket: action.techBandPacket\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_SUMMARY_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\tdrivetestSummaryDropdown: action.drivetestSummaryDropdown\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_SUMMARY: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdrivetestSummary: action.drivetestSummary\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SCANNER_ROUTE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tscannerRoute: action.scannerRoute\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Map Compare\r\n\t\t\t\t\tcase GET_FAILURES_FILTERS_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailuresFiltersSideCompare: action.failuresFiltersSideCompare,\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_FAILURES_VOICE_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailuresVoiceCompare: action.failuresVoiceCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_FAILURES_PACKET_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailuresPacketCompare: action.failuresPacketCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_CITIES_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tcitiesCompare: action.citiesCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_DRIVES_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdrivesCompare: action.drivesCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_DATES_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdatesCompare: action.datesCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_SELECTED_DATES_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tselectedDatesCompare: action.selectedDatesCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdriveTestCompare: action.driveTestCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_SCANNER_CODES_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdriveTestScannerCodesCompare: action.driveTestScannerCodesCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_SCANNER_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdriveTestScannerCompare: action.driveTestScannerCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_2G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology2gDataCompare: action.topology2gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_3G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology3gDataCompare: action.topology3gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_4G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology4gDataCompare: action.topology4gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_5G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopology5gDataCompare: action.topology5gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_2G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels2gDataCompare: action.topologyLabels2gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_3G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels3gDataCompare: action.topologyLabels3gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_4G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels4gDataCompare: action.topologyLabels4gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TOPOLOGY_LABELS_5G_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttopologyLabels5gDataCompare: action.topologyLabels5gDataCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_TECH_BAND_VOICE_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttechBandVoiceCompare: action.techBandVoiceCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_TECH_BAND_PACKET_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttechBandPacketCompare: action.techBandPacketCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETEST_SUMMARY_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdrivetestSummaryCompare: action.drivetestSummaryCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SCANNER_ROUTE_COMPARE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tscannerRouteCompare: action.scannerRouteCompare\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Global\r\n\t\t\t\t\tcase TOGGLE_FILTERS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenFilters: action.openFilters\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase CLEAR_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\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_SITES_IDS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tsitesIds: action.sitesIds\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_SITE_ID_LOCATION: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tsiteIdLocation: action.siteIdLocation\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_SUMMARY_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\tsummaryDialogVisibility: 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_CARRIERS_COLORS_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\tcarriersColorsDialogVisibility: 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_CARRIERS_COLORS_PICKER_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\tcarriersColorsPickerDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\ttableIdColorCode: action.tableIdColorCode,\r\n\t\t\t\t\t\t\tcurrentColorCode: action.currentColorCode\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_CARRIERS_COLORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tcarriersColors: action.carriersColors\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 failuresMapReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\n// Failures\r\nexport const GetFailuresVoiceRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetFailuresVoice`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const SetFailureVoiceValidInvalidRequest = (userId, id) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Tracker/SetFailureVoiceValidInvalid`,\r\n\tparams: { userId, id }\r\n});\r\n\r\nexport const GetFailureVoiceDetailsRequest = (id, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetFailureVoiceDetails`,\r\n\tparams: { id, userId }\r\n});\r\n\r\nexport const GetFailureVoiceCommentsRequest = (id) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetFailureVoiceComments`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const SetFailureVoiceDetailsRequest = (trackerVoiceDetailsDto, userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Tracker/EditFailureVoiceDetails`,\r\n\tdata: { trackerVoiceDetailsDto, userId }\r\n});\r\n\r\nexport const AddVoiceCommentRequest = (id, userId, comment) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Tracker/AddFailureVoiceComment`,\r\n\tparams: { id, userId, comment }\r\n});\r\n\r\nexport const ExportFailuresVoiceRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/ExportFailuresVoice`,\r\n\tparams: { userId, role }\r\n});\r\n\r\n// Layer3\r\nexport const GetLayer3Request = (filenameMoc, filenameMtc, initialTimestamp, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3`,\r\n\tparams: { filenameMoc, filenameMtc, initialTimestamp, userId }\r\n});\r\n\r\nexport const GetLayer3MessageMoRequest = (id, side, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Message`,\r\n\tparams: { id, side, userId }\r\n});\r\n\r\nexport const GetLayer3MessageMtRequest = (id, side, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Message`,\r\n\tparams: { id, side, userId }\r\n});\r\n\r\nexport const GetLayer3FailureRequest = (id) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Failure`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const GetLayer3DriveTestRequest = (userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3DriveTest`,\r\n\tparams: { userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp }\r\n});\r\n\r\nexport const GetLayer3KpisRequest = (filenameMoc, filenameMtc, failureSide, initialTimestamp) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Kpis`,\r\n\tparams: { filenameMoc, filenameMtc, failureSide, initialTimestamp }\r\n});\r\n","import { DownloadFile, enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetFailuresVoiceRequest,\r\n\tSetFailureVoiceValidInvalidRequest,\r\n\tGetFailureVoiceDetailsRequest,\r\n\tGetFailureVoiceCommentsRequest,\r\n\tSetFailureVoiceDetailsRequest,\r\n\tAddVoiceCommentRequest,\r\n\tExportFailuresVoiceRequest,\r\n\tGetLayer3Request,\r\n\tGetLayer3MessageMoRequest,\r\n\tGetLayer3MessageMtRequest,\r\n\tGetLayer3FailureRequest,\r\n\tGetLayer3DriveTestRequest,\r\n\tGetLayer3KpisRequest\r\n} from '../requests/VoiceRequest';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_FAILURES_VOICE = 'GET_FAILURES_VOICE';\r\nexport const TOGGLE_VOICE_EDIT_FAILURE_DIALOG = 'TOGGLE_VOICE_EDIT_FAILURE_DIALOG';\r\nexport const GET_FAILURE_VOICE_DETAILS = 'GET_FAILURE_VOICE_DETAILS';\r\nexport const GET_FAILURE_VOICE_COMMENTS = 'GET_FAILURE_VOICE_COMMENTS';\r\nexport const EXPORT_FAILURES_VOICE = 'EXPORT_FAILURES_VOICE';\r\nexport const TOGGLE_LAYER_3_DIALOG = 'TOGGLE_LAYER_3_DIALOG';\r\nexport const GET_LAYER_3 = 'GET_LAYER_3';\r\nexport const GET_LAYER_3_MESSAGE_MO = 'GET_LAYER_3_MESSAGE_MO';\r\nexport const GET_LAYER_3_MESSAGE_MT = 'GET_LAYER_3_MESSAGE_MT';\r\nexport const GET_LAYER_3_FAILURE = 'GET_LAYER_3_FAILURE';\r\nexport const GET_LAYER_3_DRIVETEST = 'GET_LAYER_3_DRIVETEST';\r\nexport const GET_LAYER_3_KPIS = 'GET_LAYER_3_KPIS';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\n// Failures\r\nconst onGetFailuresVoice = (value) => ({\r\n\ttype: GET_FAILURES_VOICE,\r\n\tfailures: value\r\n});\r\n\r\nconst onToggleVoiceEditFailureDialog = (visible, tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp) => ({\r\n\ttype: TOGGLE_VOICE_EDIT_FAILURE_DIALOG,\r\n\tvisible,\r\n\ttableId,\r\n\tfilenameMoc,\r\n\tfilenameMtc,\r\n\tfailureSide,\r\n\tfailureType,\r\n\tinitialTimestamp\r\n});\r\n\r\nconst onGetFailureVoiceDetails = (value) => ({\r\n\ttype: GET_FAILURE_VOICE_DETAILS,\r\n\tfailure: value\r\n});\r\n\r\nconst onGetFailureVoiceComments = (value) => ({\r\n\ttype: GET_FAILURE_VOICE_COMMENTS,\r\n\tcomments: value\r\n});\r\n\r\n// Layer3\r\nconst onToggleLayer3Dialog = (visible) => ({\r\n\ttype: TOGGLE_LAYER_3_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onGetLayer3 = (value) => ({\r\n\ttype: GET_LAYER_3,\r\n\tlayer3: value\r\n});\r\n\r\nconst onGetLayer3MessageMo = (value) => ({\r\n\ttype: GET_LAYER_3_MESSAGE_MO,\r\n\tlayer3MessageMo: value\r\n});\r\n\r\nconst onGetLayer3MessageMt = (value) => ({\r\n\ttype: GET_LAYER_3_MESSAGE_MT,\r\n\tlayer3MessageMt: value\r\n});\r\n\r\nconst onGetLayer3Failure = (value) => ({\r\n\ttype: GET_LAYER_3_FAILURE,\r\n\tlayer3Failure: value\r\n});\r\n\r\nconst onGetLayer3DriveTest = (value) => ({\r\n\ttype: GET_LAYER_3_DRIVETEST,\r\n\tlayer3DriveTest: value\r\n});\r\n\r\nconst onGetLayer3Kpis = (value) => ({\r\n\ttype: GET_LAYER_3_KPIS,\r\n\tlayer3Kpis: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\n// Failures\r\nexport const GetFailuresVoice = (userId, role) => async (dispatch) => {\r\n\tawait GetFailuresVoiceRequest(userId, role).then(response => {\r\n\t\tdispatch(onGetFailuresVoice(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 SetFailureVoiceValidInvalid = (userId, id) => async (dispatch) => {\r\n\tawait SetFailureVoiceValidInvalidRequest(userId, id).then(response => {\r\n\t\t// dispatch(onGetFailuresVoice(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 ToggleVoiceEditFailureDialog = (visible, tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp) => (dispatch) => {\r\n\tdispatch(onToggleVoiceEditFailureDialog(visible, tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp));\r\n};\r\n\r\nexport const GetFailureVoiceDetails = (id, userId) => async (dispatch) => {\r\n\tawait GetFailureVoiceDetailsRequest(id, userId).then(response => {\r\n\t\tdispatch(onGetFailureVoiceDetails(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 GetFailureVoiceComments = (id) => async (dispatch) => {\r\n\tawait GetFailureVoiceCommentsRequest(id).then(response => {\r\n\t\tdispatch(onGetFailureVoiceComments(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 SetFailureVoiceDetails = (failure, userId) => async (dispatch) => {\r\n\tawait SetFailureVoiceDetailsRequest(failure, userId).then(response => {\r\n\t\t// dispatch(onGetFailureVoiceDetails(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 AddVoiceComment = (id, userId, comment) => async (dispatch) => {\r\n\tawait AddVoiceCommentRequest(id, userId, comment).then(response => {\r\n\t\tdispatch(GetFailureVoiceDetails(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 ExportFailuresVoice = (userId, role) => async (dispatch) => {\r\n\tawait ExportFailuresVoiceRequest(userId, role).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\n// Layer3\r\nexport const ToggleLayer3Dialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleLayer3Dialog(visible));\r\n};\r\nexport const GetLayer3 = (filenameMoc, filenameMtc, initialTimestamp, userId) => async (dispatch) => {\r\n\tawait GetLayer3Request(filenameMoc, filenameMtc, initialTimestamp, userId).then(response => {\r\n\t\tdispatch(onGetLayer3(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 GetLayer3MessageMo = (id, side, userId) => async (dispatch) => {\r\n\tawait GetLayer3MessageMoRequest(id, side, userId).then(response => {\r\n\t\tdispatch(onGetLayer3MessageMo(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 GetLayer3MessageMt = (id, side, userId) => async (dispatch) => {\r\n\tawait GetLayer3MessageMtRequest(id, side, userId).then(response => {\r\n\t\tdispatch(onGetLayer3MessageMt(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 GetLayer3Failure = (id) => async (dispatch) => {\r\n\tawait GetLayer3FailureRequest(id).then(response => {\r\n\t\tdispatch(onGetLayer3Failure(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 GetLayer3DriveTest = (userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp) => async (dispatch) => {\r\n\tawait GetLayer3DriveTestRequest(userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp).then(response => {\r\n\t\tdispatch(onGetLayer3DriveTest(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 GetLayer3Kpis = (filenameMoc, filenameMtc, failureSide, initialTimestamp) => async (dispatch) => {\r\n\tawait GetLayer3KpisRequest(filenameMoc, filenameMtc, failureSide, initialTimestamp).then(response => {\r\n\t\tdispatch(onGetLayer3Kpis(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tGET_FAILURES_VOICE,\r\n\tTOGGLE_VOICE_EDIT_FAILURE_DIALOG,\r\n\tGET_FAILURE_VOICE_DETAILS,\r\n\tGET_FAILURE_VOICE_COMMENTS,\r\n\tEXPORT_FAILURES_VOICE,\r\n\tTOGGLE_LAYER_3_DIALOG,\r\n\tGET_LAYER_3,\r\n\tGET_LAYER_3_MESSAGE_MO,\r\n\tGET_LAYER_3_MESSAGE_MT,\r\n\tGET_LAYER_3_FAILURE,\r\n\tGET_LAYER_3_DRIVETEST,\r\n\tGET_LAYER_3_KPIS\r\n} from '../actions/VoiceActions';\r\n\r\nconst initialState = {\r\n\tfailures: [],\r\n\tvoiceEditFailureDialogVisibility: false,\r\n\tformState: {\r\n\t\tvalues: {\r\n\t\t\tfailureSource: 'fail'\r\n\t\t},\r\n\t\tisValid: false,\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t},\r\n\tlayer3: [],\r\n\tlayer3Message: '',\r\n\tlayer3Failure: [],\r\n\tlayer3DriveTest: [],\r\n\tlayer3Kpis: [],\r\n\tcomments: [],\r\n\tfailuresVoiceFilePath: ''\r\n};\r\n\r\nconst voiceReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_FAILURES_VOICE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailures: action.failures\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_VOICE_EDIT_FAILURE_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\tvoiceEditFailureDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\ttableId: action.tableId,\r\n\t\t\t\t\t\t\tfilenameMoc: action.filenameMoc,\r\n\t\t\t\t\t\t\tfilenameMtc: action.filenameMtc,\r\n\t\t\t\t\t\t\tfailureSide: action.failureSide,\r\n\t\t\t\t\t\t\tfailureType: action.failureType,\r\n\t\t\t\t\t\t\tinitialTimestamp: action.initialTimestamp\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_FAILURE_VOICE_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\tfailure: action.failure,\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.failure.trackerVoiceDetailsDto }\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_FAILURE_VOICE_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 EXPORT_FAILURES_VOICE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailuresVoiceFilePath: action.failuresVoiceFilePath\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_LAYER_3_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\tlayer3DialogVisibility: action.visible,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_LAYER_3: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlayer3: action.layer3\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_LAYER_3_MESSAGE_MO: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlayer3MessageMo: action.layer3MessageMo\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_LAYER_3_MESSAGE_MT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlayer3MessageMt: action.layer3MessageMt\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_LAYER_3_FAILURE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlayer3Failure: action.layer3Failure\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_LAYER_3_DRIVETEST: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlayer3DriveTest: action.layer3DriveTest\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_LAYER_3_KPIS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlayer3Kpis: action.layer3Kpis\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 voiceReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetFailuresPacketRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetFailuresPacket`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const SetFailurePacketValidInvalidRequest = (userId, id) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Tracker/SetFailurePacketValidInvalid`,\r\n\tparams: { userId, id }\r\n});\r\n\r\nexport const GetFailurePacketDetailsRequest = (id, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/GetFailurePacketDetails`,\r\n\tparams: { id, userId }\r\n});\r\n\r\nexport const SetFailurePacketDetailsRequest = (trackerPacketDetailsDto, userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Tracker/EditFailurePacketDetails`,\r\n\tdata: { trackerPacketDetailsDto, userId }\r\n});\r\n\r\nexport const AddPacketCommentRequest = (id, userId, comment) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Tracker/AddFailurePacketComment`,\r\n\tparams: { id, userId, comment }\r\n});\r\n\r\nexport const ExportFailuresPacketRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/ExportFailuresPacket`,\r\n\tparams: { userId, role }\r\n});\r\n","import { DownloadFile, enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetFailuresPacketRequest,\r\n\tSetFailurePacketValidInvalidRequest,\r\n\tGetFailurePacketDetailsRequest,\r\n\tSetFailurePacketDetailsRequest,\r\n\tAddPacketCommentRequest,\r\n\tExportFailuresPacketRequest\r\n} from '../requests/PacketRequest';\r\n\r\nexport const GET_FAILURES_PACKET = 'GET_FAILURES_PACKET';\r\nexport const GET_FAILURE_PACKET_DETAILS = 'GET_FAILURE_PACKET_DETAILS';\r\nexport const TOGGLE_PACKET_EDIT_FAILURE_DIALOG = 'TOGGLE_PACKET_EDIT_FAILURE_DIALOG';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\n\r\nconst onGetFailuresPacket = (value) => ({\r\n\ttype: GET_FAILURES_PACKET,\r\n\tfailures: value\r\n});\r\n\r\nconst onTogglePacketEditFailureDialog = (visible, tableId, failureId) => ({\r\n\ttype: TOGGLE_PACKET_EDIT_FAILURE_DIALOG,\r\n\tvisible,\r\n\ttableId,\r\n\tfailureId\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetFailurePacketDetails = (value) => ({\r\n\ttype: GET_FAILURE_PACKET_DETAILS,\r\n\tfailure: value\r\n});\r\n\r\nexport const GetFailuresPacket = (userId, role) => async (dispatch) => {\r\n\tawait GetFailuresPacketRequest(userId, role).then(response => {\r\n\t\tdispatch(onGetFailuresPacket(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 SetFailurePacketValidInvalid = (userId, id) => async (dispatch) => {\r\n\tawait SetFailurePacketValidInvalidRequest(userId, id).then(response => {\r\n\t\t// dispatch(onGetFailuresVoice(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 TogglePacketEditFailureDialog = (visible, tableId, failureId) => (dispatch) => {\r\n\tdispatch(onTogglePacketEditFailureDialog(visible, tableId, failureId));\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const GetFailurePacketDetails = (id, userId) => async (dispatch) => {\r\n\tawait GetFailurePacketDetailsRequest(id, userId).then(response => {\r\n\t\tdispatch(onGetFailurePacketDetails(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 SetFailurePacketDetails = (failure, userId) => async (dispatch) => {\r\n\tawait SetFailurePacketDetailsRequest(failure, userId).then(response => {\r\n\t\t// dispatch(onGetFailureVoiceDetails(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 AddPacketComment = (id, userId, comment) => async (dispatch) => {\r\n\tawait AddPacketCommentRequest(id, userId, comment).then(response => {\r\n\t\tdispatch(GetFailurePacketDetails(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 ExportFailuresPacket = (userId, role) => async (dispatch) => {\r\n\tawait ExportFailuresPacketRequest(userId, role).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_FAILURES_PACKET,\r\n\tGET_FAILURE_PACKET_DETAILS,\r\n\tTOGGLE_PACKET_EDIT_FAILURE_DIALOG,\r\n\tSET_FORM_STATE\r\n} from '../actions/PacketActions';\r\n\r\nconst initialState = {\r\n\tfailures: [],\r\n\tpacketEditFailureDialogVisibility: false,\r\n\tformState: {\r\n\t\tvalues: {\r\n\t\t\tfailureSource: 'fail',\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 packetReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_FAILURES_PACKET: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailures: action.failures\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_FAILURE_PACKET_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\tfailure: action.failure,\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.failure.trackerPacketDetailsDto }\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_PACKET_EDIT_FAILURE_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\tpacketEditFailureDialogVisibility: 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 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 packetReducer;\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: 53.47563160751544,\r\n\tlon: -2.242764630313572,\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 GetAlgorithmsCitiesRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Algorithms/GetAlgorithmsCities`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const GetAlgorithmsDatesRequest = (city) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Algorithms/GetAlgorithmsDates`,\r\n\tparams: { city }\r\n});\r\n\r\nexport const RunOvershootingByCoordinatesRequest = (\r\n\tuserId, city, date, points, tech2g, tech3g, tech4g,\r\n\tosParameters2g, osParameters3g, osParameters4g\r\n) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Algorithms/RunOvershootingByCoordinates`,\r\n\tdata: { userId, city, date, points, tech2g, tech3g, tech4g, osParameters2g, osParameters3g, osParameters4g }\r\n});\r\n\r\nexport const RunOvershootingByFileRequest = (\r\n\tuserId, city, date, filePath, tech2g, tech3g, tech4g,\r\n\tosParameters2g, osParameters3g, osParameters4g\r\n) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Algorithms/RunOvershootingByFile`,\r\n\tdata: { userId, city, date, filePath, tech2g, tech3g, tech4g, osParameters2g, osParameters3g, osParameters4g }\r\n});\r\n","import { DownloadFile, enqueueSnackbar, UploadFile } from 'actions';\r\n\r\nimport {\r\n\t// ImportFileRequest,\r\n\tGetAlgorithmsCitiesRequest,\r\n\tGetAlgorithmsDatesRequest,\r\n\tRunOvershootingByCoordinatesRequest,\r\n\tRunOvershootingByFileRequest\r\n} from '../requests/AlgorithmsRequests';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_ALGORITHMS_CITIES = 'GET_ALGORITHMS_CITIES';\r\nexport const GET_ALGORITHMS_DATES = 'GET_ALGORITHMS_DATES';\r\nexport const RUN_ALGORITHM_OVERSHOOTING = 'RUN_ALGORITHM_OVERSHOOTING';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetAlgorithmsCities = (value) => ({\r\n\ttype: GET_ALGORITHMS_CITIES,\r\n\tcities: value\r\n});\r\n\r\nconst onGetAlgorithmsDates = (value) => ({\r\n\ttype: GET_ALGORITHMS_DATES,\r\n\tdates: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const GetAlgorithmsCities = (userId) => async (dispatch) => {\r\n\tawait GetAlgorithmsCitiesRequest(userId).then(response => {\r\n\t\tdispatch(onGetAlgorithmsCities(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 GetAlgorithmsDates = (city) => async (dispatch) => {\r\n\tawait GetAlgorithmsDatesRequest(city).then(response => {\r\n\t\tdispatch(onGetAlgorithmsDates(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 RunOvershootingByCoordinates = (\r\n\tuserId, city, date, points, tech2g, tech3g, tech4g,\r\n\tosParameters2g, osParameters3g, osParameters4g\r\n) => async (dispatch) => {\r\n\tawait RunOvershootingByCoordinatesRequest(\r\n\t\tuserId, city, date, points, tech2g, tech3g, tech4g,\r\n\t\tosParameters2g, osParameters3g, osParameters4g\r\n\t).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 RunOvershootingByFile = (\r\n\tuserId, city, date, filePath, tech2g, tech3g, tech4g,\r\n\tosParameters2g, osParameters3g, osParameters4g\r\n) => async (dispatch) => {\r\n\tawait RunOvershootingByFileRequest(userId, city, date, filePath, tech2g, tech3g, tech4g,\r\n\t\tosParameters2g, osParameters3g, osParameters4g\r\n\t).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 UploadFileThenRunOvershooting = (city, date, file, tech2g, tech3g, tech4g, userId) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(RunOvershootingByFile(city, date, response.data, tech2g, tech3g, tech4g, userId));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tGET_ALGORITHMS_CITIES,\r\n\tGET_ALGORITHMS_DATES,\r\n\tRUN_ALGORITHM_OVERSHOOTING\r\n} from '../actions/AlgorithmsActions';\r\n\r\nconst initialState = {\r\n\talgoCities: [],\r\n\talgoDates: [],\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {\r\n\t\t\ttech2g: false,\r\n\t\t\ttech3g: false,\r\n\t\t\ttech4g: false,\r\n\t\t\talgoSelectedCity: '',\r\n\t\t\talgoSelectedDate: '',\r\n\t\t\tnorthEastLatitude: 51.970581074166546,\r\n\t\t\tnorthEastLongitude: -0.2727386662149663,\r\n\t\t\tsouthWestLatitude: 51.82561957967412,\r\n\t\t\tsouthWestLongitude: -0.7059153010141366,\r\n\t\t\talgoSelectedTab: 'byCoordinates',\r\n\t\t\talgoInputFilePath: '',\r\n\t\t\t// 2G\r\n\t\t\tnumberOfBins2g: '10',\r\n\t\t\tpowerDelta2g: '6',\r\n\t\t\tclusterRadius2g: '100',\r\n\t\t\twarningPwrDelta2g: '6',\r\n\t\t\tpowerThreshold2g: '-90',\r\n\t\t\tqualityDelta2g: 'N/A',\r\n\t\t\tqualityThreshold2g: 'N/A',\r\n\t\t\twarningQualityDelta2g: 'N/A',\r\n\t\t\t// 3G\r\n\t\t\tnumberOfBins3g: '10',\r\n\t\t\tpowerDelta3g: '6',\r\n\t\t\tclusterRadius3g: '100',\r\n\t\t\twarningPwrDelta3g: '6',\r\n\t\t\tpowerThreshold3g: '-95',\r\n\t\t\tqualityDelta3g: '6',\r\n\t\t\tqualityThreshold3g: '-10',\r\n\t\t\twarningQualityDelta3g: '5',\r\n\t\t\t// 4G\r\n\t\t\tnumberOfBins4g: '10',\r\n\t\t\tpowerDelta4g: '6',\r\n\t\t\tclusterRadius4g: '100',\r\n\t\t\twarningPwrDelta4g: '6',\r\n\t\t\tpowerThreshold4g: '-100',\r\n\t\t\tqualityDelta4g: '6',\r\n\t\t\tqualityThreshold4g: '-10',\r\n\t\t\twarningQualityDelta4g: '5'\r\n\t\t},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t},\r\n};\r\n\r\nconst algorithmsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_ALGORITHMS_CITIES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\talgoCities: action.cities\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_ALGORITHMS_DATES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\talgoDates: action.dates\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// case RUN_ALGORITHM_OVERSHOOTING: {\r\n\t\t\t\t\t// \treturn {\r\n\t\t\t\t\t// \t\t...state,\r\n\t\t\t\t\t// \t\talgoFilePath: action.filePath\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 algorithmsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const SavePdfFileRequest = (userId, stream, tempFilePath) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}RepositoryPdf/SavePdfFile`,\r\n\tdata: { userId, stream, tempFilePath }\r\n});\r\n\r\nexport const GetRepositoryFilesRequest = (userId, stream) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}RepositoryPdf/GetRepositoryFiles`,\r\n\tparams: { userId, stream }\r\n});\r\n\r\nexport const DownloadRepositoryFileRequest = (userId, tableId, filename) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}RepositoryPdf/DownloadRepositoryFile`,\r\n\tparams: { userId, tableId, filename }\r\n});\r\n\r\nexport const RemoveRepositoryFileRequest = (userId, tableId, filename) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}RepositoryPdf/RemoveRepositoryFile`,\r\n\tparams: { userId, tableId, filename }\r\n});\r\n\r\nexport const GetPdfInformationRequest = (userId, tableId, filename) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}RepositoryPdf/GetPdfInformation`,\r\n\tparams: { userId, tableId, filename }\r\n});\r\n","import { DownloadFile, enqueueSnackbar, UploadFile } from 'actions';\r\nimport {\r\n\tGetRepositoryFilesRequest,\r\n\tSavePdfFileRequest,\r\n\tDownloadRepositoryFileRequest,\r\n\tRemoveRepositoryFileRequest,\r\n\tGetPdfInformationRequest\r\n} from '../requests/RepositoryPdfRequests';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_REPOSITORY_FILES = 'GET_REPOSITORY_FILES';\r\nexport const TOGGLE_REMOVE_REPOSITORY_FILE_DIALOG = 'TOGGLE_REMOVE_REPOSITORY_FILE_DIALOG';\r\nexport const GET_PDF_IMFORMATION = 'GET_PDF_IMFORMATION';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetRepositoryFiles = (value) => ({\r\n\ttype: GET_REPOSITORY_FILES,\r\n\tfilesInfo: value\r\n});\r\n\r\nconst onToggleRemoveRepositoryFileDialog = (visible, tableId, filename, stream) => ({\r\n\ttype: TOGGLE_REMOVE_REPOSITORY_FILE_DIALOG,\r\n\tvisible,\r\n\ttableId,\r\n\tfilename,\r\n\tstream\r\n});\r\n\r\nconst onGetPdfInformation = (value) => ({\r\n\ttype: GET_PDF_IMFORMATION,\r\n\tpdfInformationBase64: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const GetRepositoryFiles = (userId, stream) => async (dispatch) => {\r\n\tawait GetRepositoryFilesRequest(userId, stream).then(response => {\r\n\t\tdispatch(onGetRepositoryFiles(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 SavePdfFile = (userId, stream, filePath) => async (dispatch) => {\r\n\tawait SavePdfFileRequest(userId, stream, filePath).then(response => {\r\n\t\tdispatch(GetRepositoryFiles(userId, stream));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 UploadPdfFile = (userId, stream, file) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(SavePdfFile(userId, stream, 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 DownloadRepositoryFile = (userId, tableId, filename) => async (dispatch) => {\r\n\tawait DownloadRepositoryFileRequest(userId, tableId, filename).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 ToggleRemoveRepositoryFileDialog = (visible, tableId, filename, stream) => (dispatch) => {\r\n\tdispatch(onToggleRemoveRepositoryFileDialog(visible, tableId, filename, stream));\r\n};\r\n\r\nexport const RemoveRepositoryFile = (userId, tableId, filename, stream) => async (dispatch) => {\r\n\tawait RemoveRepositoryFileRequest(userId, tableId, filename).then(response => {\r\n\t\tdispatch(GetRepositoryFiles(userId, stream));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 GetPdfInformation = (userId, tableId, filename) => async (dispatch) => {\r\n\tawait GetPdfInformationRequest(userId, tableId, filename).then(response => {\r\n\t\tdispatch(onGetPdfInformation(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tGET_REPOSITORY_FILES,\r\n\tTOGGLE_REMOVE_REPOSITORY_FILE_DIALOG,\r\n\tGET_PDF_IMFORMATION\r\n} from '../actions/RepositoryPdfActions';\r\n\r\nconst initialState = {\r\n\tfilesInfo: [],\r\n\tremoveRepoFileDialogVisibility: false,\r\n\tpdfInformationBase64: '',\r\n\tformState: {\r\n\t\tvalues: {\r\n\t\t\trepositoryPdfInputFilePath: ''\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 repositoryReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_REPOSITORY_FILES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfilesInfo: action.filesInfo\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_REMOVE_REPOSITORY_FILE_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\tremoveRepoFileDialogVisibility: action.visible,\r\n\t\t\t\t\t\t\ttableId: action.tableId,\r\n\t\t\t\t\t\t\tfilename: action.filename,\r\n\t\t\t\t\t\t\tstream: action.stream\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_PDF_IMFORMATION: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tpdfInformationBase64: action.pdfInformationBase64,\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 repositoryReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOptSitesIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/GetOptSitesIncidents`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const GetOptSiteIncidentDetailsRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/GetOptSiteIncidentDetails`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const GetOptSiteIncidentDropdownsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/GetOptSiteIncidentDropdowns`\r\n});\r\n\r\nexport const EditOptSiteIncidentDetailsRequest = (optimizationsSiteDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsSite/EditOptSiteIncidentDetails`,\r\n\tdata: optimizationsSiteDto\r\n});\r\n\r\nexport const CreateOptSiteIncidentRequest = (optimizationsSiteDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsSite/CreateOptSiteIncident`,\r\n\tdata: optimizationsSiteDto\r\n});\r\n\r\nexport const DeleteOptSiteIncidentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/DeleteOptSiteIncident`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const ExportOptSitesIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/ExportOptSitesIncidents`,\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}OptimizationsSite/GetAutocompleteFields`,\r\n\tparams: { siteId }\r\n});\r\n\r\nexport const GetDriveTestsCitiesRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/GetDriveTestsCities`,\r\n});\r\n\r\nexport const GetDriveTestsDrivesRequest = (city) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/GetDriveTestsDrives`,\r\n\tparams: { city }\r\n});\r\n\r\nexport const GetDriveTestsDatesRequest = (city, drive) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsSite/GetDriveTestsDates`,\r\n\tparams: { city, drive }\r\n});\r\n\r\nexport const GetFailuresRequest = (selectedCity, selectedDates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsSite/GetFailures`,\r\n\tdata: { selectedCity, selectedDates }\r\n});\r\n\r\nexport const AddAttachmentRequest = (userId, incidentId, tempFilePath) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsSite/AddAttachment`,\r\n\tdata: { userId, incidentId, tempFilePath }\r\n});\r\n\r\nexport const DownloadAttachmentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsSite/DownloadAttachment`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const RemoveAttachmentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsSite/RemoveAttachment`,\r\n\tparams: { userId, tableId }\r\n});\r\n","import { DownloadFile, enqueueSnackbar, UploadFile } from 'actions';\r\nimport {\r\n\tGetOptSitesIncidentsRequest,\r\n\tGetOptSiteIncidentDetailsRequest,\r\n\tGetOptSiteIncidentDropdownsRequest,\r\n\tEditOptSiteIncidentDetailsRequest,\r\n\tCreateOptSiteIncidentRequest,\r\n\tDeleteOptSiteIncidentRequest,\r\n\tExportOptSitesIncidentsRequest,\r\n\tGetAutocompleteFieldsRequest,\r\n\tGetDriveTestsCitiesRequest,\r\n\tGetDriveTestsDrivesRequest,\r\n\tGetDriveTestsDatesRequest,\r\n\tGetFailuresRequest,\r\n\tAddAttachmentRequest,\r\n\tDownloadAttachmentRequest,\r\n\tRemoveAttachmentRequest\r\n} from '../requests/OptSiteRequests';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const RESET_FIELDS = 'RESET_FIELDS';\r\nexport const GET_OPT_SITE_TRACKER = 'GET_OPT_SITE_TRACKER';\r\nexport const TOGGLE_OPT_SITE_DIALOG = 'TOGGLE_OPT_SITE_DIALOG';\r\nexport const GET_OPT_SITE_TRACKER_DETAILS = 'GET_OPT_SITE_TRACKER_DETAILS';\r\nexport const GET_OPT_SITE_TRACKER_DROPDOWNS = 'GET_OPT_SITE_TRACKER_DROPDOWNS';\r\nexport const TOGGLE_DELETE_OPT_SITE_DIALOG = 'TOGGLE_DELETE_OPT_SITE_DIALOG';\r\nexport const GET_OPT_SITE_AUTOCOMPLETE = 'GET_OPT_SITE_AUTOCOMPLETE';\r\nexport const GET_DRIVETESTS_CITIES = 'GET_DRIVETESTS_CITIES';\r\nexport const GET_DRIVETESTS_DRIVES = 'GET_DRIVETESTS_DRIVES';\r\nexport const GET_DRIVETESTS_DATES = 'GET_DRIVETESTS_DATES';\r\nexport const SET_SELECTED_DATES = 'SET_SELECTED_DATES';\r\nexport const GET_FAILURES = 'GET_FAILURES';\r\nexport const SET_SELECTED_FAILURES = 'SET_SELECTED_FAILURES';\r\nexport const TOGGLE_ATTACH_FILE_OPT_SITE_DIALOG = 'TOGGLE_ATTACH_FILE_OPT_SITE_DIALOG';\r\nexport const TOGGLE_REMOVE_FILE_OPT_SITE_DIALOG = 'TOGGLE_REMOVE_FILE_OPT_SITE_DIALOG';\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 onGetOptSitesIncidents = (value) => ({\r\n\ttype: GET_OPT_SITE_TRACKER,\r\n\tincidents: value\r\n});\r\n\r\nconst onToggleOptSiteDialog = (visible, tableId) => ({\r\n\ttype: TOGGLE_OPT_SITE_DIALOG,\r\n\tvisible,\r\n\ttableId\r\n});\r\n\r\nconst onGetOptSiteIncidentDetails = (value) => ({\r\n\ttype: GET_OPT_SITE_TRACKER_DETAILS,\r\n\tincidentDetails: value\r\n});\r\n\r\nconst onGetOptSiteIncidentDropdowns = (value) => ({\r\n\ttype: GET_OPT_SITE_TRACKER_DROPDOWNS,\r\n\tdropdowns: value\r\n});\r\n\r\nconst onToggleDeleteOptSiteDialog = (visible, tableId) => ({\r\n\ttype: TOGGLE_DELETE_OPT_SITE_DIALOG,\r\n\tvisible,\r\n\ttableId\r\n});\r\n\r\nconst onGetAutocompleteFields = (value) => ({\r\n\ttype: GET_OPT_SITE_AUTOCOMPLETE,\r\n\tautocompleteFields: value\r\n});\r\n\r\nconst onGetDriveTestsCities = (value) => ({\r\n\ttype: GET_DRIVETESTS_CITIES,\r\n\tcities: value\r\n});\r\n\r\nconst onGetDriveTestsDrives = (value) => ({\r\n\ttype: GET_DRIVETESTS_DRIVES,\r\n\tdrives: value\r\n});\r\n\r\nconst onGetDriveTestsDates = (value) => ({\r\n\ttype: GET_DRIVETESTS_DATES,\r\n\tdates: value\r\n});\r\n\r\nconst onSetSelectedDates = (value) => ({\r\n\ttype: SET_SELECTED_DATES,\r\n\tselectedDates: value\r\n});\r\n\r\nconst onGetFailures = (value) => ({\r\n\ttype: GET_FAILURES,\r\n\tfailures: value\r\n});\r\n\r\nconst onSetSelectedFailures = (value) => ({\r\n\ttype: SET_SELECTED_FAILURES,\r\n\tselectedFailures: value\r\n});\r\n\r\nconst onToggleAttachFileOptSiteDialog = (visible) => ({\r\n\ttype: TOGGLE_ATTACH_FILE_OPT_SITE_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleRemoveFileOptSiteDialog = (visible) => ({\r\n\ttype: TOGGLE_REMOVE_FILE_OPT_SITE_DIALOG,\r\n\tvisible\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 GetOptSitesIncidents = (userId, role) => async (dispatch) => {\r\n\tawait GetOptSitesIncidentsRequest(userId, role).then(response => {\r\n\t\tdispatch(onGetOptSitesIncidents(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 ToggleOptSiteDialog = (visible, tableId) => (dispatch) => {\r\n\tdispatch(onToggleOptSiteDialog(visible, tableId));\r\n};\r\n\r\nexport const GetOptSiteIncidentDetails = (userId, tableId) => async (dispatch) => {\r\n\tawait GetOptSiteIncidentDetailsRequest(userId, tableId).then(response => {\r\n\t\tdispatch(onGetOptSiteIncidentDetails(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 GetOptSiteIncidentDropdowns = (userId, tableId) => async (dispatch) => {\r\n\tawait GetOptSiteIncidentDropdownsRequest(userId, tableId).then(response => {\r\n\t\tdispatch(onGetOptSiteIncidentDropdowns(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 EditOptSiteIncidentDetails = (optimizationsSiteDto) => async (dispatch) => {\r\n\tawait EditOptSiteIncidentDetailsRequest(optimizationsSiteDto).then(response => {\r\n\t\tdispatch(GetOptSitesIncidents());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 CreateOptSiteIncident = (optimizationsSiteDto) => async (dispatch) => {\r\n\tawait CreateOptSiteIncidentRequest(optimizationsSiteDto).then(response => {\r\n\t\tdispatch(GetOptSitesIncidents());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 ToggleDeleteOptSiteDialog = (visible, tableId) => (dispatch) => {\r\n\tdispatch(onToggleDeleteOptSiteDialog(visible, tableId));\r\n};\r\n\r\nexport const DeleteOptSiteIncident = (userId, tableId) => async (dispatch) => {\r\n\tawait DeleteOptSiteIncidentRequest(userId, tableId).then(response => {\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 ExportOptSitesIncidents = (userId, role) => async (dispatch) => {\r\n\tawait ExportOptSitesIncidentsRequest(userId, role).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 GetAutocompleteFields = (siteId) => async (dispatch) => {\r\n\tawait GetAutocompleteFieldsRequest(siteId).then(response => {\r\n\t\tdispatch(onGetAutocompleteFields(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 GetDriveTestsCities = () => async (dispatch) => {\r\n\tawait GetDriveTestsCitiesRequest().then(response => {\r\n\t\tdispatch(onGetDriveTestsCities(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 GetDriveTestsDrives = (city) => async (dispatch) => {\r\n\tawait GetDriveTestsDrivesRequest(city).then(response => {\r\n\t\tdispatch(onGetDriveTestsDrives(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 GetDriveTestsDates = (city, drive) => async (dispatch) => {\r\n\tawait GetDriveTestsDatesRequest(city, drive).then(response => {\r\n\t\tdispatch(onGetDriveTestsDates(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 SetSelectedDates = (selectedDates) => (dispatch) => {\r\n\tdispatch(onSetSelectedDates(selectedDates));\r\n};\r\n\r\nexport const GetFailures = (selectedCity, selectedDates) => async (dispatch) => {\r\n\tawait GetFailuresRequest(selectedCity, selectedDates).then(response => {\r\n\t\tdispatch(onGetFailures(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 SetSelectedFailures = (selectedFailures) => (dispatch) => {\r\n\tdispatch(onSetSelectedFailures(selectedFailures));\r\n};\r\n\r\nexport const AddAttachment = (userId, incidentId, filePath) => async (dispatch) => {\r\n\tawait AddAttachmentRequest(userId, incidentId, filePath).then(response => {\r\n\t\t// dispatch(GetRepositoryFiles());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 UploadAttachment = (userId, incidentId, file) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(AddAttachment(userId, incidentId, 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 ToggleAttachFileOptSiteDialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleAttachFileOptSiteDialog(visible));\r\n};\r\n\r\nexport const DownloadAttachment = (userId, tableId) => async (dispatch) => {\r\n\tawait DownloadAttachmentRequest(userId, tableId).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 ToggleRemoveFileOptSiteDialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleRemoveFileOptSiteDialog(visible));\r\n};\r\n\r\nexport const RemoveAttachment = (userId, tableId) => async (dispatch) => {\r\n\tawait RemoveAttachmentRequest(userId, tableId).then(response => {\r\n\t\t// dispatch(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};","import {\r\n\tSET_FORM_STATE,\r\n\tRESET_FIELDS,\r\n\tGET_OPT_SITE_TRACKER,\r\n\tTOGGLE_OPT_SITE_DIALOG,\r\n\tGET_OPT_SITE_TRACKER_DETAILS,\r\n\tGET_OPT_SITE_TRACKER_DROPDOWNS,\r\n\tTOGGLE_DELETE_OPT_SITE_DIALOG,\r\n\tGET_OPT_SITE_AUTOCOMPLETE,\r\n\tGET_DRIVETESTS_CITIES,\r\n\tGET_DRIVETESTS_DRIVES,\r\n\tGET_DRIVETESTS_DATES,\r\n\tSET_SELECTED_DATES,\r\n\tGET_FAILURES,\r\n\tSET_SELECTED_FAILURES,\r\n\tTOGGLE_ATTACH_FILE_OPT_SITE_DIALOG,\r\n\tTOGGLE_REMOVE_FILE_OPT_SITE_DIALOG\r\n} from '../actions/OptSiteActions';\r\n\r\nconst initialState = {\r\n\tincidents: [],\r\n\toptSiteDialogVisibility: false,\r\n\tincidentDetails: [],\r\n\tdropdowns: [],\r\n\toptimizationsSiteDto: [],\r\n\ttableId: '',\r\n\tdeleteOptSiteDialogVisibility: false,\r\n\tattachFileOptSiteDialogVisibility: false,\r\n\tremoveFileOptSiteDialogVisibility: false,\r\n\tautocompleteFields: [],\r\n\tcities: [],\r\n\tdrives: [],\r\n\tdates: [],\r\n\tselectedDates: [],\r\n\tfailures: [],\r\n\tselectedFailures: [],\r\n\tformState: {\r\n\t\tvalues: {\r\n\t\t\tinputFilePath: '',\r\n\t\t\tstream: 'Postcode Analysis',\r\n\t\t\tglobalStatus: 'Open'\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 optSiteReducer = (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_OPT_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\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_OPT_SITE_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\toptSiteDialogVisibility: 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_OPT_SITE_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_OPT_SITE_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_OPT_SITE_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\tdeleteOptSiteDialogVisibility: 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_OPT_SITE_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 GET_DRIVETESTS_CITIES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tcities: action.cities\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_DRIVES: {\r\n\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: action.drives\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_DRIVETESTS_DATES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdates: action.dates\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_SELECTED_DATES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tselectedDates: action.selectedDates\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_FAILURES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tfailures: action.failures\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_SELECTED_FAILURES: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tselectedFailures: action.selectedFailures\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_OPT_SITE_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\tattachFileOptSiteDialogVisibility: 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_OPT_SITE_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\tremoveFileOptSiteDialogVisibility: action.visible,\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 optSiteReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOptOverallsIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsOverall/GetOptOverallsIncidents`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const GetOptOverallIncidentDetailsRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsOverall/GetOptOverallIncidentDetails`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const GetOptOverallIncidentDropdownsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsOverall/GetOptOverallIncidentDropdowns`\r\n});\r\n\r\nexport const EditOptOverallIncidentDetailsRequest = (optimizationsOverallDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsOverall/EditOptOverallIncidentDetails`,\r\n\tdata: optimizationsOverallDto\r\n});\r\n\r\nexport const CreateOptOverallIncidentRequest = (optimizationsOverallDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}OptimizationsOverall/CreateOptOverallIncident`,\r\n\tdata: optimizationsOverallDto\r\n});\r\n\r\nexport const DeleteOptOverallIncidentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsOverall/DeleteOptOverallIncident`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const ExportOptOverallsIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}OptimizationsOverall/ExportOptOverallsIncidents`,\r\n\tparams: { userId, role }\r\n});\r\n","import { DownloadFile, enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetOptOverallsIncidentsRequest,\r\n\tGetOptOverallIncidentDetailsRequest,\r\n\tGetOptOverallIncidentDropdownsRequest,\r\n\tEditOptOverallIncidentDetailsRequest,\r\n\tCreateOptOverallIncidentRequest,\r\n\tDeleteOptOverallIncidentRequest,\r\n\tExportOptOverallsIncidentsRequest\r\n} from '../requests/OptOverallRequests';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_OPT_OVERALL_TRACKER = 'GET_OPT_OVERALL_TRACKER';\r\nexport const TOGGLE_OPT_OVERALL_DIALOG = 'TOGGLE_OPT_OVERALL_DIALOG';\r\nexport const GET_OPT_OVERALL_TRACKER_DETAILS = 'GET_OPT_OVERALL_TRACKER_DETAILS';\r\nexport const GET_OPT_OVERALL_TRACKER_DROPDOWNS = 'GET_OPT_OVERALL_TRACKER_DROPDOWNS';\r\nexport const TOGGLE_DELETE_OPT_OVERALL_DIALOG = 'TOGGLE_DELETE_OPT_OVERALL_DIALOG';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetOptOverallsIncidents = (value) => ({\r\n\ttype: GET_OPT_OVERALL_TRACKER,\r\n\tincidents: value\r\n});\r\n\r\nconst onToggleOptOverallDialog = (visible, tableId) => ({\r\n\ttype: TOGGLE_OPT_OVERALL_DIALOG,\r\n\tvisible,\r\n\ttableId\r\n});\r\n\r\nconst onGetOptOverallIncidentDetails = (value) => ({\r\n\ttype: GET_OPT_OVERALL_TRACKER_DETAILS,\r\n\tincidentDetails: value\r\n});\r\n\r\nconst onGetOptOverallIncidentDropdowns = (value) => ({\r\n\ttype: GET_OPT_OVERALL_TRACKER_DROPDOWNS,\r\n\tdropdowns: value\r\n});\r\n\r\nconst onToggleDeleteOptOverallDialog = (visible, tableId) => ({\r\n\ttype: TOGGLE_DELETE_OPT_OVERALL_DIALOG,\r\n\tvisible,\r\n\ttableId\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const GetOptOverallsIncidents = (userId, role) => async (dispatch) => {\r\n\tawait GetOptOverallsIncidentsRequest(userId, role).then(response => {\r\n\t\tdispatch(onGetOptOverallsIncidents(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 ToggleOptOverallDialog = (visible, tableId) => (dispatch) => {\r\n\tdispatch(onToggleOptOverallDialog(visible, tableId));\r\n};\r\n\r\nexport const GetOptOverallIncidentDetails = (userId, tableId) => async (dispatch) => {\r\n\tawait GetOptOverallIncidentDetailsRequest(userId, tableId).then(response => {\r\n\t\tdispatch(onGetOptOverallIncidentDetails(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 GetOptOverallIncidentDropdowns = (userId, tableId) => async (dispatch) => {\r\n\tawait GetOptOverallIncidentDropdownsRequest(userId, tableId).then(response => {\r\n\t\tdispatch(onGetOptOverallIncidentDropdowns(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 EditOptOverallIncidentDetails = (optimizationsOverallDto) => async (dispatch) => {\r\n\tawait EditOptOverallIncidentDetailsRequest(optimizationsOverallDto).then(response => {\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 CreateOptOverallIncident = (optimizationsOverallDto) => async (dispatch) => {\r\n\tawait CreateOptOverallIncidentRequest(optimizationsOverallDto).then(response => {\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 ToggleDeleteOptOverallDialog = (visible, tableId) => (dispatch) => {\r\n\tdispatch(onToggleDeleteOptOverallDialog(visible, tableId));\r\n};\r\n\r\nexport const DeleteOptOverallIncident = (userId, tableId) => async (dispatch) => {\r\n\tawait DeleteOptOverallIncidentRequest(userId, tableId).then(response => {\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 ExportOptOverallsIncidents = (userId, role) => async (dispatch) => {\r\n\tawait ExportOptOverallsIncidentsRequest(userId, role).then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tGET_OPT_OVERALL_TRACKER,\r\n\tTOGGLE_OPT_OVERALL_DIALOG,\r\n\tGET_OPT_OVERALL_TRACKER_DETAILS,\r\n\tGET_OPT_OVERALL_TRACKER_DROPDOWNS,\r\n\tTOGGLE_DELETE_OPT_OVERALL_DIALOG\r\n} from '../actions/OptOverallActions';\r\n\r\nconst initialState = {\r\n\tincidents: [],\r\n\toptOverallDialogVisibility: false,\r\n\tincidentDetails: [],\r\n\tdropdowns: [],\r\n\toptimizationsOverallDto: [],\r\n\ttableId: '',\r\n\tdeleteOptOverallDialogVisibility: false,\r\n\tautocompleteFields: [],\r\n\tformState: {\r\n\t\tvalues: {\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 optOverallReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPT_OVERALL_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_OPT_OVERALL_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\toptOverallDialogVisibility: 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_OPT_OVERALL_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_OPT_OVERALL_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_OPT_OVERALL_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\tdeleteOptOverallDialogVisibility: 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\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 optOverallReducer;\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 failuresMapReducer from '../views/FailuresMap/reducers/FailuresMapReducer';\r\nimport voiceReducer from '../views/Tracker/reducers/VoiceReducer';\r\nimport packetReducer from '../views/Tracker/reducers/PacketReducer';\r\nimport mapReducer from '../components/Map/reducers/MapReducer';\r\nimport algorithmsReducer from '../views/Algorithms/reducers/AlgorithmsReducer';\r\nimport repositoryReducer from '../views/RepositoryPdf/reducers/RepositoryPdfReducer';\r\nimport optSiteReducer from '../views/OptimizationsSiteTracker/reducers/OptSiteReducer';\r\nimport optOverallReducer from '../views/OptimizationsOverallTracker/reducers/OptOverallReducer';\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\tvoiceReducer,\r\n\tpacketReducer,\r\n\tmapReducer,\r\n\tfailuresMapReducer,\r\n\talgorithmsReducer,\r\n\trepositoryReducer,\r\n\toptSiteReducer,\r\n\toptOverallReducer\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 '@material-ui/styles';\r\nimport { AppBar, Toolbar } from '@material-ui/core';\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 '@material-ui/styles'\r\nimport { LinearProgress } from '@material-ui/core'\r\n\r\nimport { Topbar } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n content: {\r\n height: '100%',\r\n paddingTop: 56,\r\n [theme.breakpoints.up('sm')]: {\r\n paddingTop: 64,\r\n },\r\n },\r\n}))\r\n\r\nconst Auth = (props) => {\r\n const { route } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n
\r\n }>\r\n {renderRoutes(route.routes)}\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nAuth.propTypes = {\r\n route: 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 '@material-ui/styles'\r\nimport { LinearProgress } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n height: '100%',\r\n },\r\n}))\r\n\r\nconst Error = (props) => {\r\n const { route } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n }>\r\n {renderRoutes(route.routes)}\r\n \r\n
\r\n )\r\n}\r\n\r\nError.propTypes = {\r\n route: 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\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\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\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}\t\r\n\t\t})\r\n\t}, [])\r\n\r\n\r\n\treturn (\r\n\t\tnull\r\n\t)\r\n};\r\n\r\nexport default NotificationHub;","import SupervisorAccountIcon from '@material-ui/icons/SupervisorAccount';\r\nimport CalendarTodayIcon from '@material-ui/icons/CalendarToday';\r\nimport HomeIcon from '@material-ui/icons/HomeOutlined';\r\nimport SettingsIcon from '@material-ui/icons/SettingsOutlined';\r\nimport DesktopMacIcon from '@material-ui/icons/DesktopMac';\r\nimport MapIcon from '@material-ui/icons/Map';\r\nimport AssignmentIcon from '@material-ui/icons/Assignment';\r\nimport DnsIcon from '@material-ui/icons/Dns';\r\nimport BrandingWatermarkIcon from '@material-ui/icons/BrandingWatermark';\r\nimport SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna';\r\nimport DeveloperBoardIcon from '@material-ui/icons/DeveloperBoard';\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\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},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: 'Modules',\r\n\t\tpages: [\r\n\t\t\t// {\r\n\t\t\t// \ttitle: 'Tracker',\r\n\t\t\t// \thref: '/tracker',\r\n\t\t\t// \ticon: CalendarTodayIcon,\r\n\t\t\t// \t// roles: ['Administrator', ...]\r\n\t\t\t// \tchildren: [\r\n\t\t\t// {\r\n\t\t\t// \ttitle: 'Import',\r\n\t\t\t// \thref: '/tracker/import',\r\n\t\t\t// },\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Failures',\r\n\t\t\t\thref: '/modules/failures',\r\n\t\t\t\ticon: AssignmentIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Map',\r\n\t\t\t\thref: '/modules/map',\r\n\t\t\t\ticon: MapIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Algorithms',\r\n\t\t\t\thref: '/modules/algorithms',\r\n\t\t\t\ticon: DnsIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'PDF Repository',\r\n\t\t\t\thref: '/modules/repositoryPdf',\r\n\t\t\t\t// roles: ['Administrator'],\r\n\t\t\t\ticon: BrandingWatermarkIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Excel Repository',\r\n\t\t\t\thref: '/modules/repositoryExcel',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ'],\r\n\t\t\t\ticon: FileCopyIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Site Optimizations',\r\n\t\t\t\thref: '/modules/optSiteTracker',\r\n\t\t\t\ticon: SettingsInputAntennaIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Overall Optimizations',\r\n\t\t\t\thref: '/modules/optOverallTracker',\r\n\t\t\t\t// roles: ['Administrator', 'Manager', 'CelfinetHQ', 'CelfinetOS'],\r\n\t\t\t\ticon: DeveloperBoardIcon\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\t{\r\n\t\t\t\t\t\ttitle: 'Statistics',\r\n\t\t\t\t\t\thref: '/management/statistics',\r\n\t\t\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 '@material-ui/styles';\r\nimport { Drawer, Divider, Paper, Avatar, Typography, Hidden } from '@material-ui/core';\r\n\r\nimport FolderIcon from '@material-ui/icons/FolderOutlined';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport getInitials from 'utils/getInitials';\r\nimport { Navigation } from 'components';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport navigationConfig from './navigationConfig';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\toverflowY: 'auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n\tprofile: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\talignItems: 'center',\r\n\t\tminHeight: 'fit-content',\r\n\t},\r\n\tavatar: {\r\n\t\twidth: 60,\r\n\t\theight: 60,\r\n\t},\r\n\tname: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n\tnavigation: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst NavBar = (props) => {\r\n\tconst { openMobile, onMobileClose, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (openMobile) {\r\n\t\t\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\tconst projectsMenu = {\r\n\t\t\ttitle: 'Pages',\r\n\t\t\tpages: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: 'Projects',\r\n\t\t\t\t\thref: '/projects',\r\n\t\t\t\t\ticon: FolderIcon,\r\n\t\t\t\t\tchildren: user.projects.map(item => ({\r\n\t\t\t\t\t\ttitle: item,\r\n\t\t\t\t\t\thref: '/',\r\n\t\t\t\t\t})),\r\n\t\t\t\t},\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\t// replace hangfire token\r\n\t\tconst management = navigationConfig.find(item => item.title === 'Management');\r\n\t\tconst hangfire = management.pages.find(item => item.title === 'Hangfire');\r\n\t\thangfire.href = hangfire.href.replace('{token}', localStorage.getItem(config.TOKEN_KEY));\r\n\r\n\t\tconst hangfireindex = management.pages.findIndex(item => item.title === 'Hangfire');\r\n\t\tmanagement.pages.splice(hangfireindex, 1, hangfire);\r\n\r\n\t\tconst managementIndex = navigationConfig.findIndex(item => item.title === 'Management');\r\n\t\tnavigationConfig.splice(managementIndex, 1, management);\r\n\r\n\t\t// projects menu\r\n\t\tconst index = navigationConfig.findIndex(item => item.title === 'Modules');\r\n\t\tif (index !== 1) {\r\n\t\t\tnavigationConfig.splice(1, 0, projectsMenu);\r\n\t\t}\r\n\t}\r\n\r\n\tconst navbarContent = (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{getInitials(user.firstname)}\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{getInitials(user.lastname)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{user.firstname}\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{user.lastname}\r\n\t\t\t\t\r\n\t\t\t\t{user.operator}\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{navbarContent}\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{navbarContent}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonMobileClose: PropTypes.func,\r\n\topenMobile: PropTypes.bool,\r\n};\r\n\r\nexport default NavBar;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch, shallowEqual } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/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 '@material-ui/core';\r\nimport LockIcon from '@material-ui/icons/LockOutlined';\r\nimport NotificationsIcon from '@material-ui/icons/NotificationsOutlined';\r\nimport InputIcon from '@material-ui/icons/Input';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport SearchIcon from '@material-ui/icons/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\t

 Reliability Evolution

\r\n\t\t\t\t
\r\n\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 React, { Suspense, useState, useEffect } from 'react';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { LinearProgress } from '@material-ui/core';\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 '@material-ui/styles'\r\nimport {\r\n Avatar,\r\n Drawer,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n ListSubheader,\r\n Typography,\r\n Fab,\r\n Badge,\r\n} from '@material-ui/core'\r\nimport PeopleIcon from '@material-ui/icons/PeopleOutline'\r\n\r\nimport axios from 'utils/axios'\r\nimport { StatusBullet } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n drawer: {\r\n width: 280,\r\n },\r\n root: {\r\n backgroundColor: theme.palette.white,\r\n },\r\n list: {\r\n padding: theme.spacing(1, 3),\r\n },\r\n listItemText: {\r\n marginRight: theme.spacing(1),\r\n },\r\n lastActivity: {\r\n whiteSpace: 'nowrap',\r\n },\r\n fab: {\r\n position: 'fixed',\r\n bottom: 32,\r\n right: 32,\r\n zIndex: theme.zIndex.drawer - 100,\r\n },\r\n}))\r\n\r\nconst ChatBar = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [open, setOpen] = useState(false)\r\n const [data, setData] = useState(null)\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchData = () => {\r\n axios.get('/api/chat/activity').then((response) => {\r\n if (mounted) {\r\n setData(response.data)\r\n }\r\n })\r\n }\r\n\r\n fetchData()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n const handleOpen = () => {\r\n setOpen(true)\r\n }\r\n\r\n const handleClose = () => {\r\n setOpen(false)\r\n }\r\n\r\n if (!data) {\r\n return null\r\n }\r\n\r\n const onlineConnections = data.connections.filter(\r\n (connection) => connection.active\r\n ).length\r\n\r\n return (\r\n \r\n \r\n
\r\n {data.groups.map((group) => (\r\n \r\n {group.name}\r\n \r\n }>\r\n {data.connections\r\n .filter(\r\n (connection) =>\r\n group.id === connection.group\r\n )\r\n .map((connection) => (\r\n \r\n \r\n \r\n \r\n \r\n {connection.name}\r\n \r\n }\r\n />\r\n {connection.active ? (\r\n \r\n ) : (\r\n \r\n {moment(\r\n connection.lastActivity\r\n ).fromNow()}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nChatBar.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default ChatBar\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { Doughnut } from 'react-chartjs-2'\r\nimport { makeStyles, useTheme } from '@material-ui/styles'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n position: 'relative',\r\n },\r\n}))\r\n\r\nconst Chart = (props) => {\r\n const { data: dataProp, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n\r\n const data = {\r\n datasets: [\r\n {\r\n data: [],\r\n backgroundColor: [],\r\n borderWidth: 8,\r\n borderColor: theme.palette.white,\r\n hoverBorderColor: theme.palette.white,\r\n },\r\n ],\r\n labels: [],\r\n }\r\n\r\n for (const item of dataProp) {\r\n data.datasets[0].data.push(item.value)\r\n data.datasets[0].backgroundColor.push(item.color)\r\n data.labels.push(item.label)\r\n }\r\n\r\n const options = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: false,\r\n cutoutPercentage: 80,\r\n legend: {\r\n display: false,\r\n },\r\n layout: {\r\n padding: 0,\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: 'index',\r\n intersect: false,\r\n caretSize: 10,\r\n yPadding: 20,\r\n xPadding: 20,\r\n borderWidth: 1,\r\n borderColor: theme.palette.divider,\r\n backgroundColor: theme.palette.white,\r\n titleFontColor: theme.palette.text.primary,\r\n bodyFontColor: theme.palette.text.secondary,\r\n footerFontColor: theme.palette.text.secondary,\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n const label = data['labels'][tooltipItem['index']]\r\n const value =\r\n data['datasets'][0]['data'][tooltipItem['index']]\r\n\r\n return `${label}: ${value}%`\r\n },\r\n },\r\n },\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nChart.propTypes = {\r\n className: PropTypes.string,\r\n data: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default Chart\r\n","import React, { useState, useEffect } from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n Divider,\r\n Typography,\r\n} from '@material-ui/core'\r\n\r\nimport axios from 'utils/axios'\r\nimport { GenericMoreButton } from 'components'\r\nimport { Chart } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n '&:last-child': {\r\n paddingBottom: 0,\r\n },\r\n },\r\n chartContainer: {\r\n padding: theme.spacing(3),\r\n },\r\n chart: {\r\n height: 281,\r\n },\r\n statsContainer: {\r\n display: 'flex',\r\n },\r\n statsItem: {\r\n flexGrow: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n padding: theme.spacing(3, 2),\r\n '&:not(:last-of-type)': {\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n },\r\n },\r\n}))\r\n\r\nconst EarningsSegmentation = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [earnings, setEarnings] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchEarnings = () => {\r\n axios.get('/api/dashboard/earnings').then((response) => {\r\n if (mounted) {\r\n setEarnings(response.data.earnings)\r\n }\r\n })\r\n }\r\n\r\n fetchEarnings()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n }\r\n title=\"Earnings Segmentation\"\r\n />\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n {earnings.map((earning) => (\r\n
\r\n \r\n {earning.label}\r\n \r\n \r\n {earning.value}%\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nEarningsSegmentation.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default EarningsSegmentation\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { Bar } from 'react-chartjs-2'\r\nimport { makeStyles, useTheme } from '@material-ui/styles'\r\nimport { colors } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n position: 'relative',\r\n },\r\n}))\r\n\r\nconst Chart = (props) => {\r\n const { data: dataProp, labels, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n\r\n const data = {\r\n datasets: [\r\n {\r\n label: 'This year',\r\n backgroundColor: theme.palette.primary.main,\r\n data: dataProp.thisYear,\r\n },\r\n {\r\n label: 'Last year',\r\n backgroundColor: colors.grey[200],\r\n data: dataProp.lastYear,\r\n },\r\n ],\r\n labels,\r\n }\r\n\r\n const options = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: false,\r\n cornerRadius: 20,\r\n legend: {\r\n display: false,\r\n },\r\n layout: {\r\n padding: 0,\r\n },\r\n scales: {\r\n xAxes: [\r\n {\r\n barThickness: 12,\r\n maxBarThickness: 10,\r\n barPercentage: 0.5,\r\n categoryPercentage: 0.5,\r\n gridLines: {\r\n display: false,\r\n drawBorder: false,\r\n },\r\n ticks: {\r\n padding: 20,\r\n fontColor: theme.palette.text.secondary,\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n borderDash: [2],\r\n borderDashOffset: [2],\r\n color: theme.palette.divider,\r\n drawBorder: false,\r\n zeroLineBorderDash: [2],\r\n zeroLineBorderDashOffset: [2],\r\n zeroLineColor: theme.palette.divider,\r\n },\r\n ticks: {\r\n padding: 20,\r\n fontColor: theme.palette.text.secondary,\r\n beginAtZero: true,\r\n min: 0,\r\n maxTicksLimit: 5,\r\n callback: (value) => {\r\n return value > 0 ? value + 'K' : value\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: 'index',\r\n intersect: false,\r\n caretSize: 10,\r\n yPadding: 20,\r\n xPadding: 20,\r\n borderWidth: 1,\r\n borderColor: theme.palette.divider,\r\n backgroundColor: theme.palette.white,\r\n titleFontColor: theme.palette.text.primary,\r\n bodyFontColor: theme.palette.text.secondary,\r\n footerFontColor: theme.palette.text.secondary,\r\n callbacks: {\r\n title: () => {},\r\n label: (tooltipItem) => {\r\n let label = `This year: ${tooltipItem.yLabel}`\r\n\r\n if (tooltipItem.yLabel > 0) {\r\n label += 'K'\r\n }\r\n\r\n return label\r\n },\r\n },\r\n },\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nChart.propTypes = {\r\n className: PropTypes.string,\r\n data: PropTypes.object.isRequired,\r\n labels: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default Chart\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, CardHeader, CardContent, Divider } from '@material-ui/core'\r\n\r\nimport { GenericMoreButton } from 'components'\r\nimport { Chart } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: '100%',\r\n },\r\n content: {\r\n padding: 0,\r\n },\r\n inner: {\r\n minWidth: 700,\r\n },\r\n chart: {\r\n padding: theme.spacing(4, 2, 0, 2),\r\n height: 400,\r\n },\r\n}))\r\n\r\nconst FinancialStats = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n thisYear: [18, 16, 5, 8, 3, 14, 14, 16, 17, 19, 18, 20],\r\n lastYear: [12, 11, 4, 6, 2, 9, 9, 10, 11, 12, 13, 13],\r\n }\r\n\r\n const labels = [\r\n 'Jan',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'May',\r\n 'Jun',\r\n 'Jul',\r\n 'Aug',\r\n 'Sep',\r\n 'Oct',\r\n 'Nov',\r\n 'Dec',\r\n ]\r\n\r\n return (\r\n \r\n }\r\n title=\"Financial Stats\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nFinancialStats.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default FinancialStats\r\n","import React, { useState } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport moment from 'moment'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Typography, Grid, Button, ButtonGroup } from '@material-ui/core'\r\nimport { DatePicker } from '@material-ui/pickers'\r\nimport CalendarTodayIcon from '@material-ui/icons/CalendarTodayOutlined'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n dates: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n },\r\n calendarTodayIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst Header = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [startDate, setStartDate] = useState(moment().subtract(7, 'days'))\r\n const [endDate, setEndDate] = useState(moment())\r\n const [selectEdge, setSelectEdge] = useState(null)\r\n const [calendarDate, setCalendarDate] = useState(moment())\r\n\r\n const handleCalendarOpen = (edge) => {\r\n setSelectEdge(edge)\r\n }\r\n\r\n const handleCalendarChange = (date) => {\r\n setCalendarDate(date)\r\n }\r\n\r\n const handleCalendarClose = () => {\r\n setCalendarDate(moment())\r\n setSelectEdge(null)\r\n }\r\n\r\n const handleCalendarAccept = (date) => {\r\n setCalendarDate(moment())\r\n\r\n if (selectEdge === 'start') {\r\n setStartDate(date)\r\n\r\n if (moment(date).isAfter(endDate)) {\r\n setEndDate(date)\r\n }\r\n } else {\r\n setEndDate(date)\r\n\r\n if (moment(date).isBefore(startDate)) {\r\n setStartDate(date)\r\n }\r\n }\r\n\r\n setSelectEdge(null)\r\n }\r\n\r\n const open = Boolean(selectEdge)\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Analytics\r\n \r\n \r\n Finance Overview\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nHeader.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nHeader.defaultProps = {}\r\n\r\nexport default Header\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: 56,\r\n height: 56,\r\n },\r\n circle1: {\r\n stroke: 'rgba(0,0,0,0.05)',\r\n fill: 'none',\r\n strokeWidth: 4,\r\n },\r\n circle2: {\r\n stroke: theme.palette.primary.main,\r\n fill: 'none',\r\n strokeWidth: 4,\r\n animation: '$progress 1s ease-out forwards',\r\n },\r\n '@keyframes progress': {\r\n '0%': {\r\n strokeDasharray: '0 100',\r\n },\r\n },\r\n}))\r\n\r\nconst CircularProgress = (props) => {\r\n const { value, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nCircularProgress.propTypes = {\r\n className: PropTypes.string,\r\n value: PropTypes.number.isRequired,\r\n}\r\n\r\nexport default CircularProgress\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n Divider,\r\n Table,\r\n TableRow,\r\n TableCell,\r\n Typography,\r\n Button,\r\n colors,\r\n TableBody,\r\n} from '@material-ui/core'\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward'\r\n\r\nimport axios from 'utils/axios'\r\nimport { GenericMoreButton } from 'components'\r\nimport CircularProgress from './components/CircularProgress'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n '&:last-child': {\r\n paddingBottom: 0,\r\n },\r\n },\r\n inner: {\r\n minWidth: 700,\r\n },\r\n details: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n image: {\r\n marginRight: theme.spacing(2),\r\n flexShrink: 0,\r\n height: 56,\r\n width: 56,\r\n },\r\n subscriptions: {\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n price: {\r\n whiteSpace: 'nowrap',\r\n },\r\n value: {\r\n color: colors.green[600],\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n conversion: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n },\r\n conversionStats: {\r\n whiteSpace: 'nowrap',\r\n marginRight: theme.spacing(2),\r\n },\r\n actions: {\r\n justifyContent: 'flex-end',\r\n },\r\n arrowForwardIcon: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst MostProfitableProducts = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [products, setProducts] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchProducts = () => {\r\n axios.get('/api/dashboard/profitable-products').then((response) => {\r\n if (mounted) {\r\n setProducts(response.data.products)\r\n }\r\n })\r\n }\r\n\r\n fetchProducts()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n }\r\n title=\"Most Profitable Products\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {products.map((product) => (\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {product.name}\r\n \r\n \r\n \r\n {\r\n product.subscriptions\r\n }\r\n {' '}\r\n Active\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Price\r\n \r\n \r\n \r\n {product.currency}\r\n {product.price}\r\n {' '}\r\n monthly\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {product.progress}%\r\n \r\n \r\n Conversion Rate\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n See all\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nMostProfitableProducts.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default MostProfitableProducts\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, Typography, Grid, colors } from '@material-ui/core'\r\n\r\nimport { Label } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n },\r\n item: {\r\n padding: theme.spacing(3),\r\n textAlign: 'center',\r\n [theme.breakpoints.up('md')]: {\r\n '&:not(:last-of-type)': {\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n },\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n '&:not(:last-of-type)': {\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n },\r\n },\r\n },\r\n valueContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n label: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst Overview = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n income: '854,355.00',\r\n expanses: '373,250.50',\r\n profit: '123,532.00',\r\n subscriptions: '26,000',\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Total Income\r\n \r\n
\r\n ${data.income}\r\n \r\n +25%\r\n \r\n
\r\n
\r\n \r\n \r\n Total Expanses\r\n \r\n
\r\n ${data.expanses}\r\n \r\n +12%\r\n \r\n
\r\n
\r\n \r\n \r\n Net Profit\r\n \r\n
\r\n {data.profit}\r\n \r\n -20%\r\n \r\n
\r\n
\r\n \r\n \r\n Active Subscriptions\r\n \r\n
\r\n \r\n {data.subscriptions}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nOverview.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Overview\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Avatar,\r\n Button,\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n Typography,\r\n} from '@material-ui/core'\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward'\r\n\r\nimport axios from 'utils/axios'\r\nimport { GenericMoreButton } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: 0,\r\n },\r\n avatar: {\r\n fontSize: 14,\r\n fontWeight: theme.typography.fontWeightBold,\r\n color: theme.palette.white,\r\n },\r\n actions: {\r\n justifyContent: 'flex-end',\r\n },\r\n arrowForwardIcon: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst TopReferrals = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [referrals, setReferrals] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchReferrals = () => {\r\n axios.get('/api/dashboard/top-referrals').then((response) => {\r\n if (mounted) {\r\n setReferrals(response.data.referrals)\r\n }\r\n })\r\n }\r\n\r\n fetchReferrals()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n } title=\"Top Referrals\" />\r\n \r\n \r\n \r\n {referrals.map((referral, i) => (\r\n \r\n \r\n \r\n {referral.initials}\r\n \r\n \r\n \r\n \r\n {referral.value}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n See all\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nTopReferrals.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default TopReferrals\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport moment from 'moment'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n Divider,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n Avatar,\r\n Typography,\r\n Link,\r\n} from '@material-ui/core'\r\n\r\nimport axios from 'utils/axios'\r\nimport getInitials from 'utils/getInitials'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n statsContainer: {\r\n display: 'flex',\r\n },\r\n statsItem: {\r\n padding: theme.spacing(3),\r\n flexGrow: 1,\r\n '&:first-of-type': {\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n },\r\n },\r\n content: {\r\n padding: 0,\r\n },\r\n date: {\r\n whiteSpace: 'nowrap',\r\n },\r\n}))\r\n\r\nconst CustomerActivity = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [customers, setCustomers] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchCustomers = () => {\r\n axios.get('/api/dashboard/customer-activity').then((response) => {\r\n if (mounted) {\r\n setCustomers(response.data.customers)\r\n }\r\n })\r\n }\r\n\r\n fetchCustomers()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Registered\r\n \r\n \r\n 15,245\r\n \r\n
\r\n \r\n
\r\n \r\n Online\r\n \r\n \r\n 357\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {customers.map((customer, i) => (\r\n \r\n \r\n \r\n {getInitials(customer.author.name)}\r\n \r\n \r\n \r\n {customer.author.name}\r\n \r\n }\r\n secondary={\r\n \r\n {customer.description} |{' '}\r\n {customer.type === 'payment' && (\r\n \r\n See invoice\r\n \r\n )}\r\n \r\n }\r\n />\r\n \r\n {moment(customer.created_at).fromNow()}\r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nCustomerActivity.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default CustomerActivity\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TableSortLabel,\r\n Tooltip,\r\n colors,\r\n} from '@material-ui/core'\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward'\r\n\r\nimport axios from 'utils/axios'\r\nimport { Label, GenericMoreButton } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n },\r\n inner: {\r\n minWidth: 700,\r\n },\r\n progressContainer: {\r\n padding: theme.spacing(3),\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n actions: {\r\n justifyContent: 'flex-end',\r\n },\r\n arrowForwardIcon: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst labelColors = {\r\n complete: colors.green[600],\r\n pending: colors.orange[600],\r\n rejected: colors.red[600],\r\n}\r\n\r\nconst LatestOrders = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [orders, setOrders] = useState(null)\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchOrders = () => {\r\n axios.get('/api/dashboard/latest-orders').then((response) => {\r\n if (mounted) {\r\n setOrders(response.data.orders)\r\n }\r\n })\r\n }\r\n\r\n fetchOrders()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n } title=\"Latest Orders\" />\r\n \r\n \r\n \r\n
\r\n {orders && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n \r\n Customer\r\n Items\r\n Total\r\n Status\r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n {orders.map((order) => (\r\n \r\n {order.ref}\r\n \r\n {order.customer.name}\r\n \r\n {order.items}\r\n \r\n {order.currency} {order.value}\r\n \r\n \r\n \r\n {order.status}\r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n See all\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nLatestOrders.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default LatestOrders\r\n","import React from 'react'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport { Page } from 'components'\r\nimport {\r\n Header,\r\n Overview,\r\n FinancialStats,\r\n EarningsSegmentation,\r\n TopReferrals,\r\n MostProfitableProducts,\r\n CustomerActivity,\r\n LatestOrders,\r\n} from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n },\r\n container: {\r\n '& > *': {\r\n height: '100%',\r\n },\r\n },\r\n}))\r\n\r\nconst DashboardAnalytics = () => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DashboardAnalytics\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Typography } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n dates: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n },\r\n startDateButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n endDateButton: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n calendarTodayIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst Header = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n name: 'Shen Zhi',\r\n }\r\n\r\n return (\r\n
\r\n \r\n Home\r\n \r\n \r\n Good Morning, {data.name}\r\n \r\n Here's what's happening\r\n
\r\n )\r\n}\r\n\r\nHeader.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nHeader.defaultProps = {}\r\n\r\nexport default Header\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Avatar,\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n Button,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n TableSortLabel,\r\n Tooltip,\r\n} from '@material-ui/core'\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward'\r\n\r\nimport axios from 'utils/axios'\r\nimport getInitials from 'utils/getInitials'\r\nimport { Label, GenericMoreButton } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n },\r\n inner: {\r\n minWidth: 900,\r\n },\r\n author: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n marginRight: theme.spacing(1),\r\n },\r\n tags: {\r\n '& > * + *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n },\r\n actions: {\r\n justifyContent: 'flex-end',\r\n },\r\n arrowForwardIcon: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst LatestProjects = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [projects, setProjects] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchProjects = () => {\r\n axios.get('/api/dashboard/latest-projects').then((response) => {\r\n if (mounted) {\r\n setProjects(response.data.projects)\r\n }\r\n })\r\n }\r\n\r\n fetchProjects()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n }\r\n title=\"Latest projects\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n Owner\r\n Amount\r\n Tags\r\n Actions\r\n \r\n \r\n \r\n {projects.map((project) => (\r\n \r\n {project.title}\r\n \r\n
\r\n \r\n {getInitials(\r\n project.author.name\r\n )}\r\n \r\n {project.author.name}\r\n
\r\n
\r\n \r\n {project.currency}\r\n {project.price}\r\n \r\n \r\n
\r\n {project.tags.map((tag) => (\r\n \r\n {tag.text}\r\n \r\n ))}\r\n
\r\n
\r\n \r\n \r\n View\r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n See all\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nLatestProjects.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default LatestProjects\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, Typography, Avatar, colors } from '@material-ui/core'\r\nimport FolderOpenIcon from '@material-ui/icons/FolderOpenOutlined'\r\n\r\nimport { Label } from 'components'\r\nimport gradients from 'utils/gradients'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n details: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n label: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n avatar: {\r\n backgroundImage: gradients.blue,\r\n height: 48,\r\n width: 48,\r\n },\r\n}))\r\n\r\nconst NewProjects = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n value: '12',\r\n difference: '-10%',\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n New projects\r\n \r\n
\r\n {data.value}\r\n \r\n {data.difference}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nNewProjects.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default NewProjects\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, Typography, Avatar } from '@material-ui/core'\r\nimport AttachMoneyIcon from '@material-ui/icons/AttachMoney'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n color: theme.palette.white,\r\n backgroundColor: theme.palette.primary.main,\r\n padding: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n details: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n avatar: {\r\n backgroundColor: theme.palette.white,\r\n color: theme.palette.primary.main,\r\n height: 48,\r\n width: 48,\r\n },\r\n}))\r\n\r\nconst RoiPerCustomer = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n value: '25.50',\r\n currency: '$',\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n Roi per customer\r\n \r\n
\r\n \r\n {data.currency}\r\n {data.value}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nRoiPerCustomer.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default RoiPerCustomer\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport moment from 'moment'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n IconButton,\r\n Tooltip,\r\n colors,\r\n} from '@material-ui/core'\r\nimport OpenInNewIcon from '@material-ui/icons/OpenInNew'\r\n\r\nimport { StackAvatars } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n critical: {\r\n '& $indicator': {\r\n borderColor: colors.red[600],\r\n },\r\n },\r\n indicator: {\r\n height: 12,\r\n width: 12,\r\n borderWidth: 4,\r\n borderStyle: 'solid',\r\n borderColor: colors.grey[100],\r\n borderRadius: '50%',\r\n },\r\n viewButton: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n}))\r\n\r\nconst TaskItem = (props) => {\r\n const { task, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n let deadline = 'N/A'\r\n let critical = false\r\n\r\n if (task.deadline) {\r\n const now = moment()\r\n const deadlineMoment = moment(task.deadline)\r\n\r\n if (\r\n deadlineMoment.isAfter(now) &&\r\n deadlineMoment.diff(now, 'day') < 3\r\n ) {\r\n deadline = deadlineMoment.diff(now, 'day') + ' days remaining'\r\n critical = true\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nTaskItem.propTypes = {\r\n className: PropTypes.string,\r\n task: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default TaskItem\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n List,\r\n Button,\r\n Divider,\r\n} from '@material-ui/core'\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward'\r\n\r\nimport axios from 'utils/axios'\r\nimport { GenericMoreButton } from 'components'\r\nimport { TaskItem } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n },\r\n inner: {\r\n minWidth: 400,\r\n },\r\n actions: {\r\n justifyContent: 'flex-end',\r\n },\r\n arrowForwardIcon: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst TeamTasks = (props) => {\r\n const { className, ...rest } = props\r\n const classes = useStyles()\r\n const [tasks, setTasks] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchTasks = () => {\r\n axios.get('/api/tasks').then((response) => {\r\n if (mounted) {\r\n setTasks(response.data.tasks)\r\n }\r\n })\r\n }\r\n\r\n fetchTasks()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n } title=\"Team Tasks\" />\r\n \r\n \r\n \r\n
\r\n \r\n {tasks.map((task, i) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n See all\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nTeamTasks.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default TeamTasks\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, Typography, Avatar, colors } from '@material-ui/core'\r\nimport AttachMoneyIcon from '@material-ui/icons/AttachMoney'\r\n\r\nimport { Label } from 'components'\r\nimport gradients from 'utils/gradients'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n details: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n label: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n avatar: {\r\n backgroundImage: gradients.green,\r\n height: 48,\r\n width: 48,\r\n },\r\n}))\r\n\r\nconst TodaysMoney = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n value: '24,000',\r\n currency: '$',\r\n difference: '+4.5%',\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n Todays money\r\n \r\n
\r\n \r\n {data.currency}\r\n {data.value}\r\n \r\n \r\n {data.difference}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nTodaysMoney.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default TodaysMoney\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, Typography, Avatar, LinearProgress } from '@material-ui/core'\r\nimport DoneIcon from '@material-ui/icons/Done'\r\n\r\nimport gradients from 'utils/gradients'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n content: {\r\n flexGrow: 1,\r\n },\r\n details: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n progress: {\r\n margin: theme.spacing(0, 1),\r\n flexGrow: 1,\r\n },\r\n avatar: {\r\n backgroundImage: gradients.orange,\r\n height: 48,\r\n width: 48,\r\n },\r\n}))\r\n\r\nconst SystemHealth = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n value: 97,\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n System Health\r\n \r\n
\r\n {data.value}%\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nSystemHealth.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default SystemHealth\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { Bar } from 'react-chartjs-2'\r\nimport { makeStyles, useTheme } from '@material-ui/styles'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n position: 'relative',\r\n },\r\n}))\r\n\r\nconst Chart = (props) => {\r\n const { data: dataProp, labels, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n\r\n const data = {\r\n datasets: [\r\n {\r\n label: 'Views',\r\n backgroundColor: 'rgba(255,255,255,0.4)',\r\n data: dataProp,\r\n },\r\n ],\r\n labels,\r\n }\r\n\r\n const options = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: false,\r\n cornerRadius: 20,\r\n legend: {\r\n display: false,\r\n },\r\n layout: {\r\n padding: 0,\r\n },\r\n scales: {\r\n xAxes: [\r\n {\r\n stacked: false,\r\n barThickness: 12,\r\n maxBarThickness: 10,\r\n barPercentage: 0.9,\r\n categoryPercentage: 1,\r\n gridLines: {\r\n display: false,\r\n drawBorder: false,\r\n },\r\n ticks: {\r\n display: false,\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n stacked: true,\r\n gridLines: {\r\n display: false,\r\n drawBorder: false,\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n display: false,\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: 'index',\r\n intersect: false,\r\n caretSize: 10,\r\n yPadding: 20,\r\n xPadding: 20,\r\n borderWidth: 1,\r\n borderColor: theme.palette.divider,\r\n backgroundColor: theme.palette.white,\r\n titleFontColor: theme.palette.text.primary,\r\n bodyFontColor: theme.palette.text.secondary,\r\n footerFontColor: theme.palette.text.secondary,\r\n callbacks: {\r\n legend: () => {},\r\n title: () => {},\r\n label: (tooltipItem) => {\r\n let label = `Views: ${tooltipItem.yLabel}`\r\n\r\n return label\r\n },\r\n },\r\n },\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nChart.propTypes = {\r\n className: PropTypes.string,\r\n data: PropTypes.array.isRequired,\r\n labels: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default Chart\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Button,\r\n Typography,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n} from '@material-ui/core'\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward'\r\n\r\nimport gradients from 'utils/gradients'\r\nimport { Chart } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundImage: gradients.indigo,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n content: {\r\n paddingTop: 0,\r\n },\r\n itemDivider: {\r\n borderBottomColor: 'rgba(255,255,255,0.2)',\r\n },\r\n actions: {\r\n paddingTop: 0,\r\n justifyContent: 'flex-end',\r\n },\r\n arrowForwardIcon: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nfunction getRandomInt(min, max) {\r\n min = Math.ceil(min)\r\n max = Math.floor(max)\r\n\r\n return Math.floor(Math.random() * (max - min + 1)) + min\r\n}\r\n\r\nconst RealTime = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const [data, setData] = useState([\r\n 163,\r\n 166,\r\n 161,\r\n 159,\r\n 99,\r\n 163,\r\n 173,\r\n 166,\r\n 167,\r\n 183,\r\n 176,\r\n 172,\r\n ])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n setInterval(() => {\r\n if (mounted) {\r\n setData((data) => {\r\n const newData = [...data]\r\n\r\n newData.shift()\r\n newData.push(0)\r\n\r\n return newData\r\n })\r\n }\r\n\r\n setTimeout(() => {\r\n if (mounted) {\r\n setData((data) => {\r\n const newData = [...data]\r\n const random = getRandomInt(100, 200)\r\n\r\n newData.pop()\r\n newData.push(random)\r\n\r\n return newData\r\n })\r\n }\r\n }, 500)\r\n }, 2000)\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n const labels = data.map((value, i) => i)\r\n\r\n const pages = [\r\n {\r\n pathname: '/projects',\r\n views: '24',\r\n },\r\n {\r\n pathname: '/chat',\r\n views: '21',\r\n },\r\n {\r\n pathname: '/cart',\r\n views: '15',\r\n },\r\n {\r\n pathname: '/cart/checkout',\r\n views: '8',\r\n },\r\n ]\r\n\r\n return (\r\n \r\n \r\n {data[data.length - 1] === 0\r\n ? data[data.length - 2]\r\n : data[data.length - 1]}\r\n \r\n }\r\n subheader=\"Page views per second\"\r\n subheaderTypographyProps={{ color: 'inherit' }}\r\n title=\"Active users\"\r\n titleTypographyProps={{ color: 'inherit' }}\r\n />\r\n \r\n \r\n \r\n {pages.map((page) => (\r\n \r\n \r\n \r\n {page.views}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n See all\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nRealTime.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default RealTime\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { Line } from 'react-chartjs-2'\r\nimport { makeStyles, useTheme } from '@material-ui/styles'\r\nimport { fade } from '@material-ui/core/styles/colorManipulator'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n position: 'relative',\r\n },\r\n}))\r\n\r\nconst Chart = (props) => {\r\n const { className, data: dataProp, labels, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const theme = useTheme()\r\n\r\n const data = (canvas) => {\r\n const ctx = canvas.getContext('2d')\r\n const gradient = ctx.createLinearGradient(0, 0, 0, 400)\r\n\r\n gradient.addColorStop(0, fade(theme.palette.secondary.main, 0.2))\r\n gradient.addColorStop(0.9, 'rgba(255,255,255,0)')\r\n gradient.addColorStop(1, 'rgba(255,255,255,0)')\r\n\r\n return {\r\n datasets: [\r\n {\r\n data: dataProp,\r\n backgroundColor: gradient,\r\n borderColor: theme.palette.secondary.main,\r\n pointBorderColor: '#FFFFFF',\r\n pointBorderWidth: 3,\r\n pointRadius: 6,\r\n pointBackgroundColor: theme.palette.secondary.main,\r\n },\r\n ],\r\n labels,\r\n }\r\n }\r\n\r\n const options = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: false,\r\n legend: {\r\n display: false,\r\n },\r\n layout: {\r\n padding: 0,\r\n },\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n display: false,\r\n drawBorder: false,\r\n },\r\n ticks: {\r\n padding: 20,\r\n fontColor: theme.palette.text.secondary,\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n borderDash: [2],\r\n borderDashOffset: [2],\r\n color: theme.palette.divider,\r\n drawBorder: false,\r\n zeroLineBorderDash: [2],\r\n zeroLineBorderDashOffset: [2],\r\n zeroLineColor: theme.palette.divider,\r\n },\r\n ticks: {\r\n padding: 20,\r\n fontColor: theme.palette.text.secondary,\r\n beginAtZero: true,\r\n min: 0,\r\n maxTicksLimit: 7,\r\n callback: (value) => {\r\n return value > 0 ? value + 'K' : value\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: 'index',\r\n intersect: false,\r\n caretSize: 10,\r\n yPadding: 20,\r\n xPadding: 20,\r\n borderWidth: 1,\r\n borderColor: theme.palette.divider,\r\n backgroundColor: theme.palette.white,\r\n titleFontColor: theme.palette.text.primary,\r\n bodyFontColor: theme.palette.text.secondary,\r\n footerFontColor: theme.palette.text.secondary,\r\n callbacks: {\r\n title: () => {},\r\n label: (tooltipItem) => {\r\n let label = `Income: ${tooltipItem.yLabel}`\r\n\r\n if (tooltipItem.yLabel > 0) {\r\n label += 'K'\r\n }\r\n\r\n return label\r\n },\r\n },\r\n },\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nChart.propTypes = {\r\n className: PropTypes.string,\r\n data: PropTypes.array.isRequired,\r\n labels: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default Chart\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, CardHeader, CardContent, Divider } from '@material-ui/core'\r\n\r\nimport { GenericMoreButton } from 'components'\r\nimport { Chart } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {},\r\n buttons: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n '& > *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n },\r\n inner: {\r\n height: 375,\r\n minWidth: 500,\r\n },\r\n chart: {\r\n height: '100%',\r\n },\r\n}))\r\n\r\nconst PerformanceOverTime = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const data = {\r\n thisWeek: {\r\n data: [],\r\n labels: [],\r\n },\r\n thisMonth: {\r\n data: [],\r\n labels: [],\r\n },\r\n thisYear: {\r\n data: [10, 5, 11, 20, 13, 28, 18, 4, 13, 12, 13, 5],\r\n labels: [\r\n 'Jan',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'May',\r\n 'Jun',\r\n 'Jul',\r\n 'Aug',\r\n 'Sep',\r\n 'Oct',\r\n 'Nov',\r\n 'Dec',\r\n ],\r\n },\r\n }\r\n\r\n return (\r\n \r\n }\r\n title=\"Performance Over Time\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nPerformanceOverTime.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default PerformanceOverTime\r\n","import React from 'react'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport { Page } from 'components'\r\nimport {\r\n Header,\r\n LatestProjects,\r\n NewProjects,\r\n RealTime,\r\n RoiPerCustomer,\r\n TeamTasks,\r\n TodaysMoney,\r\n SystemHealth,\r\n PerformanceOverTime,\r\n} from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n },\r\n container: {\r\n marginTop: theme.spacing(3),\r\n },\r\n}))\r\n\r\nconst DashboardDefault = () => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DashboardDefault\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Typography, Grid, Button, Hidden } from '@material-ui/core';\r\nimport BarChartIcon from '@material-ui/icons/BarChart';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsummaryButton: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\tbarChartIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\timage: {\r\n\t\twidth: '100%',\r\n\t\tmaxHeight: 400,\r\n\t},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst session = useSelector((state) => state.session);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tHome\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tGood Morning,\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t{session.user.first_name}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tHere’s what’s happening with your projects today\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tView summary\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Header;\r\n","import React, { useState, useEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, Typography, Grid, colors } from '@material-ui/core'\r\n\r\nimport axios from 'utils/axios'\r\nimport { Label } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n },\r\n item: {\r\n padding: theme.spacing(3),\r\n textAlign: 'center',\r\n [theme.breakpoints.up('md')]: {\r\n '&:not(:last-of-type)': {\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n },\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n '&:not(:last-of-type)': {\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n },\r\n },\r\n },\r\n titleWrapper: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n label: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n overline: {\r\n marginTop: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst Statistics = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [statistics, setStatistics] = useState(null)\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchStatistics = () => {\r\n axios.get('/api/account/statistics').then((response) => {\r\n if (mounted) {\r\n setStatistics(response.data.statistics)\r\n }\r\n })\r\n }\r\n\r\n fetchStatistics()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n if (!statistics) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n ${statistics.payout}\r\n \r\n Next payout\r\n \r\n \r\n \r\n ${statistics.projects}\r\n \r\n Total products\r\n \r\n \r\n \r\n {statistics.visitors}\r\n \r\n Today's Visitors\r\n \r\n \r\n \r\n
\r\n \r\n {statistics.watching}\r\n \r\n \r\n Live\r\n \r\n
\r\n \r\n Watching now\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nStatistics.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Statistics\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport uuid from 'uuid/v1'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Card,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n Typography,\r\n Tooltip,\r\n} from '@material-ui/core'\r\nimport SendIcon from '@material-ui/icons/Send'\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForwardOutlined'\r\nimport PaymentIcon from '@material-ui/icons/PaymentOutlined'\r\nimport MailIcon from '@material-ui/icons/MailOutlineOutlined'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n value: {\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n type: {\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n}))\r\n\r\nconst Notifications = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const notifications = [\r\n {\r\n id: uuid(),\r\n value: 6,\r\n type: 'invite',\r\n message: 'to send service quotes',\r\n },\r\n {\r\n id: uuid(),\r\n value: 2,\r\n type: 'message',\r\n message: 'from clients',\r\n },\r\n {\r\n id: uuid(),\r\n value: 1,\r\n type: 'payout',\r\n message: 'that needs your confirmation',\r\n },\r\n ]\r\n\r\n const icons = {\r\n invite: ,\r\n message: ,\r\n payout: ,\r\n }\r\n\r\n return (\r\n \r\n \r\n {notifications.map((notification, i) => (\r\n \r\n {icons[notification.type]}\r\n \r\n \r\n \r\n {notification.value}\r\n {' '}\r\n \r\n {notification.type}s\r\n {' '}\r\n {notification.message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nNotifications.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Notifications\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Typography, Button } from '@material-ui/core'\r\nimport KeyboardArrowRightIcon from '@material-ui/icons/KeyboardArrowRight'\r\n\r\nimport axios from 'utils/axios'\r\nimport { ProjectCard } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n header: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n marginBottom: theme.spacing(2),\r\n },\r\n title: {\r\n position: 'relative',\r\n '&:before': {\r\n position: 'absolute',\r\n bottom: -8,\r\n left: 0,\r\n content: '\" \"',\r\n height: 3,\r\n width: 48,\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n arrowIcon: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst Projects = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [projects, setProjects] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchProjects = () => {\r\n axios.get('/api/account/projects').then((response) => {\r\n if (mounted) {\r\n setProjects(response.data.projects)\r\n }\r\n })\r\n }\r\n\r\n fetchProjects()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n
\r\n
\r\n \r\n Active Projects\r\n \r\n \r\n
\r\n {projects.map((project) => (\r\n \r\n ))}\r\n
\r\n )\r\n}\r\n\r\nProjects.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Projects\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React, { useState, useEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport moment from 'moment'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Button,\r\n Card,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Radio,\r\n Tooltip,\r\n Typography,\r\n colors,\r\n} from '@material-ui/core'\r\nimport AddIcon from '@material-ui/icons/Add'\r\nimport ArchiveIcon from '@material-ui/icons/ArchiveOutlined'\r\n\r\nimport axios from 'utils/axios'\r\nimport { Label } from 'components'\r\n\r\nconst getLabel = (todo) => {\r\n if (todo.done) {\r\n return null\r\n }\r\n\r\n if (moment(todo.deadline).isBefore(moment(), 'day')) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (moment(todo.deadline).isSame(moment(), 'day')) {\r\n return \r\n }\r\n\r\n return \r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n },\r\n addIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n done: {\r\n textDecoration: 'line-through',\r\n color: theme.palette.text.secondary,\r\n },\r\n}))\r\n\r\nconst Todos = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [todos, setTodos] = useState([])\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchTodos = () => {\r\n axios.get('/api/account/todos').then((response) => {\r\n if (mounted) {\r\n setTodos(response.data.todos)\r\n }\r\n })\r\n }\r\n\r\n fetchTodos()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n const handleChange = (event, todo) => {\r\n event.persist()\r\n\r\n setTodos((todos) =>\r\n todos.map((t) => {\r\n if (t.id === todo.id) {\r\n return { ...todo, done: !todo.done }\r\n }\r\n\r\n return t\r\n })\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Add\r\n \r\n }\r\n title=\"My todos\"\r\n />\r\n \r\n \r\n \r\n {todos.map((todo, i) => (\r\n \r\n \r\n \r\n handleChange(event, todo)\r\n }\r\n />\r\n \r\n \r\n \r\n {todo.title}\r\n \r\n \r\n {getLabel(todo)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nTodos.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Todos\r\n","import React from 'react'\r\nimport { makeStyles } from '@material-ui/styles'\r\n\r\nimport { Page } from 'components'\r\nimport {\r\n Header,\r\n Statistics,\r\n Notifications,\r\n Projects,\r\n Todos,\r\n} from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: theme.breakpoints.values.lg,\r\n maxWidth: '100%',\r\n margin: '0 auto',\r\n padding: theme.spacing(3),\r\n },\r\n statistics: {\r\n marginTop: theme.spacing(3),\r\n },\r\n notifications: {\r\n marginTop: theme.spacing(6),\r\n },\r\n projects: {\r\n marginTop: theme.spacing(6),\r\n },\r\n todos: {\r\n marginTop: theme.spacing(6),\r\n },\r\n}))\r\n\r\nconst Overview = () => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Overview\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Typography, Grid } from '@material-ui/core';\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 PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport uuid from 'uuid/v1'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Typography,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n} from '@material-ui/core'\r\nimport ContactSupportIcon from '@material-ui/icons/ContactSupportOutlined'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.white,\r\n },\r\n inner: {\r\n padding: theme.spacing(6, 3),\r\n width: theme.breakpoints.values.lg,\r\n maxWidth: '100%',\r\n margin: '0 auto',\r\n },\r\n content: {\r\n marginTop: theme.spacing(6),\r\n },\r\n}))\r\n\r\nconst FAQ = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const faqs = [\r\n {\r\n title: 'What do we use for styling our components?',\r\n description:\r\n \"We use Material-ui's hooks api as we think it’s the best way of avoiding clutter.\",\r\n },\r\n {\r\n title:\r\n 'Are the design files (sketch, figma) included in the Standard Package?',\r\n description:\r\n 'No, we offer the design source file only to Standard Plus Sketch & Figma and Extended Package.',\r\n },\r\n {\r\n title: 'Are you providing support for setting up my project?',\r\n description:\r\n 'Yes, we offer email support for all our customers & even skype meetings for our extended license customers.',\r\n },\r\n ]\r\n\r\n return (\r\n
\r\n
\r\n \r\n FAQ\r\n \r\n
\r\n \r\n {faqs.map((faq) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nFAQ.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default FAQ\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Typography, Grid, Button } from '@material-ui/core';\r\nimport {\r\n\tenqueueSnackbar as enqueueSnackbarAction,\r\n\tcloseSnackbar as closeSnackbarAction,\r\n} from 'actions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\theader: {\r\n\t\twidth: theme.breakpoints.values.md,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: '80px 24px',\r\n\t\t[theme.breakpoints.up('md')]: {\r\n\t\t\tpadding: '160px 24px',\r\n\t\t},\r\n\t},\r\n\tbuttons: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n\tmediaContainer: {\r\n\t\tmargin: '0 auto',\r\n\t\tmaxWidth: 1600,\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\toverflow: 'hidden',\r\n\t},\r\n\tmedia: {\r\n\t\twidth: '100%',\r\n\t},\r\n\tstats: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t\tpadding: theme.spacing(1),\r\n\t},\r\n\tstatsInner: {\r\n\t\twidth: theme.breakpoints.values.md,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst enqueueSnackbar = (...args) => dispatch(enqueueSnackbarAction(...args));\r\n\tconst closeSnackbar = (...args) => dispatch(closeSnackbarAction(...args));\r\n\r\n\tconst handleClick = () => {\r\n\t\t// NOTE:\r\n\t\t// if you want to be able to dispatch a `closeSnackbar` action later on,\r\n\t\t// you SHOULD pass your own `key` in the options. `key` can be any sequence\r\n\t\t// of number or characters, but it has to be unique for a given snackbar.\r\n\t\tenqueueSnackbar({\r\n\t\t\tmessage: 'Querias comprar mas não compras.',\r\n\t\t\toptions: {\r\n\t\t\t\tkey: new Date().getTime() + Math.random(),\r\n\t\t\t\tvariant: 'success',\r\n\t\t\t\taction: key => (\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tDevias React Material Kit - PRO\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tA professional kit that comes with ready-to-use Material-UI©\r\n\t\t\t\t\tcomponents developed with one common goal in mind, help you\r\n\t\t\t\t\tbuild faster & beautiful applications. Each component is\r\n\t\t\t\t\tfully customizable, responsive and easy to integrate.\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPurchase Devias Kit\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t30+\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tDemo Pages\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tUX\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tComplete Flows\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t300+\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tComponents\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\"React\"\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tReact Hooks API\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Typography, Grid } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.white,\r\n },\r\n inner: {\r\n padding: theme.spacing(6, 3),\r\n width: theme.breakpoints.values.lg,\r\n maxWidth: '100%',\r\n margin: '0 auto',\r\n },\r\n media: {\r\n '& img': {\r\n width: '100%',\r\n height: 'auto',\r\n },\r\n },\r\n}))\r\n\r\nconst PluginsSupport = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Support for Plugins\r\n \r\n \r\n The kit provides support for multiple third-party\r\n plugins right out of the box like Chart.js,\r\n Dropzone.js, Kanban Plugin and many more.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nPluginsSupport.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default PluginsSupport\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Typography, Grid } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n },\r\n inner: {\r\n padding: theme.spacing(6, 3),\r\n width: theme.breakpoints.values.lg,\r\n maxWidth: '100%',\r\n margin: '0 auto',\r\n },\r\n media: {\r\n '& img': {\r\n width: '100%',\r\n height: 'auto',\r\n },\r\n },\r\n}))\r\n\r\nconst SourceFiles = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Source Files\r\n \r\n \r\n We've included the source Sketch & Figma files so\r\n you can get creative! We designed all components\r\n with Symbols in Sketch which allows you to change\r\n the main colors as you like.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nSourceFiles.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default SourceFiles\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Typography, Grid } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n },\r\n inner: {\r\n padding: theme.spacing(6, 3),\r\n width: theme.breakpoints.values.lg,\r\n maxWidth: '100%',\r\n margin: '0 auto',\r\n },\r\n media: {\r\n '& img': {\r\n width: '100%',\r\n height: 'auto',\r\n },\r\n },\r\n}))\r\n\r\nconst UserFlows = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Complete User Flows\r\n \r\n \r\n Not just a set of tools, the package includes the\r\n most common use cases of user flows like User\r\n Management, Second Level Layout, and many more.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nUserFlows.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default UserFlows\r\n","import React from 'react'\r\nimport { makeStyles } from '@material-ui/styles'\r\n\r\nimport { Page } from 'components'\r\nimport {\r\n Header,\r\n FAQ,\r\n PluginsSupport,\r\n SourceFiles,\r\n UserFlows,\r\n} from './components'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {},\r\n}))\r\n\r\nconst Presentation = () => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Presentation\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Card, Typography, Avatar } from '@material-ui/core'\r\n\r\nimport { Label } from 'components'\r\nimport gradients from 'utils/gradients'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n details: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n label: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n avatar: {\r\n backgroundImage: gradients.blue,\r\n height: 48,\r\n width: 48,\r\n },\r\n}))\r\n\r\nconst TodaysMoney = (props) => {\r\n const { className, title, text, icon, label, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n
\r\n \r\n {title}\r\n \r\n
\r\n \r\n {text}\r\n \r\n {label && \r\n {label.text}\r\n }\r\n\r\n
\r\n
\r\n \r\n {icon}\r\n \r\n
\r\n )\r\n}\r\n\r\nTodaysMoney.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default TodaysMoney","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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@material-ui/core';\r\n\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport DeleteIcon from '@material-ui/icons/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","/* 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 '@material-ui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@material-ui/core';\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 useHasChanged = (val) => {\r\n\t\tconst prevVal = usePrevious(val);\r\n\t\treturn prevVal !== val;\r\n\t};\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 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\tevent.persist();\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};\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\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 '@material-ui/styles';\r\nimport { colors } from '@material-ui/core';\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 '@material-ui/styles';\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport BusinessCenterIcon from '@material-ui/icons/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@material-ui/icons/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 '@material-ui/styles'\r\nimport {\r\n Avatar,\r\n Button,\r\n Card,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n Grid,\r\n Typography,\r\n} from '@material-ui/core'\r\n\r\nimport getInitials from 'utils/getInitials'\r\nimport { Label } from 'components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n header: {\r\n paddingBottom: 0,\r\n },\r\n content: {\r\n padding: 0,\r\n padding: 10,\r\n '&:last-child': {\r\n paddingBottom: 0,\r\n },\r\n },\r\n description: {\r\n padding: theme.spacing(2, 3, 1, 3),\r\n },\r\n tags: {\r\n padding: theme.spacing(0, 3, 1, 3),\r\n '& > * + *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n },\r\n detailsButton: {\r\n color: theme.palette.primary.main\r\n },\r\n deleteButton: {\r\n color: theme.palette.error.main,\r\n },\r\n details: {\r\n padding: theme.spacing(1, 3),\r\n },\r\n avatar: {\r\n width: theme.spacing(15),\r\n height: theme.spacing(15),\r\n fontSize: theme.spacing(7)\r\n },\r\n}))\r\n\r\nconst OperatorCard = (props) => {\r\n const { operator, deleteOperator, navigateDetails, className, ...rest } = props\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {getInitials(operator.name)}\r\n \r\n }\r\n className={classes.header}\r\n disableTypography\r\n title={\r\n \r\n {operator.name}\r\n \r\n }\r\n />\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n navigateDetails(operator.id)}\r\n className={classes.detailsButton}\r\n size=\"small\">\r\n Details\r\n \r\n \r\n \r\n deleteOperator(operator)}>\r\n Delete\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nOperatorCard.propTypes = {\r\n className: PropTypes.string,\r\n operator: PropTypes.object.isRequired,\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 '@material-ui/styles'\r\nimport {\r\n Grid,\r\n} from '@material-ui/core'\r\n\r\nimport OperatorCard from '../OperatorCard/OperatorCard.js'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: { marginTop: theme.spacing(3) },\r\n header: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n flexWrap: 'wrap',\r\n marginBottom: theme.spacing(2),\r\n },\r\n title: {\r\n position: 'relative',\r\n '&:after': {\r\n position: 'absolute',\r\n bottom: -8,\r\n left: 0,\r\n content: '\" \"',\r\n height: 3,\r\n width: 48,\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n actions: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n gridList: {\r\n overflowY: 'scroll',\r\n maxHeight: '75vh'\r\n }\r\n}))\r\n\r\nconst Projects = (props) => {\r\n const { className, operators, deleteOperator, navigateDetails, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n return (\r\n
\r\n \r\n {operators.map((operator) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n )\r\n}\r\n\r\nProjects.propTypes = {\r\n className: PropTypes.string,\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 '@material-ui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@material-ui/core'\r\nimport { SetFormState } from '../../../../../../actions/OperatorsActions';\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js'\r\n\r\nimport useRouter from 'utils/useRouter'\r\n\r\nconst schema = {\r\n name: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n },\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n fields: {\r\n margin: theme.spacing(-1),\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n '& > *': {\r\n flexGrow: 1,\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n submitButton: {\r\n marginTop: theme.spacing(2),\r\n width: '100%',\r\n },\r\n}))\r\n\r\nconst AddOperatorForm = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const router = useRouter()\r\n const dispatch = useDispatch();\r\n const setFormState = formState => dispatch(SetFormState(formState))\r\n const formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema)\r\n\r\n setFormState({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n })\r\n }, [formState.values])\r\n\r\n const handleChange = (event) => {\r\n event.persist()\r\n setFormState({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === 'checkbox'\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n })\r\n }\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}\r\n\r\nAddOperatorForm.propTypes = {\r\n className: 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 '@material-ui/styles'\r\nimport {\r\n colors,\r\n} from '@material-ui/core'\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 root: {\r\n width: 960,\r\n },\r\n header: {\r\n padding: theme.spacing(3),\r\n maxWidth: 720,\r\n margin: '0 auto',\r\n },\r\n content: {\r\n padding: theme.spacing(0, 2),\r\n maxWidth: 720,\r\n margin: '0 auto',\r\n },\r\n helperText: {\r\n textAlign: 'right',\r\n marginRight: 0,\r\n },\r\n author: {\r\n margin: theme.spacing(4, 0),\r\n display: 'flex',\r\n },\r\n avatar: {\r\n marginRight: theme.spacing(2),\r\n },\r\n actions: {\r\n backgroundColor: colors.grey[100],\r\n padding: theme.spacing(2),\r\n display: 'flex',\r\n alignContent: 'right',\r\n },\r\n applyButton: {\r\n color: theme.palette.white,\r\n backgroundColor: colors.green[600],\r\n '&:hover': {\r\n backgroundColor: colors.green[900],\r\n },\r\n },\r\n}))\r\n\r\nconst AddOperatorDialog = (props) => {\r\n const { author, open, onClose, onApply, className, ...rest } = props;\r\n const dispatch = useDispatch();\r\n const formState = useSelector((state) => state.operatorsReducer.formState);\r\n const title = 'Add operator';\r\n\r\n const _onConfirmClick = () => {\r\n if (formState.isValid) {\r\n dispatch(CreateOperator(formState.values));\r\n }\r\n }\r\n\r\n const getData = useCallback(() => {\r\n }, [])\r\n\r\n useEffect(() => {\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nAddOperatorDialog.propTypes = {\r\n className: PropTypes.string,\r\n onApply: PropTypes.func,\r\n onClose: PropTypes.func,\r\n open: 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 '@material-ui/styles'\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport AddIcon from '@material-ui/icons/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 root: {\r\n padding: theme.spacing(3),\r\n },\r\n container: {\r\n marginTop: theme.spacing(3),\r\n },\r\n}))\r\n\r\nconst Operators = () => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const { history } = useRouter();\r\n const user = useSelector((state) => state.session.user);\r\n const openAddOperatorDialog = useSelector((state) => state.operatorsReducer.openAddOperatorDialog);\r\n const operators = useSelector((state) => state.operatorsReducer.operators);\r\n\r\n const _addOperatorClose = () => {\r\n dispatch(ToggleAddOperatorDialog(false))\r\n }\r\n\r\n const _deleteOperator = (operator) => {\r\n dispatch(DeleteOperator(operator))\r\n }\r\n\r\n const _addOperator = () => {\r\n dispatch(ToggleAddOperatorDialog(true));\r\n }\r\n\r\n const _renderActions = () => {\r\n return ();\r\n }\r\n\r\n const _navigateDetails = (operatorId) => {\r\n dispatch(NavigateDetails(operatorId));\r\n history.push('/management/operators/details')\r\n }\r\n\r\n const getData = useCallback(() => {\r\n dispatch(GetOperators());\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [getData]);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {openAddOperatorDialog && }\r\n \r\n )\r\n}\r\n\r\nexport default Operators;","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 '@material-ui/styles'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Grid,\r\n Divider,\r\n Switch,\r\n TextField,\r\n Typography,\r\n colors,\r\n} from '@material-ui/core'\r\n\r\nimport { SetFormState, UpdateOperator } from '../../../../../../actions/OperatorsActions'\r\n\r\nconst schema = {\r\n name: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n },\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n saveButton: {\r\n color: theme.palette.white,\r\n backgroundColor: colors.green[600],\r\n '&:hover': {\r\n backgroundColor: colors.green[900],\r\n },\r\n },\r\n}))\r\n\r\nconst Details = (props) => {\r\n const { operator, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const dispatch = useDispatch();\r\n const setFormState = formState => dispatch(SetFormState(formState))\r\n const formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema)\r\n\r\n setFormState({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n })\r\n }, [formState.values])\r\n\r\n const handleChange = (event) => {\r\n event.persist()\r\n setFormState({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === 'checkbox'\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n })\r\n }\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false\r\n\r\n const save = () => {\r\n dispatch(UpdateOperator(formState.values));\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Save Changes\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nDetails.propTypes = {\r\n className: PropTypes.string,\r\n operator: 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 '@material-ui/styles'\r\nimport {\r\n Card,\r\n CardContent,\r\n CardActions,\r\n Avatar,\r\n Typography,\r\n Button,\r\n colors\r\n} from '@material-ui/core';\r\nimport getInitials from 'utils/getInitials';\r\nimport { UpdateImage } from '../../../../../../actions/OperatorsActions.js';\r\n\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n textAlgin: 'center',\r\n },\r\n name: {\r\n marginTop: theme.spacing(1),\r\n },\r\n avatar: {\r\n height: 120,\r\n width: 120,\r\n },\r\n removeButton: {\r\n width: '100%',\r\n color: theme.palette.error.main\r\n },\r\n addButton: {\r\n width: '100%',\r\n color: theme.palette.white,\r\n backgroundColor: colors.green[600],\r\n '&:hover': {\r\n backgroundColor: colors.green[900],\r\n },\r\n },\r\n}))\r\n\r\nconst Picture = (props) => {\r\n const { operator, className, ...rest } = props\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const inputFile = useRef(null);\r\n\r\n const _removeImage = () => {\r\n const updateOperator = { ...operator };\r\n updateOperator.avatar = null;\r\n dispatch(UpdateImage(updateOperator))\r\n }\r\n\r\n const _addImage = () => {\r\n inputFile.current.click();\r\n }\r\n\r\n const _onChangeInput = (event) => {\r\n if (event.target.files && event.target.files.length > 0) {\r\n const file = event.target.files[0];\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", () => {\r\n const updateOperator = { ...operator };\r\n updateOperator.avatar = reader.result;\r\n dispatch(UpdateImage(updateOperator))\r\n }\r\n );\r\n reader.readAsDataURL(event.target.files[0]);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {getInitials(operator.name)}\r\n \r\n \r\n \r\n {operator.avatar === null ? (\r\n ) : (\r\n \r\n )}\r\n \r\n { inputFile.current = ref; }} onChange={_onChangeInput} style={{ display: 'none' }} />\r\n \r\n )\r\n}\r\n\r\nPicture.propTypes = {\r\n className: PropTypes.string,\r\n operator: 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 '@material-ui/styles'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport { Picture, Details } from './components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n deliverables: {\r\n marginTop: theme.spacing(3),\r\n },\r\n members: {\r\n marginTop: theme.spacing(3),\r\n },\r\n}))\r\n\r\nconst Overview = (props) => {\r\n const { operator, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nOverview.propTypes = {\r\n className: PropTypes.string,\r\n operator: 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 '@material-ui/styles'\r\nimport {\r\n ListItemIcon,\r\n ListItemText,\r\n Tooltip,\r\n IconButton,\r\n Menu,\r\n MenuItem,\r\n} from '@material-ui/core'\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport MoreIcon from '@material-ui/icons/MoreVert'\r\n\r\nimport { ToggleAddProjectDialog } from '../../../../../../../../actions/OperatorsActions.js'\r\n\r\nconst useStyles = makeStyles(() => ({}))\r\n\r\nconst ActionsButton = (props) => {\r\n const classes = useStyles()\r\n const moreRef = useRef(null)\r\n const [openMenu, setOpenMenu] = useState(false)\r\n const dispatch = useDispatch();\r\n const handleMenuOpen = () => {\r\n setOpenMenu(true)\r\n }\r\n\r\n const handleMenuClose = () => {\r\n setOpenMenu(false)\r\n }\r\n\r\n const _add = () => {\r\n dispatch(ToggleAddProjectDialog(true));\r\n setOpenMenu(false);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nActionsButton.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default memo(ActionsButton)","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 '@material-ui/styles'\r\nimport {\r\n colors,\r\n IconButton,\r\n Tooltip,\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n Divider\r\n} from '@material-ui/core'\r\n\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport DeleteIcon from '@material-ui/icons/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 root: {},\r\n content: {\r\n padding: 10,\r\n },\r\n inner: {\r\n minWidth: 700,\r\n },\r\n nameCell: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n height: 42,\r\n width: 42,\r\n marginRight: theme.spacing(1),\r\n },\r\n actions: {\r\n padding: theme.spacing(1),\r\n justifyContent: 'flex-end',\r\n },\r\n primaryButton: {\r\n color: theme.palette.primary.main\r\n },\r\n errorButton: {\r\n color: theme.palette.error.main\r\n }\r\n}))\r\n\r\nconst ProjectsDataTable = (props) => {\r\n const { className, data, operatorId, ...rest } = props\r\n const dispatch = useDispatch();\r\n const classes = useStyles();\r\n\r\n const _getTableColumns = () => (\r\n [\r\n {\r\n name: 'id',\r\n label: 'Id',\r\n options: {\r\n display: false,\r\n filter: false,\r\n viewColumns: false,\r\n filterType: 'textField',\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Name',\r\n options: {\r\n display: true,\r\n filterType: 'textField',\r\n }\r\n },\r\n {\r\n name: 'users',\r\n label: 'Users',\r\n options: {\r\n display: true,\r\n filterType: 'textField',\r\n }\r\n },\r\n {\r\n name: 'action',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n viewColumns: false,\r\n empty: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return _renderActions(tableMeta)\r\n }\r\n }\r\n },\r\n ]\r\n );\r\n\r\n const _renderActions = (tableMeta) => {\r\n const { rowData } = tableMeta;\r\n return (\r\n \r\n _deleteProject(rowData[0])}>\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const _deleteProject = (projectId) => {\r\n dispatch(DeleteProject(projectId, operatorId));\r\n }\r\n\r\n const _getTableOptions = () => {\r\n return {\r\n filterType: 'dropdown',\r\n selectableRows: false,\r\n expandableRows: false, // Try Adding This\r\n };\r\n }\r\n\r\n return (\r\n
\r\n \r\n }\r\n title=\"All projects\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nProjectsDataTable.propTypes = {\r\n className: PropTypes.string,\r\n users: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default ProjectsDataTable;","/* 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 '@material-ui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@material-ui/core'\r\nimport { SetFormState } from '../../../../../../../../actions/OperatorsActions';\r\n\r\nimport useRouter from 'utils/useRouter'\r\n\r\nconst schema = {\r\n name: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n },\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n fields: {\r\n margin: theme.spacing(-1),\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n '& > *': {\r\n flexGrow: 1,\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n submitButton: {\r\n marginTop: theme.spacing(2),\r\n width: '100%',\r\n },\r\n}))\r\n\r\nconst AddProjectForm = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const router = useRouter()\r\n const dispatch = useDispatch();\r\n const setFormState = formState => dispatch(SetFormState(formState))\r\n const formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema)\r\n\r\n setFormState({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n })\r\n }, [formState.values])\r\n\r\n const handleChange = (event) => {\r\n event.persist()\r\n setFormState({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === 'checkbox'\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n })\r\n }\r\n\r\n const hasError = (field) =>\r\n formState.touched[field] && formState.errors[field] ? true : false\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}\r\n\r\nAddProjectForm.propTypes = {\r\n className: 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 '@material-ui/styles'\r\nimport {\r\n colors,\r\n} from '@material-ui/core'\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 root: {\r\n width: 960,\r\n },\r\n header: {\r\n padding: theme.spacing(3),\r\n maxWidth: 720,\r\n margin: '0 auto',\r\n },\r\n content: {\r\n padding: theme.spacing(0, 2),\r\n maxWidth: 720,\r\n margin: '0 auto',\r\n },\r\n helperText: {\r\n textAlign: 'right',\r\n marginRight: 0,\r\n },\r\n author: {\r\n margin: theme.spacing(4, 0),\r\n display: 'flex',\r\n },\r\n avatar: {\r\n marginRight: theme.spacing(2),\r\n },\r\n actions: {\r\n backgroundColor: colors.grey[100],\r\n padding: theme.spacing(2),\r\n display: 'flex',\r\n alignContent: 'right',\r\n },\r\n applyButton: {\r\n color: theme.palette.white,\r\n backgroundColor: colors.green[600],\r\n '&:hover': {\r\n backgroundColor: colors.green[900],\r\n },\r\n },\r\n}))\r\n\r\nconst AddProjectDialog = (props) => {\r\n const { operatorId, open, onClose, onApply, className, ...rest } = props;\r\n const dispatch = useDispatch();\r\n const formState = useSelector((state) => state.operatorsReducer.formState);\r\n const title = 'Add project';\r\n const _onConfirmClick = () => {\r\n if (formState.isValid) {\r\n dispatch(CreateProject({ name: formState.values.name, operatorId }));\r\n }\r\n }\r\n\r\n const getData = useCallback(() => {\r\n }, [])\r\n\r\n useEffect(() => {\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nAddProjectDialog.propTypes = {\r\n className: PropTypes.string,\r\n onApply: PropTypes.func,\r\n onClose: PropTypes.func,\r\n open: PropTypes.bool.isRequired,\r\n operatorId: 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 '@material-ui/styles'\r\nimport { Grid } from '@material-ui/core'\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 root: {},\r\n deliverables: {\r\n marginTop: theme.spacing(3),\r\n },\r\n members: {\r\n marginTop: theme.spacing(3),\r\n },\r\n}))\r\n\r\nconst Projects = (props) => {\r\n const { operator, className, ...rest } = props\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const openAddProjectDialog = useSelector((state) => state.operatorsReducer.openAddProjectDialog);\r\n\r\n const _addProjectClose = () => {\r\n dispatch(ToggleAddProjectDialog(false))\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {openAddProjectDialog && }\r\n \r\n )\r\n}\r\n\r\nProjects.propTypes = {\r\n className: PropTypes.string,\r\n Projects: PropTypes.array.isRequired,\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 '@material-ui/styles'\r\n\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n content: {\r\n padding: 0,\r\n },\r\n inner: {\r\n minWidth: 700,\r\n },\r\n nameCell: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n height: 42,\r\n width: 42,\r\n marginRight: theme.spacing(1),\r\n },\r\n actions: {\r\n padding: theme.spacing(1),\r\n justifyContent: 'flex-end',\r\n },\r\n primaryButton: {\r\n color: theme.palette.primary.main\r\n },\r\n errorButton: {\r\n color: theme.palette.error.main\r\n }\r\n}))\r\n\r\nconst UsersDataTable = (props) => {\r\n const { className, data, ...rest } = props\r\n const classes = useStyles();\r\n\r\n const _getTableColumns = () => (\r\n [\r\n {\r\n name: 'id',\r\n label: 'Id',\r\n options: {\r\n display: false,\r\n filter: false,\r\n viewColumns: false,\r\n filterType: 'textField',\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Name',\r\n options: {\r\n display: true,\r\n filterType: 'textField',\r\n }\r\n }\r\n ]\r\n );\r\n\r\n const _getTableOptions = () => {\r\n return {\r\n filterType: 'dropdown',\r\n selectableRows: false,\r\n expandableRows: false, // Try Adding This\r\n };\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nUsersDataTable.propTypes = {\r\n className: PropTypes.string,\r\n data: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default UsersDataTable;","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport UsersDataTable from './components/UsersDataTable/UsersDataTable'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n deliverables: {\r\n marginTop: theme.spacing(3),\r\n },\r\n members: {\r\n marginTop: theme.spacing(3),\r\n },\r\n}))\r\n\r\nconst Users = (props) => {\r\n const { users, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nUsers.propTypes = {\r\n className: PropTypes.string,\r\n users: 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 '@material-ui/styles'\r\nimport { Tabs, Tab, Divider, colors } from '@material-ui/core'\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 root: {\r\n maxWidth: '100%',\r\n margin: '0 auto',\r\n padding: theme.spacing(3),\r\n },\r\n tabs: {\r\n marginTop: theme.spacing(3),\r\n },\r\n divider: {\r\n backgroundColor: colors.grey[300],\r\n },\r\n alert: {\r\n marginTop: theme.spacing(3),\r\n },\r\n content: {\r\n marginTop: theme.spacing(3),\r\n },\r\n}))\r\n\r\nconst OperatorDetails = () => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [tab, setTab] = useState('overview');\r\n\r\n const operatorId = useSelector((state) => state.operatorsReducer.detailsOperatorId)\r\n const operator = useSelector((state) => state.operatorsReducer.operator)\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchoperator = () => {\r\n dispatch(GetOperator(operatorId));\r\n }\r\n\r\n fetchoperator()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [operatorId])\r\n\r\n\r\n const handleTabsChange = (event, value) => {\r\n setTab(value);\r\n }\r\n\r\n const tabs = [\r\n { value: 'overview', label: 'Overview' },\r\n { value: 'projects', label: 'Projects' },\r\n { value: 'users', label: 'Users' },\r\n ]\r\n\r\n if (!tab) {\r\n return \r\n }\r\n\r\n if (!tabs.find((t) => t.value === tab)) {\r\n return \r\n }\r\n\r\n if (!operatorId) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {tabs.map((tab) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n {tab === 'overview' && }\r\n {tab === 'projects' && }\r\n {tab === 'users' && \r\n }\r\n
\r\n \r\n )\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 '@material-ui/styles'\r\nimport {\r\n Button,\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Grid,\r\n Divider,\r\n Switch,\r\n TextField,\r\n Typography,\r\n colors,\r\n} from '@material-ui/core'\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 firstname: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n },\r\n lastname: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n },\r\n operatorId: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n saveButton: {\r\n color: theme.palette.white,\r\n backgroundColor: colors.green[600],\r\n '&:hover': {\r\n backgroundColor: colors.green[900],\r\n },\r\n },\r\n}))\r\n\r\nconst GeneralForm = (props) => {\r\n const { className, role, ...rest } = props\r\n\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const operators = useSelector((state) => state.settingsReducer.operators);\r\n\r\n const setFormState = formState => dispatch(SetFormState(formState));\r\n const formState = useSelector((state) => state.settingsReducer.formState);\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema)\r\n\r\n dispatch(SetFormState({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {},\r\n }))\r\n\r\n }, [formState.values])\r\n\r\n const handleChange = (event) => {\r\n event.persist()\r\n setFormState({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === 'checkbox'\r\n ? event.target.checked\r\n : event.target.value,\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true,\r\n },\r\n })\r\n }\r\n\r\n const _onConfirmClick = () => {\r\n if (formState.isValid) {\r\n dispatch(UpdateSettings(formState.values));\r\n }\r\n }\r\n\r\n const hasError = (field) => formState.touched[field] && formState.errors[field] ? true : false\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Save Changes\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nGeneralForm.propTypes = {\r\n className: 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 '@material-ui/styles'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport { GeneralForm } from './components'\r\nimport { SetFormState, GetOperators } from '../../../../actions/SettingsActions';\r\n\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {},\r\n}))\r\n\r\n\r\nconst General = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const user = useSelector(state => state.session.user);\r\n const formState = useSelector((state) => state.settingsReducer.formState);\r\n useEffect(() => {\r\n let mounted = true;\r\n\r\n dispatch(SetFormState({\r\n ...formState,\r\n values: { ...user }\r\n }))\r\n\r\n if (user && user.id) {\r\n dispatch(GetOperators(user.id));\r\n }\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n if (!user) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nGeneral.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default General\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 '@material-ui/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 '@material-ui/core';\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\tevent.persist();\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, { Fragment } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Grid,\r\n FormControlLabel,\r\n Checkbox,\r\n Typography,\r\n Button,\r\n Divider,\r\n colors,\r\n} from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n item: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n saveButton: {\r\n color: theme.palette.white,\r\n backgroundColor: colors.green[600],\r\n '&:hover': {\r\n backgroundColor: colors.green[900],\r\n },\r\n },\r\n}))\r\n\r\nconst Notifications = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n System\r\n \r\n \r\n You will recieve emails in your business email\r\n address\r\n \r\n \r\n }\r\n label=\"Email alerts\"\r\n />\r\n }\r\n label=\"Push Notifications\"\r\n />\r\n \r\n }\r\n label=\"Text message\"\r\n />\r\n \r\n }\r\n label={\r\n \r\n \r\n Phone calls\r\n \r\n \r\n Short voice phone updating you\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n Chat App\r\n \r\n \r\n You will recieve emails in your business email\r\n address\r\n \r\n \r\n }\r\n label=\"Email\"\r\n />\r\n \r\n }\r\n label=\"Push notifications\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nNotifications.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default Notifications\r\n","import React, { useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@material-ui/core';\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((tab) => (\r\n\t\t\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 {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\thistory: PropTypes.object.isRequired,\r\n\tmatch: PropTypes.object.isRequired,\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 '@material-ui/styles'\r\nimport {\r\n Button,\r\n Card,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n Link,\r\n Typography,\r\n} from '@material-ui/core'\r\n\r\nimport axios from 'utils/axios'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n action: {\r\n marginRight: 0,\r\n marginTop: 0,\r\n },\r\n overview: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: 'column-reverse',\r\n alignItems: 'flex-start',\r\n },\r\n },\r\n product: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n productImage: {\r\n marginRight: theme.spacing(1),\r\n height: 48,\r\n width: 48,\r\n },\r\n details: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n [theme.breakpoints.down('md')]: {\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n },\r\n notice: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}))\r\n\r\nconst Subscription = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const [subscription, setSubscription] = useState(null)\r\n\r\n useEffect(() => {\r\n let mounted = true\r\n\r\n const fetchSubscription = () => {\r\n axios.get('/api/account/subscription').then((response) => {\r\n if (mounted) {\r\n setSubscription(response.data.subscription)\r\n }\r\n })\r\n }\r\n\r\n fetchSubscription()\r\n\r\n return () => {\r\n mounted = false\r\n }\r\n }, [])\r\n\r\n if (!subscription) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n Upgrade plan\r\n \r\n }\r\n classes={{ action: classes.action }}\r\n title=\"Manage your subscription\"\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {subscription.currency}\r\n {subscription.price}\r\n \r\n \r\n /mo\r\n \r\n
\r\n
\r\n \r\n \r\n {subscription.name}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {subscription.proposalsLeft} proposals left\r\n \r\n \r\n {subscription.templatesLeft} templates\r\n \r\n
\r\n
\r\n \r\n {subscription.invitesLeft} invites left\r\n \r\n \r\n {subscription.adsLeft} ads left\r\n \r\n
\r\n
\r\n {subscription.hasAnalytics && (\r\n \r\n Analytics dashboard\r\n \r\n )}\r\n {subscription.hasEmailAlerts && (\r\n \r\n Email alerts\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n The refunds don't work once you have the subscription, but\r\n you can always{' '}\r\n \r\n Cancel your subscription\r\n \r\n .\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nSubscription.propTypes = {\r\n className: 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 '@material-ui/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 '@material-ui/core';\r\nimport MoreIcon from '@material-ui/icons/MoreVert';\r\nimport FullscreenIcon from '@material-ui/icons/Fullscreen';\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\r\nimport AchiveIcon from '@material-ui/icons/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 '@material-ui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@material-ui/core';\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\t// marginTop: 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 config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const ImportFileRequest = (fileLocation) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Tracker/ImportFile`,\r\n\tparams: { fileLocation }\r\n});\r\n","import React, { useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, Popover, Table, TableCell, TableBody, TableHead, TableRow, Typography } from '@material-ui/core';\r\nimport { FilesDropzone, Alert } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport uuid from 'uuid/v1';\r\n\r\nimport { Upload } from '../actions/ImportActions';\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}));\r\n\r\nconst acceptedFiles = [\r\n\t{ type: 'Voice failures', filename: '*voice*', fileformat: '.csv' },\r\n\t{ type: 'Packet failures', filename: '*packet*', fileformat: '.csv' },\r\n];\r\n\r\nconst Import = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst [anchorEl, setAnchorEl] = useState(null);\r\n\tconst open = Boolean(anchorEl);\r\n\r\n\tconst handlePopoverOpen = (event) => {\r\n\t\tsetAnchorEl(event.currentTarget);\r\n\t};\r\n\r\n\tconst handlePopoverClose = () => {\r\n\t\tsetAnchorEl(null);\r\n\t};\r\n\r\n\tconst _upload = (file) => {\r\n\t\tif (file[0].size > 100000000) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'File size cannot be superior to 100MB', options: { variant: 'warning' } }));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tdispatch(Upload(file[0]));\r\n\t};\r\n\r\n\treturn (\r\n\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\t\t\r\n\t\t\t\t\t\t\tType\r\n\t\t\t\t\t\t\tFile Name\r\n\t\t\t\t\t\t\tFile Format\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{acceptedFiles.map((row) => (\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{row.type}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{row.filename}\r\n\t\t\t\t\t\t\t\t{row.fileformat}\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 Import;\r\n","import { enqueueSnackbar, UploadFile } from 'actions';\r\n\r\nimport {\r\n\tImportFileRequest\r\n} from '../requests/ImportRequests';\r\n\r\nexport const ImportFile = (fileLocation) => async (dispatch) => {\r\n\tawait ImportFileRequest(fileLocation).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Files uploaded with success!', 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 Upload = (file) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(ImportFile(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 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 '@material-ui/styles';\r\nimport {\r\n\tIconButton, Tooltip, Switch,\r\n\tFormControlLabel\r\n} from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { purple } from '@material-ui/core/colors';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport Label from '../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../components/DataTable/DataTable.js';\r\n\r\nimport { ToggleVoiceEditFailureDialog, SetFailureVoiceValidInvalid } from '../../../actions/VoiceActions';\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\n// const BlueRedSwitch = withStyles({\r\n// \tswitchBase: {\r\n// \t\tcolor: '#e80909',\r\n// \t\t'&$checked': {\r\n// \t\t\tcolor: 'Primary',\r\n// \t\t},\r\n// \t\t'&$checked + $track': {\r\n// \t\t\t// backgroundColor: purple[500],\r\n// \t\t},\r\n// \t},\r\n// \tchecked: {},\r\n// \ttrack: {},\r\n// })(Switch);\r\n\r\nconst BlueRedSwitch = withStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 28,\r\n\t\theight: 16,\r\n\t\tpadding: 0,\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tswitchBase: {\r\n\t\tpadding: 2,\r\n\t\tcolor: theme.palette.error.main,\r\n\t\t'&$checked': {\r\n\t\t\ttransform: 'translateX(12px)',\r\n\t\t\tcolor: theme.palette.common.white,\r\n\t\t\t'& + $track': {\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t\t\tborderColor: theme.palette.primary.main,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tthumb: {\r\n\t\twidth: 12,\r\n\t\theight: 12,\r\n\t\tboxShadow: 'none',\r\n\t},\r\n\ttrack: {\r\n\t\tborder: `1px solid ${theme.palette.grey[500]}`,\r\n\t\tborderRadius: 16 / 2,\r\n\t\topacity: 1,\r\n\t\tbackgroundColor: theme.palette.common.white,\r\n\t},\r\n\tchecked: {},\r\n}))(Switch);\r\n\r\nconst VoiceDataTable = (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\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\tconst _editValid = (event, tableId) => {\r\n\t\tdispatch(SetFailureVoiceValidInvalid(userId, tableId));\r\n\t};\r\n\r\n\tconst _editFailure = (tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp) => {\r\n\t\tdispatch(ToggleVoiceEditFailureDialog(true, tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp));\r\n\t};\r\n\r\n\tconst _renderValid = (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 _editValid(event, rowData[0])}\r\n\t\t\t\t\t\t\t\tname=\"valid\"\r\n\t\t\t\t\t\t\t\tdefaultChecked={rowData[12]}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t// label=\"Custom color\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t _editFailure(rowData[0], rowData[6], rowData[7], rowData[11], rowData[9], rowData[8])}\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\tlet _getTableColumns = '';\r\n\tif (role === 'Client') {\r\n\t\t_getTableColumns = () => (\r\n\t\t\t[\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'id',\r\n\t\t\t\t\tlabel: 'Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureId',\r\n\t\t\t\t\tlabel: 'Failure Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'year',\r\n\t\t\t\t\tlabel: 'Year',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'week',\r\n\t\t\t\t\tlabel: 'Week',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'date',\r\n\t\t\t\t\tlabel: 'Date',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'city',\r\n\t\t\t\t\tlabel: 'City',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'filenameMoc',\r\n\t\t\t\t\tlabel: 'Mo Log',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'filenameMtc',\r\n\t\t\t\t\tlabel: 'Mt Log',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'initialTimestamp',\r\n\t\t\t\t\tlabel: 'Failure Timestamp',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureType',\r\n\t\t\t\t\tlabel: 'Failure Type',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'cfn1Level',\r\n\t\t\t\t\tlabel: 'Level 1',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureSide',\r\n\t\t\t\t\tlabel: 'Failure Side',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'action',\r\n\t\t\t\t\tlabel: 'Actions',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t]\r\n\t\t);\r\n\t} else {\r\n\t\t_getTableColumns = () => (\r\n\t\t\t[\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'id',\r\n\t\t\t\t\tlabel: 'Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureId',\r\n\t\t\t\t\tlabel: 'Failure Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'year',\r\n\t\t\t\t\tlabel: 'Year',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'week',\r\n\t\t\t\t\tlabel: 'Week',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'date',\r\n\t\t\t\t\tlabel: 'Date',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'city',\r\n\t\t\t\t\tlabel: 'City',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'filenameMoc',\r\n\t\t\t\t\tlabel: 'Mo Log',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'filenameMtc',\r\n\t\t\t\t\tlabel: 'Mt Log',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'initialTimestamp',\r\n\t\t\t\t\tlabel: 'Failure Timestamp',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureType',\r\n\t\t\t\t\tlabel: 'Failure Type',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'cfn1Level',\r\n\t\t\t\t\tlabel: 'Level 1',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureSide',\r\n\t\t\t\t\tlabel: 'Failure Side',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'valid',\r\n\t\t\t\t\tlabel: 'Valid',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'actionValid',\r\n\t\t\t\t\tlabel: 'Valid',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderValid(tableMeta)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'action',\r\n\t\t\t\t\tlabel: 'Actions',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\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 _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\nVoiceDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default VoiceDataTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DateTimePicker as InlineDatePicker } from '@material-ui/pickers';\r\n\r\nconst DatePicker = ({\r\n\tvalue,\r\n\tonChange,\r\n\tlabel,\r\n\tminutesStep,\r\n\t...rest\r\n}) => (\r\n\t\r\n);\r\n\r\nDatePicker.propTypes = {\r\n\tvalue: PropTypes.any.isRequired,\r\n\tonChange: PropTypes.func.isRequired,\r\n\tlabel: PropTypes.string,\r\n\tminutesStep: PropTypes.any\r\n};\r\n\r\nexport default DatePicker;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@material-ui/core';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { DataTable, Label } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\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 VoiceMocMtcDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\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: 'rows',\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\t// customHeadRender: () => null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'moc',\r\n\t\t\t\tlabel: 'MOC',\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: 'mtc',\r\n\t\t\t\tlabel: 'MTC',\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\tsearch: false,\r\n\t\tfilter: false,\r\n\t\tviewColumns: false\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\nVoiceMocMtcDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default VoiceMocMtcDataTable;\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 '@material-ui/styles';\r\nimport {\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tcolors, List, ListItem, ListItemText, Typography,\r\n\tIconButton,\r\n\tInput,\r\n\tPaper,\r\n\tTooltip,\r\n} from '@material-ui/core';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport { AddVoiceComment } from '../../../../../../actions/VoiceActions';\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 VoiceComments = (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 user = useSelector(state => state.session.user);\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(AddVoiceComment(tableId, user.id, 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\nVoiceComments.propTypes = {\r\n\tclassName: PropTypes.object,\r\n\ttableId: PropTypes.number,\r\n\tcomments: PropTypes.array\r\n};\r\n\r\nexport default VoiceComments;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails, TextareaAutosize\r\n} from '@material-ui/core';\r\nimport {\r\n\tThemeProvider,\r\n\tcreateMuiTheme,\r\n\tMuiThemeProvider,\r\n\twithStyles,\r\n} from '@material-ui/core/styles';\r\nimport { DataTable, Header, Label } from 'components';\r\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\r\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\r\nimport { SetFormState, GetLayer3MessageMo, GetLayer3MessageMt } from '../../../../../../../../../../actions/VoiceActions';\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\ttableRow: {\r\n\t\t'&:hover': {\r\n\t\t\tcursor: 'pointer'\r\n\t\t}\r\n\t}\r\n}));\r\n\r\nconst Layer3DataTables = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\tconst layer3 = useSelector((state) => state.voiceReducer.layer3);\r\n\tconst layer3MessageMo = useSelector((state) => state.voiceReducer.layer3MessageMo);\r\n\tconst layer3MessageMt = useSelector((state) => state.voiceReducer.layer3MessageMt);\r\n\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\r\n\t\tlet upHidden = true;\r\n\t\tlet downHidden = true;\r\n\r\n\t\tif (rowData[5] === 'UL') {\r\n\t\t\tupHidden = true;\r\n\t\t\tdownHidden = false;\r\n\t\t} else if (rowData[5] === 'DL') {\r\n\t\t\tupHidden = false;\r\n\t\t\tdownHidden = true;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\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: 'type',\r\n\t\t\t\tlabel: 'Type',\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: 'time',\r\n\t\t\t\tlabel: 'Time',\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: val => {\r\n\t\t\t\t\t\tconst cellStyle = {\r\n\t\t\t\t\t\t\twhiteSpace: 'nowrap'\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
{val}
\r\n\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: 'messageType',\r\n\t\t\t\tlabel: 'Message Type',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'protocol',\r\n\t\t\t\tlabel: 'Protocol',\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: 'direction',\r\n\t\t\t\tlabel: 'Direction',\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 _onRowClick = (rowData, rowMeta) => {\r\n\t\tif (rowData[1] === 'MO') {\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\tlayer3SelectedType: 'MO',\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tdispatch(GetLayer3MessageMo(rowData[0], 'MO', userId));\r\n\t\t} else if (rowData[1] === 'MT') {\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\tlayer3SelectedType: 'MT',\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tdispatch(GetLayer3MessageMt(rowData[0], 'MT', userId));\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\tsearch: false,\r\n\t\tfilter: false,\r\n\t\tviewColumns: false,\r\n\t\tonRowClick: (rowData, rowMeta) => _onRowClick(rowData, rowMeta),\r\n\t\trowsPerPageOptions: [],\r\n\t\trowsPerPage: [200]\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (formState.values.layer3SelectedType === 'MO') {\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\tlayer3MessageMoc: layer3MessageMo,\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else if (formState.values.layer3SelectedType === 'MT') {\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\tlayer3MessageMtc: layer3MessageMt,\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}, [layer3MessageMo, layer3MessageMt]);\r\n\r\n\treturn (\r\n\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\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\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\r\n\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\nLayer3DataTables.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Layer3DataTables;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _, { templateSettings } from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@material-ui/core';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { DataTable, Label, Chart } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\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 Layer3Charts = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst layer3Kpis = useSelector((state) => state.voiceReducer.layer3Kpis);\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\nLayer3Charts.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Layer3Charts;\r\n","import React, { useEffect, useMemo, useCallback } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@material-ui/core';\r\nimport L from 'leaflet';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport { SetFormState, GetLayer3Failure, GetLayer3DriveTest } from '../../../../../../../../../../actions/VoiceActions';\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 Layer3Map = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst mapOne = maps.filter(item => item.id === 'failures-map-layer3')[0];\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\r\n\tconst tableId = useSelector((state) => state.voiceReducer.tableId);\r\n\tconst filenameMoc = useSelector((state) => state.voiceReducer.filenameMoc);\r\n\tconst filenameMtc = useSelector((state) => state.voiceReducer.filenameMtc);\r\n\tconst failureSide = useSelector((state) => state.voiceReducer.failureSide);\r\n\tconst initialTimestamp = useSelector((state) => state.voiceReducer.initialTimestamp);\r\n\r\n\tconst layer3Failure = useSelector((state) => state.voiceReducer.layer3Failure);\r\n\tconst layer3DriveTest = useSelector((state) => state.voiceReducer.layer3DriveTest);\r\n\r\n\tconst failureLockOn = useSelector((state) => state.voiceReducer.failureLockOn);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst kpisNames = [\r\n\t\t{ value: 'rsrp', text: 'RSRP' },\r\n\t\t{ value: 'rsrq', text: 'RSRQ' },\r\n\t\t{ value: 'sinrVoice', text: 'SINR' }\r\n\t];\r\n\r\n\tconst makeDetailsTable = (item) => {\r\n\t\tconst table = `\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
Failure Id: ${item.failureId}
Timestamp: ${item.initialTimestamp}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst makeDetailsTableKpis = (item) => {\r\n\t\tconst table = `\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\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\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\r\n\t\t\t\t\t
Level: ${item.kpi}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst _addLayerFailures = (map, layerData, type, fitBounds) => {\r\n\t\tmap.RemoveLayerById('failures');\r\n\t\tconst markers = [];\r\n\r\n\t\tconst voiceIconBlocked = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicecallattempt_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconBlockedQoe = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoiceblockcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDropped = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicedropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDroppedQoe = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventsvoicedropcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst packetIcondrop = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventspacketdropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -32] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tif (!_.isEmpty(layerData)) {\r\n\t\t\tlayerData.forEach(item => {\r\n\t\t\t\tif (type.includes('voice')) {\r\n\t\t\t\t\tif (item.failureType === 'Blocked Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlocked });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'QoE Call Setup Time') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlockedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'Dropped Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDropped });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDroppedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: packetIcondrop });\r\n\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// const marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlocked });\r\n\t\t\t\t// markers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: 'failures' });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t}\r\n\t\t// dispatch(onUpdateLegend({ id: map.mapContext.id, newLegend: legend }));\r\n\t};\r\n\r\n\tconst _addLayerKpi = (map, layerData, legend, fitBounds) => {\r\n\t\tmap.RemoveLayerById('kpi');\r\n\t\tconst markers = [];\r\n\r\n\t\tif (!_.isEmpty(layerData)) {\r\n\t\t\tlayerData.forEach(item => {\r\n\t\t\t\tconst marker = L.circle([item.latitude, item.longitude], {\r\n\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\tfillColor: item.color,\r\n\t\t\t\t\tfillOpacity: 0.8,\r\n\t\t\t\t\tradius: 10\r\n\t\t\t\t});\r\n\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTableKpis(item)}
`, { autoPan: false }));\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: 'kpi' });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdispatch(onUpdateLegend({ id: map.mapContext.id, newLegend: legend }));\r\n\t};\r\n\r\n\tconst _handleChangeKpi = (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\tlayer3Kpi: event.target.value,\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdispatch(GetLayer3DriveTest(userId, event.target.value, filenameMoc, filenameMtc, failureSide, initialTimestamp));\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetLayer3Failure(tableId));\r\n\t}, []);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerFailures(mapOne.control, layer3Failure, 'voice', true);\r\n\t\t}\r\n\t}, [layer3Failure]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerKpi(mapOne.control, layer3DriveTest.driveTestPoints, layer3DriveTest.DriveTestLegend || '', true);\r\n\t\t}\r\n\t}, [layer3DriveTest]);\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\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nLayer3Map.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\theight: PropTypes.string\r\n};\r\n\r\nexport default Layer3Map;\r\n","import 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 '@material-ui/styles';\r\nimport { Button, TextField, Typography, Grid, Select, Card, CardHeader, CardContent, Divider, Accordion, AccordionSummary, AccordionDetails } from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport useRouter from 'utils/useRouter';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, DatePicker } from 'components';\r\nimport Layer3DataTables from './components/Layer3DataTables';\r\nimport Layer3Charts from './components/Layer3Charts';\r\nimport Layer3Map from './components/Layer3Map';\r\n\r\nconst Layer3Form = (props) => {\r\n\t// const layer3 = useSelector((state) => state.voiceReducer.layer3);\r\n\tconst layer3Failure = useSelector((state) => state.voiceReducer.layer3Failure);\r\n\t// const layer3Kpis = useSelector((state) => state.voiceReducer.layer3Kpis);\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\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default Layer3Form;\r\n","import React, { useEffect, useMemo, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\r\nimport { Tile } from 'powerbi-client';\r\nimport ModalDialog from '../../../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport Layer3Form from './components/Layer3Dialog/Layer3Form';\r\nimport { SetFormState, GetLayer3, GetLayer3Kpis } from '../../../../../../../actions/VoiceActions';\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 Layer3Dialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\tconst tableId = useSelector((state) => state.voiceReducer.tableId);\r\n\tconst filenameMoc = useSelector((state) => state.voiceReducer.filenameMoc);\r\n\tconst filenameMtc = useSelector((state) => state.voiceReducer.filenameMtc);\r\n\tconst failureSide = useSelector((state) => state.voiceReducer.failureSide);\r\n\tconst failureType = useSelector((state) => state.voiceReducer.failureType);\r\n\tconst initialTimestamp = useSelector((state) => state.voiceReducer.initialTimestamp);\r\n\tconst layer3 = useSelector((state) => state.voiceReducer.layer3);\r\n\tconst layer3Kpis = useSelector((state) => state.voiceReducer.layer3Kpis);\r\n\t// const formState = useSelector((state) => state.voiceReducer.formState);\r\n\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetLayer3(filenameMoc, filenameMtc, initialTimestamp, userId));\r\n\t\tdispatch(GetLayer3Kpis(filenameMoc, filenameMtc, failureSide, initialTimestamp));\r\n\t}, []);\r\n\r\n\t// useMemo(() => {\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\tlayer3MessageMoc: layer3.firstMessageMoc,\r\n\t// \t\t\tlayer3MessageMtc: layer3.firstMessageMtc,\r\n\t// \t\t}\r\n\t// \t});\r\n\t// }, [layer3]);\r\n\r\n\tconst title = `Failure ${failureType} from ${failureSide} at ${initialTimestamp}`;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{/* onConfirmClicked={_onConfirmClick}> */}\r\n\t\t\t{/* */}\r\n\t\t\t{}\r\n\t\t\r\n\t);\r\n};\r\n\r\nLayer3Dialog.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 Layer3Dialog;\r\n","import React, { useState, useEffect, useRef, useCallback, useMemo } 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 '@material-ui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select,\r\n\tCard, CardHeader, CardContent, Divider, Accordion,\r\n\tAccordionSummary, AccordionDetails, FormGroup, Switch\r\n} from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport useRouter from 'utils/useRouter';\r\nimport _ from 'underscore';\r\nimport L from 'leaflet';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, DatePicker } from 'components';\r\nimport DateTimePicker from 'components/DatePicker/DateTimePicker.js';\r\nimport { SetFormState, ToggleLayer3Dialog, GetLayer3Failure } from '../../../../../actions/VoiceActions';\r\nimport VoiceMocMtcDataTable from './components/VoiceMocMtcDataTable';\r\nimport VoiceComments from './components/VoiceComments';\r\nimport Layer3 from './components/Layer3/Layer3Dialog';\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\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n}));\r\n\r\nconst VoiceEditFailureDialogForm = (props) => {\r\n\tconst { className, tableId, ...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.voiceReducer.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 [hideFields, setHideFields] = React.useState(false);\r\n\tconst failure = useSelector((state) => state.voiceReducer.failure);\r\n\tconst comments = useSelector((state) => state.voiceReducer.comments.trackerVoiceCommentsDto);\r\n\r\n\tconst layer3DialogVisibility = useSelector((state) => state.voiceReducer.layer3DialogVisibility);\r\n\tconst layer3Failure = useSelector((state) => state.voiceReducer.layer3Failure);\r\n\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst mapOne = maps.filter(item => item.id === 'failures-map-details')[0];\r\n\r\n\t// const [stateValid, setStateValid] = React.useState(true);\r\n\r\n\tconst _handleChange = (event) => {\r\n\t\tevent.persist();\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 _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]:\r\n\t\t\t\t\tvalue,\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\t// const handleChangeValid = (event) => {\r\n\t// \tsetStateValid(!stateValid);\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\tvalid: event.target.checked\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 makeDetailsTable = (item) => {\r\n\t\tconst table = `\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
Failure Id: ${item.failureId}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst _addLayerFailures = (map, layerData, type, fitBounds) => {\r\n\t\tmap.RemoveLayerById('failures');\r\n\t\tconst markers = [];\r\n\r\n\t\tconst voiceIconBlocked = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicecallattempt_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconBlockedQoe = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoiceblockcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDropped = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicedropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDroppedQoe = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventsvoicedropcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst packetIcondrop = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventspacketdropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -32] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tif (!_.isEmpty(layerData)) {\r\n\t\t\tlayerData.forEach(item => {\r\n\t\t\t\tif (type.includes('voice')) {\r\n\t\t\t\t\tif (item.failureType === 'Blocked Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlocked });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'QoE Call Setup Time') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlockedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'Dropped Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDropped });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDroppedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: packetIcondrop });\r\n\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// const marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlocked });\r\n\t\t\t\t// markers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: 'failures' });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t}\r\n\t\t// dispatch(onUpdateLegend({ id: map.mapContext.id, newLegend: legend }));\r\n\t};\r\n\r\n\tconst _openLayer3 = () => {\r\n\t\tdispatch(ToggleLayer3Dialog(true));\r\n\t};\r\n\r\n\tconst _layer3DialogClose = () => {\r\n\t\tdispatch(ToggleLayer3Dialog(false));\r\n\t};\r\n\r\n\tuseMemo(() => {\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 (role === 'Client') {\r\n\t\t\tsetHideFields(true);\r\n\t\t} else {\r\n\t\t\tsetHideFields(false);\r\n\t\t}\r\n\r\n\t\t// if (formState.values.valid) {\r\n\t\t// \tsetStateValid(true);\r\n\t\t// } else {\r\n\t\t// \tsetStateValid(false);\r\n\t\t// }\r\n\t}, [formState.values]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerFailures(mapOne.control, layer3Failure, 'voice', true);\r\n\t\t}\r\n\t}, [layer3Failure]);\r\n\r\n\treturn (\r\n\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\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\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\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\r\n\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\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 */}\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\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\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tOpen Layer 3\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{layer3DialogVisibility && (\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\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\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t{/* New row */}\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\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\taria-controls=\"panel1a-content\"\r\n\t\t\t\t\t\t\t\t\t\tid=\"panel1a-header\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tLevels\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\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\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\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\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\nVoiceEditFailureDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttableId: PropTypes.string\r\n};\r\n\r\nexport default VoiceEditFailureDialogForm;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\r\n\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport VoiceEditFailureDialogForm from './components/VoiceEditFailureDialogForm';\r\nimport { GetFailureVoiceDetails, SetFailureVoiceDetails, GetFailureVoiceComments, GetLayer3Failure, ExportFailuresVoice } from '../../../../actions/VoiceActions';\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 VoiceEditFailureDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst tableId = useSelector((state) => state.voiceReducer.tableId);\r\n\t// const operatorProjects = useSelector((state) => state.usersReducer.operatorProjects);\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\t// const openAddEditUserDialogId = useSelector((state) => state.usersReducer.openAddEditUserDialogId);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\t// if (formState.isValid) {\r\n\t\tdispatch(SetFailureVoiceDetails(formState.values, userId));\r\n\t\t// }\r\n\t};\r\n\r\n\tconst _getData = useCallback(() => {\r\n\t\tdispatch(GetFailureVoiceDetails(tableId, userId));\r\n\t\tdispatch(GetFailureVoiceComments(tableId));\r\n\t\tdispatch(GetLayer3Failure(tableId, userId));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t_getData();\r\n\t}, [tableId]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{/* onConfirmClicked={_onConfirmClick}> */}\r\n\t\t\t{/* */}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nVoiceEditFailureDialog.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 VoiceEditFailureDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport BusinessCenterIcon from '@material-ui/icons/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@material-ui/icons/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport VoiceDataTable from './components/VoiceDataTable';\r\nimport VoiceEditFailureDialog from './components/VoiceEditFailureDialog/VoiceEditFailureDialog';\r\n\r\nimport { GetFailuresVoice, ToggleVoiceEditFailureDialog, ExportFailuresVoice } from '../../actions/VoiceActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\t// padding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\t// marginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Voice = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst failures = useSelector((state) => state.voiceReducer.failures);\r\n\tconst voiceEditFailureDialogVisibility = useSelector((state) => state.voiceReducer.voiceEditFailureDialogVisibility);\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 _getData = useCallback(() => {\r\n\t\tdispatch(GetFailuresVoice(userId, role));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (failures !== undefined) {\r\n\t\t\t_getData();\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst _voiceEditFailureDialogClose = () => {\r\n\t\tdispatch(ToggleVoiceEditFailureDialog(false));\r\n\t};\r\n\r\n\tconst _onExportFailuresClick = () => {\r\n\t\tdispatch(ExportFailuresVoice(userId, role));\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\tExport Failures\r\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{voiceEditFailureDialogVisibility && (\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 Voice;\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 '@material-ui/styles';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n\tIconButton, Tooltip, Switch,\r\n\tFormControlLabel\r\n} from '@material-ui/core';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport Label from '../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../components/DataTable/DataTable.js';\r\n\r\nimport { TogglePacketEditFailureDialog, SetFailurePacketValidInvalid } from '../../../actions/PacketActions';\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 BlueRedSwitch = withStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 28,\r\n\t\theight: 16,\r\n\t\tpadding: 0,\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tswitchBase: {\r\n\t\tpadding: 2,\r\n\t\tcolor: theme.palette.error.main,\r\n\t\t'&$checked': {\r\n\t\t\ttransform: 'translateX(12px)',\r\n\t\t\tcolor: theme.palette.common.white,\r\n\t\t\t'& + $track': {\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t\t\tborderColor: theme.palette.primary.main,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tthumb: {\r\n\t\twidth: 12,\r\n\t\theight: 12,\r\n\t\tboxShadow: 'none',\r\n\t},\r\n\ttrack: {\r\n\t\tborder: `1px solid ${theme.palette.grey[500]}`,\r\n\t\tborderRadius: 16 / 2,\r\n\t\topacity: 1,\r\n\t\tbackgroundColor: theme.palette.common.white,\r\n\t},\r\n\tchecked: {},\r\n}))(Switch);\r\n\r\nconst PacketDataTable = (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\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\tconst _editValid = (event, tableId) => {\r\n\t\tdispatch(SetFailurePacketValidInvalid(userId, tableId));\r\n\t};\r\n\r\n\tconst _editFailure = (tableId, failureId) => {\r\n\t\tdispatch(TogglePacketEditFailureDialog(true, tableId, failureId));\r\n\t};\r\n\r\n\tconst _renderValid = (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 _editValid(event, rowData[0])}\r\n\t\t\t\t\t\t\t\tname=\"valid\"\r\n\t\t\t\t\t\t\t\tdefaultChecked={rowData[9]}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t// label=\"Custom color\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t _editFailure(rowData[0], rowData[1])}>\r\n\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\tlet _getTableColumns = '';\r\n\tif (role === 'Client') {\r\n\t\t_getTableColumns = () => (\r\n\t\t\t[\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'id',\r\n\t\t\t\t\tlabel: 'Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureId',\r\n\t\t\t\t\tlabel: 'Failure Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'year',\r\n\t\t\t\t\tlabel: 'Year',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'week',\r\n\t\t\t\t\tlabel: 'Week',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'date',\r\n\t\t\t\t\tlabel: 'Date',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'city',\r\n\t\t\t\t\tlabel: 'City',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'filename',\r\n\t\t\t\t\tlabel: 'Log',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'initialTimestamp',\r\n\t\t\t\t\tlabel: 'Failure Timestamp',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'cfn1Level',\r\n\t\t\t\t\tlabel: 'Level 1',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'action',\r\n\t\t\t\t\tlabel: 'Actions',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t]\r\n\t\t);\r\n\t}\telse {\r\n\t\t_getTableColumns = () => (\r\n\t\t\t[\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'id',\r\n\t\t\t\t\tlabel: 'Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'failureId',\r\n\t\t\t\t\tlabel: 'Failure Id',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'year',\r\n\t\t\t\t\tlabel: 'Year',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'week',\r\n\t\t\t\t\tlabel: 'Week',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'date',\r\n\t\t\t\t\tlabel: 'Date',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'city',\r\n\t\t\t\t\tlabel: 'City',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'filename',\r\n\t\t\t\t\tlabel: 'Log',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'initialTimestamp',\r\n\t\t\t\t\tlabel: 'Failure Timestamp',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'cfn1Level',\r\n\t\t\t\t\tlabel: 'Level 1',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'valid',\r\n\t\t\t\t\tlabel: 'Valid',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'actionValid',\r\n\t\t\t\t\tlabel: 'Valid',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderValid(tableMeta)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'action',\r\n\t\t\t\t\tlabel: 'Actions',\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tfilter: false,\r\n\t\t\t\t\t\tsort: false,\r\n\t\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\t\tempty: true,\r\n\t\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\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 _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\nPacketDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default PacketDataTable;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@material-ui/core';\r\n\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { DataTable, Label } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\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 PacketMocMtcDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\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: 'rows',\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\t// customHeadRender: () => null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'information',\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\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\tsearch: false,\r\n\t\tfilter: false,\r\n\t\tviewColumns: false\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\nPacketMocMtcDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default PacketMocMtcDataTable;\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 '@material-ui/styles';\r\nimport {\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tcolors, List, ListItem, ListItemText, Typography,\r\n\tIconButton,\r\n\tInput,\r\n\tPaper,\r\n\tTooltip,\r\n} from '@material-ui/core';\r\n\r\nimport SendIcon from '@material-ui/icons/Send';\r\n\r\nimport { AddPacketComment } from '../../../../../../actions/PacketActions';\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 PacketComments = (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 user = useSelector(state => state.session.user);\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(AddPacketComment(tableId, user.id, 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\nPacketComments.propTypes = {\r\n\tclassName: PropTypes.object,\r\n\ttableId: PropTypes.number,\r\n\tcomments: PropTypes.array\r\n};\r\n\r\nexport default PacketComments;\r\n","import React, { useState, useEffect, useRef, useMemo } 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 '@material-ui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card, CardHeader,\r\n\tCardContent, Divider, Accordion, AccordionSummary, AccordionDetails,\r\n\tFormGroup, Switch\r\n} from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SelectField, DatePicker } from 'components';\r\nimport DateTimePicker from 'components/DatePicker/DateTimePicker.js';\r\nimport { SetFormState } from '../../../../../actions/PacketActions';\r\nimport PacketMocMtcDataTable from './components/PacketMocMtcDataTable';\r\nimport PacketComments from './components/PacketComments';\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\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n}));\r\n\r\nconst PacketEditFailureDialogForm = (props) => {\r\n\tconst { className, tableId, ...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.packetReducer.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 [hideFields, setHideFields] = React.useState(false);\r\n\tconst failure = useSelector((state) => state.packetReducer.failure);\r\n\tconst [expectedSolutionDate, setExpectedDate] = useState(new Date());\r\n\tconst [actualSolutionDate, setActualDate] = useState(new Date());\r\n\r\n\t// const [stateValid, setStateValid] = React.useState(true);\r\n\r\n\tuseMemo(() => {\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\t// if (hasOperatorIdsChanged) {\r\n\t\t// dispatch(GetOperatorProjects(formState.values.operatorIds || []));\r\n\t\t// }\r\n\t\tif (role === 'Client') {\r\n\t\t\tsetHideFields(true);\r\n\t\t} else {\r\n\t\t\tsetHideFields(false);\r\n\t\t}\r\n\r\n\t\t// if (formState.values.valid) {\r\n\t\t// \tsetStateValid(true);\r\n\t\t// } else {\r\n\t\t// \tsetStateValid(false);\r\n\t\t// }\r\n\t}, [formState.values]);\r\n\r\n\tconst _handleChange = (event) => {\r\n\t\tevent.persist();\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 _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]:\r\n\t\t\t\t\tvalue,\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\t// const handleChangeValid = (event) => {\r\n\t// \tsetStateValid(!stateValid);\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\tvalid: event.target.checked\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{/* 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\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\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\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\r\n\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\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\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\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\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{/* New row */}\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\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\taria-controls=\"panel1a-content\"\r\n\t\t\t\t\t\t\t\t\t\tid=\"panel1a-header\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tLevels\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\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\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\r\n\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\nPacketEditFailureDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttableId: PropTypes.string\r\n};\r\n\r\nexport default PacketEditFailureDialogForm;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\r\n\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport PacketEditFailureDialogForm from './components/PacketEditFailureDialogForm';\r\nimport { GetFailurePacketDetails, SetFailurePacketDetails } from '../../../../actions/PacketActions';\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 PacketEditFailureDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst tableId = useSelector((state) => state.packetReducer.tableId);\r\n\t// const operatorProjects = useSelector((state) => state.usersReducer.operatorProjects);\r\n\t const formState = useSelector((state) => state.packetReducer.formState);\r\n\t// const openAddEditUserDialogId = useSelector((state) => state.usersReducer.openAddEditUserDialogId);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\t// if (formState.isValid) {\r\n\t\tdispatch(SetFailurePacketDetails(formState.values, userId));\r\n\t\t// }\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetFailurePacketDetails(tableId, userId));\r\n\t\t// dispatch(GetOperators());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, [tableId]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{/* onConfirmClicked={_onConfirmClick}> */}\r\n\t\t\t{/* */}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\n// PacketEditFailureDialog.propTypes = {\r\n// author: PropTypes.object.isRequired,\r\n// className: PropTypes.string,\r\n// onApply: PropTypes.func,\r\n// onClose: PropTypes.func,\r\n// open: PropTypes.bool.isRequired,\r\n// }\r\n\r\nexport default PacketEditFailureDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport BusinessCenterIcon from '@material-ui/icons/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@material-ui/icons/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\n\r\nimport PacketDataTable from './components/PacketDataTable';\r\nimport PacketEditFailureDialog from './components/PacketEditFailureDialog/PacketEditFailureDialog';\r\n\r\nimport { GetFailuresPacket, TogglePacketEditFailureDialog, ExportFailuresPacket } from '../../actions/PacketActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\t// padding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\t// marginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Packet = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst failures = useSelector((state) => state.packetReducer.failures);\r\n\tconst packetEditFailureDialogVisibility = useSelector((state) => state.packetReducer.packetEditFailureDialogVisibility);\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 _getData = useCallback(() => {\r\n\t\tdispatch(GetFailuresPacket(userId, role));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (failures !== undefined) {\r\n\t\t\t_getData();\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst _packetEditFailureDialogClose = () => {\r\n\t\tdispatch(TogglePacketEditFailureDialog(false));\r\n\t};\r\n\r\n\tconst _onExportFailuresClick = () => {\r\n\t\tdispatch(ExportFailuresPacket(userId, role));\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\tExport Failures\r\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{packetEditFailureDialogVisibility && (\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 Packet;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Tabs, Tab, Divider, Card, CardContent } from '@material-ui/core';\r\nimport { Page, Header } from 'components';\r\nimport Voice from './Voice/Voice';\r\nimport Packet from './Packet/Packet';\r\n\r\nconst tabs = [\r\n\t{ value: 'voice', label: 'voice' },\r\n\t{ value: 'packet', label: 'packet' },\r\n];\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(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 Failures = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst [tab, setTab] = useState('voice');\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\t// dispatch();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, []);\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\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\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{tabs.map((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
\r\n\t\t\t\t\t\t{tab === 'voice' && }\r\n\t\t\t\t\t\t{tab === 'packet' && }\r\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 Failures;\r\n","import React, { useEffect, useMemo, useCallback, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport L from 'leaflet';\r\nimport 'leaflet.sync';\r\nimport _ from 'underscore';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch\r\n} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete, createFilterOptions } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport validate from 'validate.js';\r\nimport {\r\n\tSetFormState, ToggleSummaryDialog, GetSiteIdLocation, ToggleCarriersColorsDialog\r\n} from '../../actions/FailuresMapActions';\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\tbutton: {\r\n\t\t'& > *': {\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t}\r\n}));\r\n\r\nconst CompareBox = (props) => {\r\n\tconst { className, open, onClose, onFilter, filterDisabled, onClear, ...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.failuresMapReducer.formState);\r\n\tconst driveTest = useSelector(state => state.failuresMapReducer.driveTest);\r\n\tconst selectedDates = useSelector(state => state.failuresMapReducer.selectedDates);\r\n\tconst driveTestScanner = useSelector(state => state.failuresMapReducer.driveTestScanner);\r\n\tconst failuresVoice = useSelector(state => state.failuresMapReducer.failuresVoice);\r\n\tconst failuresPacket = useSelector(state => state.failuresMapReducer.failuresPacket);\r\n\tconst techBandVoice = useSelector(state => state.failuresMapReducer.techBandVoice);\r\n\tconst techBandPacket = useSelector(state => state.failuresMapReducer.techBandPacket);\r\n\tconst sitesIds = useSelector(state => state.failuresMapReducer.sitesIds);\r\n\tconst siteIdLocation = useSelector(state => state.failuresMapReducer.siteIdLocation);\r\n\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst mapOne = maps.filter(item => item.id === 'failures-map')[0];\r\n\t// Map Compare\r\n\tconst mapTwo = maps.filter(item => item.id === 'failures-map-compare')[0];\r\n\tconst driveTestCompare = useSelector(state => state.failuresMapReducer.driveTestCompare);\r\n\tconst driveTestScannerCompare = useSelector(state => state.failuresMapReducer.driveTestScannerCompare);\r\n\tconst failuresVoiceCompare = useSelector(state => state.failuresMapReducer.failuresVoiceCompare);\r\n\tconst failuresPacketCompare = useSelector(state => state.failuresMapReducer.failuresPacketCompare);\r\n\tconst techBandVoiceCompare = useSelector(state => state.failuresMapReducer.techBandVoiceCompare);\r\n\tconst techBandPacketCompare = useSelector(state => state.failuresMapReducer.techBandPacketCompare);\r\n\r\n\tconst makeDetailsSiteId = (item) => {\r\n\t\tconst table = `\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\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\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\r\n\t\t\t\t\t
SiteId: ${item.siteId}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst _addSiteLocation = (map, data, layerName, flyTo) => {\r\n\t\tmap.RemoveLayerById(layerName);\r\n\t\tconst markers = [];\r\n\r\n\t\tconst packetIcondrop = L.icon({\r\n\t\t\ticonUrl: 'images/leaflet/marker-icon.png',\r\n\t\t\t// iconSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [13, 40], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -38] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tconst marker = L.marker([data.latitude, data.longitude], { title: data.failureId, icon: packetIcondrop });\r\n\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsSiteId(data)}
`, { autoPan: false }));\r\n\r\n\t\t\tif (flyTo) {\r\n\t\t\t\tmap.mapContext.map.flyTo([data.latitude, data.longitude], 12);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst layer = L.layerGroup(markers, { id: layerName });\r\n\t\tlayer.addTo(map.mapContext.map);\r\n\t};\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapTwo) {\r\n\t\t\t_addSiteLocation(mapOne.control, siteIdLocation, 'siteIdLocation', true);\r\n\t\t\t_addSiteLocation(mapTwo.control, siteIdLocation, 'siteIdLocation', false);\r\n\t\t}\r\n\t}, [siteIdLocation]);\r\n\r\n\tconst handleChangeMapCompare = (event) => {\r\n\t\tif (event.target.checked) {\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]:\r\n\t\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t\t: event.target.value,\r\n\t\t\t\t\tmapSize: 4\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]:\r\n\t\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t\t: event.target.value,\r\n\t\t\t\t\tmapSize: 10,\r\n\t\t\t\t\tmapFilters: true\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeInv = (event) => {\r\n\t\t// if (event.target.checked) {\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\tmapFrameSize: '70vw'\r\n\t\t// \t\t}\r\n\t\t// \t});\r\n\t\t// } else {\r\n\t\t// \tsetFormState({\r\n\t\t// \t\t...formState,\r\n\t\t// \t\tvalues: {\r\n\t\t// \t\t\t...formState.values,\r\n\t\t// \t\t\tmapFrameSize: '80vw'\r\n\t\t// \t\t}\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\t\t// mapOne.instance.unsync(mapTwo.instance);\r\n\t\t// mapTwo.instance.unsync(mapOne.instance);\r\n\t\tmapOne.instance.sync(mapTwo.instance);\r\n\t\tmapTwo.instance.sync(mapOne.instance);\r\n\r\n\t\t// mapOne.control.mapContext.map.invalidateSize();\r\n\t\t// mapTwo.control.mapContext.map.invalidateSize();\r\n\r\n\t\t// window.dispatchEvent(new Event('resize'));\r\n\t};\r\n\r\n\tconst handleChangeSync = (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\r\n\t\t// if (event.target.checked) {\r\n\t\t// \tmapOne.control.mapContext.map.sync(mapTwo.control.mapContext.map);\r\n\t\t// \tmapTwo.control.mapContext.map.sync(mapOne.control.mapContext.map);\r\n\t\t// } else {\r\n\t\t// \tmapOne.control.mapContext.map.unsync(mapTwo.control.mapContext.map);\r\n\t\t// \tmapTwo.control.mapContext.map.unsync(mapOne.control.mapContext.map);\r\n\t\t// }\r\n\r\n\t\tif (event.target.checked) {\r\n\t\t\tmapOne.instance.sync(mapTwo.instance);\r\n\t\t\tmapTwo.instance.sync(mapOne.instance);\r\n\t\t} else {\r\n\t\t\tmapOne.instance.unsync(mapTwo.instance);\r\n\t\t\tmapTwo.instance.unsync(mapOne.instance);\r\n\t\t}\r\n\t};\r\n\r\n\t// if (mapOne && mapTwo) {\r\n\t// \t// if (mapOne && mapTwo && formState.values.mapSync) {\r\n\r\n\t// \tmapOne.control.mapContext.map.on('movestart', () => {\r\n\t// \t\t//mapOne.control.mapContext.map.unsync(mapTwo.control.mapContext.map);\r\n\t// \t\t// mapTwo.control.mapContext.map.unsync(mapOne.control.mapContext.map);\r\n\t// \t\t//mapOne.control.mapContext.map.sync(mapTwo.control.mapContext.map);\r\n\t// \t\t//mapTwo.control.mapContext.map.sync(mapOne.control.mapContext.map);\r\n\t// \t\tconsole.log('mexeu movestart');\r\n\t// \t});\r\n\r\n\t// \tmapOne.control.mapContext.map.on('moveend', () => {\r\n\t// \t\t// mapOne.control.mapContext.map.unsync(mapTwo.control.mapContext.map);\r\n\t// \t\t// mapTwo.control.mapContext.map.unsync(mapOne.control.mapContext.map);\r\n\t// \t\t//mapOne.control.mapContext.map.sync(mapTwo.control.mapContext.map);\r\n\t// \t\t// mapTwo.control.mapContext.map.sync(mapOne.control.mapContext.map);\r\n\t// \t\tconsole.log('mexeu moveend');\r\n\t// \t});\r\n\r\n\t// \tmapOne.control.mapContext.map.on('mousedown', () => {\r\n\t// \t\t//mapOne.control.mapContext.map.unsync(mapTwo.control.mapContext.map);\r\n\t// \t\t// mapTwo.control.mapContext.map.unsync(mapOne.control.mapContext.map);\r\n\t// \t\t//mapOne.control.mapContext.map.sync(mapTwo.control.mapContext.map);\r\n\t// \t\t//mapTwo.control.mapContext.map.sync(mapOne.control.mapContext.map);\r\n\t// \t\tconsole.log('mexeu mousedown');\r\n\t// \t});\r\n\r\n\t// \tmapOne.control.mapContext.map.on('mouseup', () => {\r\n\t// \t\t// mapOne.control.mapContext.map.unsync(mapTwo.control.mapContext.map);\r\n\t// \t\t// mapTwo.control.mapContext.map.unsync(mapOne.control.mapContext.map);\r\n\t// \t\t//mapOne.control.mapContext.map.sync(mapTwo.control.mapContext.map);\r\n\t// \t\t// mapTwo.control.mapContext.map.sync(mapOne.control.mapContext.map);\r\n\t// \t\tconsole.log('mexeu mouseup');\r\n\t// \t});\r\n\t// }\r\n\r\n\tconst handleChangeMapFilters = (event) => {\r\n\t\tif (event.target.checked) {\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]:\r\n\t\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t\t: event.target.value,\r\n\t\t\t\t\tmapSize: 4\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]:\r\n\t\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t\t: event.target.value,\r\n\t\t\t\t\tmapSize: 6\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst _autoZoom = (map, data) => {\r\n\t\tconst markers = [];\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tdata.forEach(item => {\r\n\t\t\t\tconst marker = L.circle([item.latitude, item.longitude], {\r\n\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\tfillColor: item.color,\r\n\t\t\t\t\tfillOpacity: 0.8,\r\n\t\t\t\t\tradius: 10\r\n\t\t\t\t});\r\n\t\t\t\tmarkers.push(marker);\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: 'autozoom' });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\t// fit bounds\r\n\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t}\r\n\t\tmap.RemoveLayerById('autozoom');\r\n\t};\r\n\r\n\tconst handleChangeMapAutoZoom = (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\r\n\t\t// UE\r\n\t\tif (event.target.checked) {\r\n\t\t\tif (formState.values.selectedKpiTech === '4g' && formState.values.kpi4g !== undefined) {\r\n\t\t\t\t_autoZoom(mapOne.control, driveTest.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiTech === '3g' && formState.values.kpi3g !== undefined) {\r\n\t\t\t\t_autoZoom(mapOne.control, driveTest.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiTech === '2g' && formState.values.kpi2g !== undefined) {\r\n\t\t\t\t_autoZoom(mapOne.control, driveTest.driveTestPoints);\r\n\t\t\t}\r\n\r\n\t\t\t// Scanner\r\n\t\t\tif (formState.values.selectedKpiScannerTech === '4g' && formState.values.kpi4gScanner !== undefined) {\r\n\t\t\t\t_autoZoom(mapOne.control, driveTestScanner.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiScannerTech === '3g' && formState.values.kpi3gScanner !== undefined) {\r\n\t\t\t\t_autoZoom(mapOne.control, driveTestScanner.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiScannerTech === '2g' && formState.values.kpi2gScanner !== undefined) {\r\n\t\t\t\t_autoZoom(mapOne.control, driveTestScanner.driveTestPoints);\r\n\t\t\t}\r\n\r\n\t\t\t// Failures\r\n\t\t\tif (formState.values.voiceActive) {\r\n\t\t\t\t_autoZoom(mapOne.control, failuresVoice);\r\n\t\t\t}\r\n\t\t\tif (formState.values.packetActive) {\r\n\t\t\t\t_autoZoom(mapOne.control, failuresPacket);\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandVoiceActive) {\r\n\t\t\t\t_autoZoom(mapOne.control, techBandVoice.driveTestTechBand);\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandPacketActive) {\r\n\t\t\t\t_autoZoom(mapOne.control, techBandPacket.driveTestTechBand);\r\n\t\t\t}\r\n\r\n\t\t\t// Map Compare\r\n\t\t\t// UE\r\n\t\t\tif (formState.values.selectedKpiTechCompare === '4g' && formState.values.kpi4gCompare !== undefined) {\r\n\t\t\t\t_autoZoom(mapTwo.control, driveTestCompare.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiTechCompare === '3g' && formState.values.kpi3gCompare !== undefined) {\r\n\t\t\t\t_autoZoom(mapTwo.control, driveTestCompare.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiTechCompare === '2g' && formState.values.kpi2gCompare !== undefined) {\r\n\t\t\t\t_autoZoom(mapTwo.control, driveTestCompare.driveTestPoints);\r\n\t\t\t}\r\n\r\n\t\t\t// Scanner\r\n\t\t\tif (formState.values.selectedKpiScannerTechCompare === '4g' && formState.values.kpi4gScannerCompare !== undefined) {\r\n\t\t\t\t_autoZoom(mapTwo.control, driveTestScannerCompare.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiScannerTechCompare === '3g' && formState.values.kpi3gScannerCompare !== undefined) {\r\n\t\t\t\t_autoZoom(mapTwo.control, driveTestScannerCompare.driveTestPoints);\r\n\t\t\t} else if (formState.values.selectedKpiScannerTechCompare === '2g' && formState.values.kpi2gScannerCompare !== undefined) {\r\n\t\t\t\t_autoZoom(mapTwo.control, driveTestScannerCompare.driveTestPoints);\r\n\t\t\t}\r\n\r\n\t\t\t// Failures\r\n\t\t\tif (formState.values.voiceActiveCompare) {\r\n\t\t\t\t_autoZoom(mapTwo.control, failuresVoiceCompare);\r\n\t\t\t}\r\n\t\t\tif (formState.values.packetActive) {\r\n\t\t\t\t_autoZoom(mapTwo.control, failuresPacketCompare);\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandVoiceActiveCompare) {\r\n\t\t\t\t_autoZoom(mapTwo.control, techBandVoiceCompare.driveTestTechBand);\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandPacketActiveCompare) {\r\n\t\t\t\t_autoZoom(mapTwo.control, techBandPacketCompare.driveTestTechBand);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onSiteIdChange = (value) => {\r\n\t\tlet siteId = null;\r\n\t\tif (value !== null) {\r\n\t\t\tsiteId = value.value;\r\n\t\t}\r\n\t\tdispatch(GetSiteIdLocation(siteId));\r\n\t};\r\n\r\n\tconst _onSummaryClick = (event) => {\r\n\t\tdispatch(ToggleSummaryDialog(true));\r\n\t};\r\n\r\n\tconst _onCarriersColorsClick = (event) => {\r\n\t\tdispatch(ToggleCarriersColorsDialog(true));\r\n\t};\r\n\r\n\tconst cardStyle = {\r\n\t\t// height: '10vh'\r\n\t};\r\n\r\n\tconst filterOptions = createFilterOptions({\r\n\t\tlimit: 20\r\n\t});\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tlabel=\"Dual Map\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"start\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.mapCompare}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeMapCompare}\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=\"Sync\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"start\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.mapSync}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeSync}\r\n\t\t\t\t\t\t\t\tdisabled={!formState.values.mapCompare}\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=\"inv\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"inv\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.inv}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeInv}\r\n\t\t\t\t\t\t\t\tdisabled={!formState.values.mapCompare}\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=\"Auto Zoom\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"start\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.mapAutoZoom}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeMapAutoZoom}\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=\"Filters\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"start\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.mapFilters}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeMapFilters}\r\n\t\t\t\t\t\t\t\tdisabled={!formState.values.mapCompare}\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\tlabel=\"Sync\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"start\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.mapSync}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeSync}\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\tlabel=\"Auto Zoom\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"start\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.mapAutoZoom}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeMapAutoZoom}\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\tAuto zoom\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\tOff\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tOn \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\t\r\n\t\t\t\t\t\t\t option.text}\r\n\t\t\t\t\t\t\t\tonChange={(event, value) => { _onSiteIdChange(value); }}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\t\t\tfilterOptions={filterOptions}\r\n\t\t\t\t\t\t\t/>\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\tCarriers Colors\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\tSummary\r\n\t\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\nCompareBox.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\tonFilter: PropTypes.func.isRequired,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func\r\n};\r\n\r\nexport default CompareBox;\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch\r\n} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport validate from 'validate.js';\r\nimport {\r\n\tClearForm, SetFormState, SetSelectedDates,\r\n\tGetDriveTest, GetDriveTestScanner, GetDriveTestScannerCodes,\r\n\tGetDriveTestsDrives, GetDriveTestsDates, GetFailuresPointsVoice,\r\n\tGetFailuresPointsPacket, GetDriveTestsTechBandVoice, GetDriveTestsTechBandPacket,\r\n\tGetDriveTestSummary, GetScannerRoute, GetScannerRouteCompare\r\n} from '../../actions/FailuresMapActions';\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 FiltersTop = (props) => {\r\n\tconst { className, open, onClose, onFilter, filterDisabled, onClear, mapCompare, ...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.failuresMapReducer.formState);\r\n\tconst cities = useSelector((state) => state.failuresMapReducer.cities);\r\n\tconst drives = useSelector((state) => state.failuresMapReducer.drives);\r\n\tconst dates = useSelector((state) => state.failuresMapReducer.dates);\r\n\tconst selectedDates = useSelector((state) => state.failuresMapReducer.selectedDates);\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 _handleChangeCity = (event) => {\r\n\t\tdispatch(GetDriveTestsDrives(event.target.value));\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[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\tselectedDrive: ''\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\r\n\t\tconst emptyDates = [];\r\n\t\tdispatch(SetSelectedDates(emptyDates));\r\n\t};\r\n\r\n\tconst _handleChangeDrive = (event) => {\r\n\t\tdispatch(GetDriveTestsDates(formState.values.selectedCity, event.target.value));\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[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\r\n\t\tconst emptyDates = [];\r\n\t\tdispatch(SetSelectedDates(emptyDates));\r\n\t};\r\n\r\n\tconst _handleChangeDates = (option) => {\r\n\t\tdispatch(SetSelectedDates(option));\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, option));\r\n\t\tdispatch(GetDriveTestSummary(formState.values.selectedCity, option, formState.values.scenario));\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t// UE\r\n\t\t\tif (formState.values.selectedKpiTech === '4g' && formState.values.kpi4g !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTest(userId, '4g', formState.values.selectedCity, option, formState.values.kpi4g));\r\n\t\t\t} else if (formState.values.selectedKpiTech === '3g' && formState.values.kpi3g !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTest(userId, '3g', formState.values.selectedCity, option, formState.values.kpi3g));\r\n\t\t\t} else if (formState.values.selectedKpiTech === '2g' && formState.values.kpi2g !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTest(userId, '2g', formState.values.selectedCity, option, formState.values.kpi2g));\r\n\t\t\t}\r\n\r\n\t\t\t// Scanner\r\n\t\t\tif (formState.values.selectedKpiScannerTech === '4g' && formState.values.kpi4gScanner !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, option, formState.values.freq4g, formState.values.top4g));\r\n\t\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\t\tuserId, '4g', formState.values.selectedCity, option, formState.values.kpi4gScanner,\r\n\t\t\t\t\tformState.values.freq4g, formState.values.top4g, formState.values.scannerPci\r\n\t\t\t\t));\r\n\t\t\t} else if (formState.values.selectedKpiScannerTech === '3g' && formState.values.kpi3gScanner !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, option, formState.values.freq3g, formState.values.top3g));\r\n\t\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\t\tuserId, '3g', formState.values.selectedCity, option, formState.values.kpi3gScanner,\r\n\t\t\t\t\tformState.values.freq3g, formState.values.top3g, formState.values.scannerSc\r\n\t\t\t\t));\r\n\t\t\t} else if (formState.values.selectedKpiScannerTech === '2g' && formState.values.kpi2gScanner !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, option, formState.values.freq2g, formState.values.top2g));\r\n\t\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\t\tuserId, '2g', formState.values.selectedCity, option, formState.values.kpi2gScanner,\r\n\t\t\t\t\tformState.values.freq2g, formState.values.top2g, formState.values.scannerBsic\r\n\t\t\t\t));\r\n\t\t\t}\r\n\r\n\t\t\t// Failures\r\n\t\t\tif (formState.values.voiceActive) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tGetFailuresPointsVoice(userId, role, formState.values.selectedCity, option, formState.values.failureTypeVoice, formState.values.cfn1LevelVoice)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (formState.values.packetActive) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tGetFailuresPointsPacket(userId, role, formState.values.selectedCity, option, formState.values.failureTypePacket, formState.values.cfn1LevelPacket)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandVoiceActive) {\r\n\t\t\t\tdispatch(GetDriveTestsTechBandVoice(formState.values.selectedCity, option, userId));\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandPacketActive) {\r\n\t\t\t\tdispatch(GetDriveTestsTechBandPacket(formState.values.selectedCity, option, userId));\r\n\t\t\t}\r\n\r\n\t\t\t// Scanner Route\r\n\t\t\tif (formState.values.scannerRoute) {\r\n\t\t\t\tdispatch(GetScannerRoute(userId, formState.values.selectedCity, option));\r\n\t\t\t}\r\n\t\t}, 1000);\r\n\t};\r\n\r\n\tconst cardStyle = {\r\n\t\t// height: '10vh'\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\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 option.text}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\t\t\tonChange={(event, value) => { _handleChangeDates(value); }}\r\n\t\t\t\t\t\t\t\trenderTags={(value, getTagProps) => value.slice(0, 2).map((option, index) => option.text).join(', ')}\r\n\t\t\t\t\t\t\t\trenderOption={(option, { selected }) => (\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\tcheckedIcon={}\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginRight: 4 }}\r\n\t\t\t\t\t\t\t\t\t\t\tchecked={!!(selected || _.findWhere(selectedDates, option) !== undefined)}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t{option.text}\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\tmultiple\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\nFiltersTop.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\tonFilter: PropTypes.func.isRequired,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func,\r\n\tmapCompare: PropTypes.bool\r\n};\r\n\r\nexport default FiltersTop;\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch\r\n} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport validate from 'validate.js';\r\nimport {\r\n\tClearForm, SetFormState, SetSelectedDatesCompare,\r\n\tGetDriveTestCompare, GetDriveTestScannerCompare, GetDriveTestScannerCodesCompare,\r\n\tGetDriveTestsDrivesCompare, GetDriveTestsDatesCompare, GetFailuresPointsVoiceCompare,\r\n\tGetFailuresPointsPacketCompare, GetDriveTestsTechBandVoiceCompare, GetDriveTestsTechBandPacketCompare,\r\n\tGetDriveTestSummaryCompare, GetScannerRouteCompare\r\n} from '../../actions/FailuresMapActions';\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 FiltersTopCompare = (props) => {\r\n\tconst { className, open, onClose, onFilter, filterDisabled, onClear, mapCompare, ...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.failuresMapReducer.formState);\r\n\tconst cities = useSelector((state) => state.failuresMapReducer.citiesCompare);\r\n\tconst drives = useSelector((state) => state.failuresMapReducer.drivesCompare);\r\n\tconst dates = useSelector((state) => state.failuresMapReducer.datesCompare);\r\n\tconst selectedDates = useSelector((state) => state.failuresMapReducer.selectedDatesCompare);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\t// const _handleChangeCity = (event) => {\r\n\t// \tdispatch(GetDriveTestsDrivesCompare(event.target.value));\r\n\t// \tsetFormState({\r\n\t// \t\t...formState,\r\n\t// \t\tvalues: {\r\n\t// \t\t\t...formState.values,\r\n\t// \t\t\t[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\tselectedDriveCompare: ''\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\r\n\t// \tconst emptyDates = [];\r\n\t// \tdispatch(SetSelectedDatesCompare(emptyDates));\r\n\t// };\r\n\r\n\tuseMemo(() => {\r\n\t\tdispatch(GetDriveTestsDrivesCompare(formState.values.selectedCity));\r\n\t}, [formState.values.selectedCity]);\r\n\r\n\tconst _handleChangeDrive = (event) => {\r\n\t\tdispatch(GetDriveTestsDatesCompare(formState.values.selectedCity, event.target.value));\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[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\r\n\t\tconst emptyDates = [];\r\n\t\tdispatch(SetSelectedDatesCompare(emptyDates));\r\n\t};\r\n\r\n\tconst _handleChangeDates = (option) => {\r\n\t\tdispatch(SetSelectedDatesCompare(option));\r\n\r\n\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, option));\r\n\t\tdispatch(GetDriveTestSummaryCompare(formState.values.selectedCity, option, formState.values.scenario));\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t// UE\r\n\t\t\tif (formState.values.selectedKpiTechCompare === '4g' && formState.values.kpi4gCompare !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestCompare(userId, '4g', formState.values.selectedCity, option, formState.values.kpi4gCompare));\r\n\t\t\t} else if (formState.values.selectedKpiTechCompare === '3g' && formState.values.kpi3gCompare !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestCompare(userId, '3g', formState.values.selectedCity, option, formState.values.kpi3gCompare));\r\n\t\t\t} else if (formState.values.selectedKpiTechCompare === '2g' && formState.values.kpi2gCompare !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestCompare(userId, '2g', formState.values.selectedCity, option, formState.values.kpi2gCompare));\r\n\t\t\t}\r\n\r\n\t\t\t// Scanner\r\n\t\t\tif (formState.values.selectedKpiScannerTechCompare === '4g' && formState.values.kpi4gScannerCompare !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, option, formState.values.freq4gCompare, formState.values.top4gCompare));\r\n\t\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\t\tuserId, '4g', formState.values.selectedCity, option, formState.values.kpi4gScannerCompare,\r\n\t\t\t\t\tformState.values.freq4gCompare, formState.values.top4gCompare, formState.values.scannerPciCompare\r\n\t\t\t\t));\r\n\t\t\t} else if (formState.values.selectedKpiScannerTechCompare === '3g' && formState.values.kpi3gScannerCompare !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, option, formState.values.freq3gCompare, formState.values.top3gCompare));\r\n\t\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\t\tuserId, '3g', formState.values.selectedCity, option, formState.values.kpi3gScannerCompare,\r\n\t\t\t\t\tformState.values.freq3gCompare, formState.values.top3gCompare, formState.values.scannerScCompare\r\n\t\t\t\t));\r\n\t\t\t} else if (formState.values.selectedKpiScannerTechCompare === '2g' && formState.values.kpi2gScannerCompare !== undefined) {\r\n\t\t\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, option, formState.values.freq2gCompare, formState.values.top2gCompare));\r\n\t\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\t\tuserId, '2g', formState.values.selectedCity, option, formState.values.kpi2gScannerCompare,\r\n\t\t\t\t\tformState.values.freq2gCompare, formState.values.top2gCompare, formState.values.scannerBsicCompare\r\n\t\t\t\t));\r\n\t\t\t}\r\n\r\n\t\t\t// Failures\r\n\t\t\tif (formState.values.voiceActiveCompare) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tGetFailuresPointsVoiceCompare(userId, role, formState.values.selectedCity, option, formState.values.failureTypeVoiceCompare, formState.values.cfn1LevelVoiceCompare)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (formState.values.packetActiveCompare) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tGetFailuresPointsPacketCompare(userId, role, formState.values.selectedCity, option, formState.values.failureTypePacketCompare, formState.values.cfn1LevelPacketCompare)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandVoiceActiveCompare) {\r\n\t\t\t\tdispatch(GetDriveTestsTechBandVoiceCompare(formState.values.selectedCity, option, userId));\r\n\t\t\t}\r\n\t\t\tif (formState.values.techBandPacketActiveCompare) {\r\n\t\t\t\tdispatch(GetDriveTestsTechBandPacketCompare(formState.values.selectedCity, option, userId));\r\n\t\t\t}\r\n\r\n\t\t\t// Scanner Route\r\n\t\t\tif (formState.values.scannerRouteCompare) {\r\n\t\t\t\tdispatch(GetScannerRouteCompare(userId, formState.values.selectedCity, option));\r\n\t\t\t}\r\n\t\t}, 1000);\r\n\t};\r\n\r\n\tconst cardStyle = {\r\n\t\t// height: '10vh'\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\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 option.text}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => }\r\n\t\t\t\t\t\t\t\tonChange={(event, value) => { _handleChangeDates(value); }}\r\n\t\t\t\t\t\t\t\trenderTags={(value, getTagProps) => value.slice(0, 2).map((option, index) => option.text).join(', ')}\r\n\t\t\t\t\t\t\t\trenderOption={(option, { selected }) => (\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\tcheckedIcon={}\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginRight: 4 }}\r\n\t\t\t\t\t\t\t\t\t\t\tchecked={!!(selected || _.findWhere(selectedDates, option) !== undefined)}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t{option.text}\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\tmultiple\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\nFiltersTopCompare.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\tonFilter: PropTypes.func.isRequired,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func,\r\n\tmapCompare: PropTypes.bool\r\n};\r\n\r\nexport default FiltersTopCompare;\r\n","import React, { useEffect, useCallback, useMemo, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport _, { object } from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport L from 'leaflet';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid,\r\n\tListItemText, ListItemIcon, ListItem, ListSubheader,\r\n\tList, FormGroup\r\n} from '@material-ui/core';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport validate from 'validate.js';\r\nimport InboxIcon from '@material-ui/icons/MoveToInbox';\r\nimport PhoneAndroidIcon from '@material-ui/icons/PhoneAndroid';\r\nimport ScannerIcon from '@material-ui/icons/Scanner';\r\nimport SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna';\r\nimport AppsIcon from '@material-ui/icons/Apps';\r\nimport BubbleChartIcon from '@material-ui/icons/BubbleChart';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport StarBorder from '@material-ui/icons/StarBorder';\r\nimport {\r\n\tSetFormState, GetDriveTest, GetDriveTestScanner,\r\n\tGetFailuresPointsVoice, GetFailuresPointsPacket, GetTopology2g,\r\n\tGetTopology3g, GetTopology4g, GetTopology5g, GetDriveTestsTechBandVoice,\r\n\tGetDriveTestsTechBandPacket, GetTopologyLabels2g, GetTopologyLabels3g,\r\n\tGetTopologyLabels4g, GetTopologyLabels5g, GetDriveTestScannerCodes, GetScannerRoute\r\n} from '../../actions/FailuresMapActions';\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\t// Filter child\r\n\t// root: {\r\n\t// \twidth: '100%',\r\n\t// \tmaxWidth: 360,\r\n\t// \tbackgroundColor: theme.palette.background.paper,\r\n\t// },\r\n\tnested: {\r\n\t\tpaddingLeft: theme.spacing(4),\r\n\t},\r\n\tnestedTwo: {\r\n\t\tpaddingLeft: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst bands2g = [];\r\nconst bands3g = [];\r\nconst bands4g = [];\r\nconst bands5g = [];\r\n\r\nconst FiltersSide = (props) => {\r\n\tconst { className, onClose, onFilter, filterDisabled, onClear, height, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\r\n\t// const failures = useSelector(state => state.failuresMapReducer.failures;\r\n\t// Map\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst formState = useSelector((state) => state.failuresMapReducer.formState);\r\n\tconst mapOne = maps.filter(item => item.id === 'failures-map')[0];\r\n\tconst selectedDates = useSelector((state) => state.failuresMapReducer.selectedDates);\r\n\tconst failuresFilters = useSelector(state => state.failuresMapReducer.failuresFilters);\r\n\tconst failuresVoice = useSelector(state => state.failuresMapReducer.failuresVoice);\r\n\tconst failuresPacket = useSelector(state => state.failuresMapReducer.failuresPacket);\r\n\tconst topology2gData = useSelector(state => state.failuresMapReducer.topology2gData);\r\n\tconst topology3gData = useSelector(state => state.failuresMapReducer.topology3gData);\r\n\tconst topology4gData = useSelector(state => state.failuresMapReducer.topology4gData);\r\n\tconst topology5gData = useSelector(state => state.failuresMapReducer.topology5gData);\r\n\tconst topologyLabels2gData = useSelector(state => state.failuresMapReducer.topologyLabels2gData);\r\n\tconst topologyLabels3gData = useSelector(state => state.failuresMapReducer.topologyLabels3gData);\r\n\tconst topologyLabels4gData = useSelector(state => state.failuresMapReducer.topologyLabels4gData);\r\n\tconst topologyLabels5gData = useSelector(state => state.failuresMapReducer.topologyLabels5gData);\r\n\tconst techBandVoice = useSelector(state => state.failuresMapReducer.techBandVoice);\r\n\tconst techBandPacket = useSelector(state => state.failuresMapReducer.techBandPacket);\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 driveTestScannerCodes = useSelector(state => state.failuresMapReducer.driveTestScannerCodes);\r\n\r\n\t// Topology\r\n\tconst [openTopology, setOpenTopology] = React.useState(false);\r\n\tconst [openTopology5g, setOpenTopology5g] = React.useState(false);\r\n\tconst [openTopology4g, setOpenTopology4g] = React.useState(false);\r\n\tconst [openTopology3g, setOpenTopology3g] = React.useState(false);\r\n\tconst [openTopology2g, setOpenTopology2g] = React.useState(false);\r\n\r\n\t// UE\r\n\tconst [openUe, setOpenUe] = React.useState(false);\r\n\tconst [open4g, setOpen4g] = React.useState(false);\r\n\tconst [open3g, setOpen3g] = React.useState(false);\r\n\tconst [open2g, setOpen2g] = React.useState(false);\r\n\tconst [commonMenu, setCommonMenu] = React.useState(false);\r\n\tconst [openEvents, setOpenEvents] = React.useState(false);\r\n\tconst [openEventsVoice, setOpenEventsVoice] = React.useState(false);\r\n\tconst [openEventsPacket, setOpenEventsPacket] = React.useState(false);\r\n\r\n\t// Scanner\r\n\tconst [openScanner, setOpenScanner] = React.useState(false);\r\n\tconst [openScanner4g, setOpenScanner4g] = React.useState(false);\r\n\tconst [openScanner3g, setOpenScanner3g] = React.useState(false);\r\n\tconst [openScanner2g, setOpenScanner2g] = React.useState(false);\r\n\tconst [commonScannerMenu, setCommonScannerMenu] = React.useState(false);\r\n\r\n\tconst [state, setState] = React.useState({\r\n\t\ttechBandVoiceSelection: false,\r\n\t\ttechBandPacketSelection: false,\r\n\t\tvoice: false,\r\n\t\tpacket: false,\r\n\t\ttopology2g900: false,\r\n\t\ttopology2g1800: false,\r\n\t\ttopologyLabels2g: false,\r\n\t\ttopology3g900: false,\r\n\t\ttopology3g2100: false,\r\n\t\ttopologyLabels3g: false,\r\n\t\ttopology4g800: false,\r\n\t\ttopology4g2100: false,\r\n\t\ttopology4g2600: false,\r\n\t\ttopologyLabels4g: false,\r\n\t\ttopology5g78: false,\r\n\t\ttopologyLabels5g: false\r\n\t});\r\n\r\n\tconst {\r\n\t\ttechBandVoiceSelection, techBandPacketSelection,\r\n\t\tvoice, packet,\r\n\t\ttopology2g900, topology2g1800, topologyLabels2g,\r\n\t\ttopology3g900, topology3g2100, topologyLabels3g,\r\n\t\ttopology4g800, topology4g2100, topology4g2600, topologyLabels4g,\r\n\t\ttopology5g78, topologyLabels5g\r\n\t} = state;\r\n\r\n\tconst [value4g, setValue4g] = React.useState('none');\r\n\tconst [value3g, setValue3g] = React.useState('none');\r\n\tconst [value2g, setValue2g] = React.useState('none');\r\n\r\n\t// Scanner\r\n\tconst [valueScanner4g, setValueScanner4g] = React.useState('none');\r\n\tconst [valueScanner3g, setValueScanner3g] = React.useState('none');\r\n\tconst [valueScanner2g, setValueScanner2g] = React.useState('none');\r\n\r\n\t// Topology\r\n\tconst handleClickTopology = () => {\r\n\t\tsetOpenTopology(!openTopology);\r\n\t};\r\n\tconst handleClickTopology5g = () => {\r\n\t\tsetOpenTopology5g(!openTopology5g);\r\n\t};\r\n\tconst handleClickTopology4g = () => {\r\n\t\tsetOpenTopology4g(!openTopology4g);\r\n\t};\r\n\tconst handleClickTopology3g = () => {\r\n\t\tsetOpenTopology3g(!openTopology3g);\r\n\t};\r\n\tconst handleClickTopology2g = () => {\r\n\t\tsetOpenTopology2g(!openTopology2g);\r\n\t};\r\n\r\n\t// UE\r\n\tconst handleClickUe = () => {\r\n\t\tsetOpenUe(!openUe);\r\n\t};\r\n\tconst handleClick4g = () => {\r\n\t\tsetOpen4g(!open4g);\r\n\t};\r\n\tconst handleClick3g = () => {\r\n\t\tsetOpen3g(!open3g);\r\n\t};\r\n\tconst handleClick2g = () => {\r\n\t\tsetOpen2g(!open2g);\r\n\t};\r\n\tconst handleCommonMenu = () => {\r\n\t\tsetCommonMenu(!commonMenu);\r\n\t};\r\n\tconst handleClickEvents = () => {\r\n\t\tsetOpenEvents(!openEvents);\r\n\t};\r\n\tconst handleClickEventsVoice = () => {\r\n\t\tsetOpenEventsVoice(!openEventsVoice);\r\n\t};\r\n\tconst handleClickEventsPacket = () => {\r\n\t\tsetOpenEventsPacket(!openEventsPacket);\r\n\t};\r\n\r\n\t// Scanner\r\n\tconst handleClickScanner = () => {\r\n\t\tsetOpenScanner(!openScanner);\r\n\t};\r\n\tconst handleClickScanner4g = () => {\r\n\t\tsetOpenScanner4g(!openScanner4g);\r\n\t};\r\n\tconst handleClickScanner3g = () => {\r\n\t\tsetOpenScanner3g(!openScanner3g);\r\n\t};\r\n\tconst handleClickScanner2g = () => {\r\n\t\tsetOpenScanner2g(!openScanner2g);\r\n\t};\r\n\tconst handleCommonScannerMenu = () => {\r\n\t\tsetCommonScannerMenu(!commonScannerMenu);\r\n\t};\r\n\r\n\tconst _removeLayerById = (map, id) => {\r\n\t\tmap.RemoveLayerById(id);\r\n\t};\r\n\r\n\tconst handleChangeType = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tif (event.target.name === 'voice' && event.target.checked) {\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\tvoiceActive: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsVoice(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypeVoice, formState.values.cfn1LevelVoice)\r\n\t\t\t);\r\n\t\t} else if (event.target.name === 'voice' && !event.target.checked) {\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\tvoiceActive: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'voice');\r\n\t\t} else if (event.target.name === 'packet' && event.target.checked) {\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\tpacketActive: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsPacket(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypePacket, formState.values.cfn1LevelPacket)\r\n\t\t\t);\r\n\t\t} else if (event.target.name === 'packet' && !event.target.checked) {\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\tpacketActive: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'packet');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology2g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\r\n\t\t// console.log(\r\n\t\t// \t`center:${_map.getCenter()}\\n`\r\n\t\t// \t+ `width:${width}\\n`\r\n\t\t// \t+ `height:${height}\\n`\r\n\t\t// \t+ `size in pixels:${_map.getSize()}`\r\n\t\t// );\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology2g900' && event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('900');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands2g.push('900');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2g(userId, bands2g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels2g) {\r\n\t\t\t\tdispatch(GetTopologyLabels2g(userId, bands2g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology2g900' && !event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('900');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands2g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2g(userId, bands2g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels2g(userId, bands2g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology2g1800' && event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('1800');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands2g.push('1800');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2g(userId, bands2g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels2g) {\r\n\t\t\t\tdispatch(GetTopologyLabels2g(userId, bands2g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology2g1800' && !event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('1800');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands2g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2g(userId, bands2g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels2g(userId, bands2g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology3g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology3g900' && event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('900');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands3g.push('900');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3g(userId, bands3g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels3g) {\r\n\t\t\t\tdispatch(GetTopologyLabels3g(userId, bands3g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology3g900' && !event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('900');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands3g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3g(userId, bands3g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels3g(userId, bands3g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology3g2100' && event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('2100');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands3g.push('2100');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3g(userId, bands3g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels3g) {\r\n\t\t\t\tdispatch(GetTopologyLabels3g(userId, bands3g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology3g2100' && !event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('2100');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands3g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3g(userId, bands3g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels3g(userId, bands3g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology4g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\t\tconst zoom = _map.getZoom();\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\t// console.log(mapBounds);\r\n\t\t// console.log(zoom);\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology4g800' && event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('800');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands4g.push('800');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels4g) {\r\n\t\t\t\tdispatch(GetTopologyLabels4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology4g800' && !event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('800');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands4g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels4g(userId, bands4g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology4g2100' && event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2100');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands4g.push('2100');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels4g) {\r\n\t\t\t\tdispatch(GetTopologyLabels4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology4g2100' && !event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2100');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands4g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels4g(userId, bands4g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology4g2600' && event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2600');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands4g.push('2600');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels4g) {\r\n\t\t\t\tdispatch(GetTopologyLabels4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology4g2600' && !event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2600');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands4g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4g(userId, bands4g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels4g(userId, bands4g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology5g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\t\tconst zoom = _map.getZoom();\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\t// console.log(mapBounds);\r\n\t\t// console.log(zoom);\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology5g78' && event.target.checked) {\r\n\t\t\tconst index = bands5g.indexOf('78');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands5g.push('78');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology5g(userId, bands5g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels5g) {\r\n\t\t\t\tdispatch(GetTopologyLabels5g(userId, bands5g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology5g78' && !event.target.checked) {\r\n\t\t\tconst index = bands5g.indexOf('78');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands5g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology5g(userId, bands5g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels5g(userId, bands5g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopologyLabels = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\r\n\t\tconst mapBounds = mapOne.control.mapContext.map.getBounds();\r\n\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\tif (event.target.name === 'topologyLabels2g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels2g(userId, bands2g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels2g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels2g');\r\n\t\t} else if (event.target.name === 'topologyLabels3g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels3g(userId, bands3g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels3g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels3g');\r\n\t\t} else if (event.target.name === 'topologyLabels4g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels4g(userId, bands4g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels4g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels4g');\r\n\t\t} else if (event.target.name === 'topologyLabels5g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels5g(userId, bands5g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels5g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels5g');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTechBand = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tif (event.target.name === 'techBandVoiceSelection' && event.target.checked) {\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\ttechBandVoiceActive: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(GetDriveTestsTechBandVoice(formState.values.selectedCity, selectedDates, userId));\r\n\t\t} else if (event.target.name === 'techBandVoiceSelection' && !event.target.checked) {\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\ttechBandVoiceActive: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'techBandVoice');\r\n\t\t\tif (!formState.values.techBandPacketActive) {\r\n\t\t\t\tdispatch(onUpdateLegend({ id: mapOne.control.mapContext.id, newLegend: '' }));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'techBandPacketSelection' && event.target.checked) {\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\ttechBandPacketActive: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(GetDriveTestsTechBandPacket(formState.values.selectedCity, selectedDates, userId));\r\n\t\t} else if (event.target.name === 'techBandPacketSelection' && !event.target.checked) {\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\ttechBandPacketActive: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'techBandPacket');\r\n\t\t\tif (!formState.values.techBandVoiceActive) {\r\n\t\t\t\tdispatch(onUpdateLegend({ id: mapOne.control.mapContext.id, newLegend: '' }));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeRoute = (event) => {\r\n\t\tif (event.target.checked && selectedDates.length > 0) {\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\tscannerRoute: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(GetScannerRoute(userId, formState.values.selectedCity, selectedDates));\r\n\t\t} else {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\tscannerRoute: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'scannerRoute');\r\n\t\t}\r\n\t};\r\n\r\n\tconst makeDetailsTable = (item) => {\r\n\t\tconst table = `\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
Failure Id: ${item.failureId}
Failure Type: ${item.failureType}
CFN 1 Level: ${item.cfn1Level}
CFN 2 Level: ${item.cfn2Level}
CFN 3 Level: ${item.cfn3Level}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst makeDetailsTableTopology = (item) => {\r\n\t\tconst table = `\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\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\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\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\r\n\t\t\t\t\t
Node Id: ${item.id}
Node Name: ${item.name}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst makeDetailsTechBandKpi = (item) => {\r\n\t\tconst table = `\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\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\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\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\r\n\t\t\t\t\t
Tech: ${item.tech}
Band: ${item.band}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst _addLayerFailures = (map, data, type, fitBounds) => {\r\n\t\tmap.RemoveLayerById(type);\r\n\t\tconst markers = [];\r\n\r\n\t\tconst voiceIconBlocked = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicecallattempt_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconBlockedQoe = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoiceblockcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDropped = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicedropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDroppedQoe = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventsvoicedropcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst packetIcondrop = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventspacketdropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -32] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tdata.forEach(item => {\r\n\t\t\t\tif (type.includes('voice')) {\r\n\t\t\t\t\tif (item.failureType === 'Blocked Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlocked });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'QoE Call Setup Time') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlockedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'Dropped Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDropped });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDroppedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: packetIcondrop });\r\n\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: type });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst _addLayerTechBandKpi = (map, data, legend, fitBounds, layerName) => {\r\n\t\tmap.RemoveLayerById(layerName);\r\n\t\tconst markers = [];\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tdata.forEach(item => {\r\n\t\t\t\tconst marker = L.circle([item.latitude, item.longitude], {\r\n\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\tfillColor: item.color,\r\n\t\t\t\t\tfillOpacity: 0.8,\r\n\t\t\t\t\tradius: 10\r\n\t\t\t\t});\r\n\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTechBandKpi(item)}
`, { autoPan: false }));\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: layerName });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t\tdispatch(onUpdateLegend({ id: map.mapContext.id, newLegend: legend }));\r\n\t\t}\r\n\t};\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerFailures(mapOne.control, failuresVoice, 'voice', formState.values.mapAutoZoom);\r\n\t\t}\r\n\t}, [failuresVoice]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerFailures(mapOne.control, failuresPacket, 'packet', formState.values.mapAutoZoom);\r\n\t\t}\r\n\t}, [failuresPacket]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology2gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology2g(topology2gData.topology2gDto, 'topology2g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology2gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels2gData.length !== 0 && topologyLabels2g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels2gData.topologyLabels2gDto, 'topologyLabels2g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels2gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology3gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology3g(topology3gData.topology3gDto, 'topology3g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology3gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels3gData.length !== 0 && topologyLabels3g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels3gData.topologyLabels3gDto, 'topologyLabels3g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels3gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology4gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology4g(topology4gData.topology4gDto, 'topology4g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology4gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels4gData.length !== 0 && topologyLabels4g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels4gData.topologyLabels4gDto, 'topologyLabels4g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels4gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology5gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology5g(topology5gData.topology5gDto, 'topology5g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology5gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels5gData.length !== 0 && topologyLabels5g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels5gData.topologyLabels5gDto, 'topologyLabels5g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels5gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerTechBandKpi(mapOne.control, techBandVoice.driveTestTechBand, techBandVoice.driveTestTechBandLegend, formState.values.mapAutoZoom, 'techBandVoice');\r\n\t\t}\r\n\t}, [techBandVoice]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerTechBandKpi(mapOne.control, techBandPacket.driveTestTechBand, techBandPacket.driveTestTechBandLegend, formState.values.mapAutoZoom, 'techBandPacket');\r\n\t\t}\r\n\t}, [techBandPacket]);\r\n\r\n\t// UE\r\n\tconst handleChange4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g(event.target.value);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiTech: '4g',\r\n\t\t\t\tselectedKpiScannerTech: undefined,\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTest(userId, '4g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChange3g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g(event.target.value);\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiTech: '3g',\r\n\t\t\t\tselectedKpiScannerTech: undefined,\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTest(userId, '3g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChange2g = (event) => {\r\n\t\tsetValue2g(event.target.value);\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiTech: '2g',\r\n\t\t\t\tselectedKpiScannerTech: undefined,\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTest(userId, '2g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\t// Scanner\r\n\tconst handleChangeScanner4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g(event.target.value);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiScannerTech: '4g',\r\n\t\t\t\tselectedKpiTech: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tif (formState.values.freq4g !== '') {\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\t\tformState.values.freq4g, formState.values.top4g, formState.values.scannerPci\r\n\t\t\t));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeScanner3g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g(event.target.value);\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiScannerTech: '3g',\r\n\t\t\t\tselectedKpiTech: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tif (formState.values.freq3g !== '') {\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\t\tformState.values.freq3g, formState.values.top3g, formState.values.scannerSc\r\n\t\t\t));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeScanner2g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g(event.target.value);\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiScannerTech: '2g',\r\n\t\t\t\tselectedKpiTech: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tif (formState.values.freq2g !== '') {\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\t\tformState.values.freq2g, formState.values.top2g, formState.values.scannerBsic\r\n\t\t\t));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleChangeFailuresFilters = (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});\r\n\t};\r\n\r\n\tconst _voiceFilter = useCallback(() => {\r\n\t\tdispatch(\r\n\t\t\tGetFailuresPointsVoice(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypeVoice, formState.values.cfn1LevelVoice)\r\n\t\t);\r\n\t}, [formState.values.failureTypeVoice, formState.values.cfn1LevelVoice]);\r\n\r\n\tconst _packetFilter = useCallback(() => {\r\n\t\tdispatch(\r\n\t\t\tGetFailuresPointsPacket(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypePacket, formState.values.cfn1LevelPacket)\r\n\t\t);\r\n\t}, [formState.values.failureTypePacket, formState.values.cfn1LevelPacket]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (formState.values.voiceActive) {\r\n\t\t\t_voiceFilter();\r\n\t\t}\r\n\t\tif (formState.values.packetActive) {\r\n\t\t\t_packetFilter();\r\n\t\t}\r\n\t}, [formState.values.failureTypeVoice, formState.values.cfn1LevelVoice, formState.values.failureTypePacket, formState.values.cfn1LevelPacket]);\r\n\r\n\tconst cardStyle = {\r\n\t\theight,\r\n\t\toverflow: 'auto'\r\n\t};\r\n\r\n\tconst frequencies4g = [\r\n\t\t{ value: '323', text: 323 },\r\n\t\t{ value: '347', text: 347 },\r\n\t\t{ value: '1288', text: 1288 },\r\n\t\t{ value: '2850', text: 2850 },\r\n\t\t{ value: '6300', text: 6300 }\r\n\t];\r\n\r\n\tconst frequencies3g = [\r\n\t\t{ value: '2938', text: 2938 },\r\n\t\t{ value: '3012', text: 3012 },\r\n\t\t{ value: '10687', text: 10687 },\r\n\t\t{ value: '10712', text: 10712 }\r\n\t];\r\n\r\n\tconst frequencies2g = [\r\n\t\t{ value: '1', text: 1 },\r\n\t\t{ value: '2', text: 2 },\r\n\t\t{ value: '3', text: 3 },\r\n\t\t{ value: '4', text: 4 },\r\n\t\t{ value: '5', text: 5 },\r\n\t\t{ value: '6', text: 6 },\r\n\t\t{ value: '7', text: 7 },\r\n\t\t{ value: '8', text: 8 },\r\n\t\t{ value: '9', text: 9 },\r\n\t\t{ value: '10', text: 10 },\r\n\t];\r\n\r\n\tconst topList = [\r\n\t\t{ value: 'all', text: 'All' },\r\n\t\t{ value: '1', text: 1 },\r\n\t\t{ value: '2', text: 2 },\r\n\t\t{ value: '3', text: 3 },\r\n\t\t{ value: '4', text: 4 },\r\n\t\t{ value: '5', text: 5 },\r\n\t\t{ value: '6', text: 6 }\r\n\t];\r\n\r\n\tconst _handleChangeFrequency4g = (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\tselectedKpiScannerTech: '4g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, selectedDates, event.target.value, formState.values.top4g));\r\n\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpi4gScanner,\r\n\t\t\tevent.target.value, formState.values.top4g, formState.values.scannerPci\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeFrequency3g = (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\tselectedKpiScannerTech: '3g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, selectedDates, event.target.value, formState.values.top3g));\r\n\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpi3gScanner,\r\n\t\t\tevent.target.value, formState.values.top3g, formState.values.scannerSc\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeFrequency2g = (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\tselectedKpiScannerTech: '2g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, selectedDates, event.target.value, formState.values.top2g));\r\n\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpi2gScanner,\r\n\t\t\tevent.target.value, formState.values.top2g, formState.values.scannerBsic\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeTop4g = (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\tselectedKpiScannerTech: '4g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, selectedDates, formState.values.freq4g, event.target.value));\r\n\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpi4gScanner,\r\n\t\t\tformState.values.freq4g, event.target.value, formState.values.scannerPci\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeTop3g = (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\tselectedKpiScannerTech: '3g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, selectedDates, formState.values.freq3g, event.target.value));\r\n\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpi3gScanner,\r\n\t\t\tformState.values.freq3g, event.target.value, formState.values.scannerSc\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeTop2g = (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\tselectedKpiScannerTech: '2g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes(userId, formState.values.selectedCity, selectedDates, formState.values.freq2g, event.target.value));\r\n\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpi2gScanner,\r\n\t\t\tformState.values.freq2g, event.target.value, formState.values.scannerBsic\r\n\t\t));\r\n\t};\r\n\tconst _handleChangePci = (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\tselectedKpiScannerTech: '4g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpi4gScanner,\r\n\t\t\tformState.values.freq4g, formState.values.top4g, event.target.value\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeSc = (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\tselectedKpiScannerTech: '3g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpi3gScanner,\r\n\t\t\tformState.values.freq3g, formState.values.top3g, event.target.value\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeBsic = (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\tselectedKpiScannerTech: '2g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpi2gScanner,\r\n\t\t\tformState.values.freq2g, formState.values.top2g, event.target.value\r\n\t\t));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\tLayers\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t// \t\tNested List Items\r\n\t\t\t\t\t\t// \t\r\n\t\t\t\t\t\t// )}\r\n\t\t\t\t\t\tclassName={classes.root}\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{openTopology ? : }\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\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{openTopology2g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"G900\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"G1800\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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\r\n\t\t\t\t\t\t\t\t\t{openTopology3g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"U900\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"U2100\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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\r\n\t\t\t\t\t\t\t\t\t{openTopology4g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"L800\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"L2100\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"L2600\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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\r\n\t\t\t\t\t\t\t\t\t{openTopology5g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"N78\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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{openUe ? : }\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\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{open2g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RxLev\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RxQual\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/* } label=\"BSIC\" /> */}\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\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{open3g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSCP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Ec/Io\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/* } label=\"SC\" /> */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP UL\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP DL\" />\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\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{open4g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRQ\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SINR Voice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SINR Packet\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"MOS SWB\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"PCI Pollution\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Rank\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"CQI CW0\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"CQI CW1\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"BLER\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP UL\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP DL\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP DL < 4\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TM\" />\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\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{commonMenu ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{openEvents ? : }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{openEventsVoice ? : }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Show\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{openEventsPacket ? : }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Show\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Tech Band Voice\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Tech Band Packet\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Voice Events\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Packet Events\"\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\t{/* \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t// \t\tNested List Items\r\n\t\t\t\t\t\t// \t\r\n\t\t\t\t\t\t// )}\r\n\t\t\t\t\t\tclassName={classes.root}\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{openScanner ? : }\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\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{openScanner2g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSSI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"BSIC\" />\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\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{openScanner3g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSCP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Ec/Io\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SIR\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SC\" />\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\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{openScanner4g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRQ\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"CINR\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"PCI\" />\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\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{commonScannerMenu ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Route\"\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
\r\n\t);\r\n};\r\n\r\nFiltersSide.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\tonFilter: PropTypes.func.isRequired,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func,\r\n\theight: PropTypes.string\r\n};\r\n\r\nexport default FiltersSide;\r\n","import React, { useEffect, useCallback, useMemo, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport _, { object } from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport L from 'leaflet';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid,\r\n\tListItemText, ListItemIcon, ListItem, ListSubheader,\r\n\tList, FormGroup\r\n} from '@material-ui/core';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport validate from 'validate.js';\r\nimport InboxIcon from '@material-ui/icons/MoveToInbox';\r\nimport PhoneAndroidIcon from '@material-ui/icons/PhoneAndroid';\r\nimport ScannerIcon from '@material-ui/icons/Scanner';\r\nimport SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna';\r\nimport AppsIcon from '@material-ui/icons/Apps';\r\nimport BubbleChartIcon from '@material-ui/icons/BubbleChart';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport StarBorder from '@material-ui/icons/StarBorder';\r\nimport {\r\n\tSetFormState, GetDriveTestCompare, GetDriveTestScannerCompare,\r\n\tGetFailuresPointsVoiceCompare, GetFailuresPointsPacketCompare, GetTopology2gCompare,\r\n\tGetTopology3gCompare, GetTopology4gCompare, GetTopology5gCompare, GetDriveTestsTechBandVoiceCompare,\r\n\tGetDriveTestsTechBandPacketCompare, GetTopologyLabels2gCompare, GetTopologyLabels3gCompare,\r\n\tGetTopologyLabels4gCompare, GetTopologyLabels5gCompare, GetDriveTestScannerCodesCompare, GetScannerRouteCompare\r\n} from '../../actions/FailuresMapActions';\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\t// Filter child\r\n\t// root: {\r\n\t// \twidth: '100%',\r\n\t// \tmaxWidth: 360,\r\n\t// \tbackgroundColor: theme.palette.background.paper,\r\n\t// },\r\n\tnested: {\r\n\t\tpaddingLeft: theme.spacing(4),\r\n\t},\r\n\tnestedTwo: {\r\n\t\tpaddingLeft: theme.spacing(2),\r\n\t},\r\n}));\r\nconst bands2g = [];\r\nconst bands3g = [];\r\nconst bands4g = [];\r\nconst bands5g = [];\r\n\r\nconst FiltersSideCompare = (props) => {\r\n\tconst { className, onClose, onFilter, filterDisabled, onClear, height, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\r\n\t// const failures = useSelector(state => state.failuresMapReducer.failures;\r\n\t// Map\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst formState = useSelector((state) => state.failuresMapReducer.formState);\r\n\tconst mapOne = maps.filter(item => item.id === 'failures-map-compare')[0];\r\n\tconst selectedDates = useSelector((state) => state.failuresMapReducer.selectedDatesCompare);\r\n\tconst failuresFilters = useSelector(state => state.failuresMapReducer.failuresFiltersSideCompare);\r\n\tconst failuresVoice = useSelector(state => state.failuresMapReducer.failuresVoiceCompare);\r\n\tconst failuresPacket = useSelector(state => state.failuresMapReducer.failuresPacketCompare);\r\n\tconst topology2gData = useSelector(state => state.failuresMapReducer.topology2gDataCompare);\r\n\tconst topology3gData = useSelector(state => state.failuresMapReducer.topology3gDataCompare);\r\n\tconst topology4gData = useSelector(state => state.failuresMapReducer.topology4gDataCompare);\r\n\tconst topology5gData = useSelector(state => state.failuresMapReducer.topology5gDataCompare);\r\n\tconst topologyLabels2gData = useSelector(state => state.failuresMapReducer.topologyLabels2gDataCompare);\r\n\tconst topologyLabels3gData = useSelector(state => state.failuresMapReducer.topologyLabels3gDataCompare);\r\n\tconst topologyLabels4gData = useSelector(state => state.failuresMapReducer.topologyLabels4gDataCompare);\r\n\tconst topologyLabels5gData = useSelector(state => state.failuresMapReducer.topologyLabels5gDataCompare);\r\n\tconst techBandVoice = useSelector(state => state.failuresMapReducer.techBandVoiceCompare);\r\n\tconst techBandPacket = useSelector(state => state.failuresMapReducer.techBandPacketCompare);\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 driveTestScannerCodes = useSelector(state => state.failuresMapReducer.driveTestScannerCodesCompare);\r\n\r\n\t// Topology\r\n\tconst [openTopology, setOpenTopology] = React.useState(false);\r\n\tconst [openTopology5g, setOpenTopology5g] = React.useState(false);\r\n\tconst [openTopology4g, setOpenTopology4g] = React.useState(false);\r\n\tconst [openTopology3g, setOpenTopology3g] = React.useState(false);\r\n\tconst [openTopology2g, setOpenTopology2g] = React.useState(false);\r\n\r\n\t// UE\r\n\tconst [openUe, setOpenUe] = React.useState(false);\r\n\tconst [open4g, setOpen4g] = React.useState(false);\r\n\tconst [open3g, setOpen3g] = React.useState(false);\r\n\tconst [open2g, setOpen2g] = React.useState(false);\r\n\tconst [commonMenu, setCommonMenu] = React.useState(false);\r\n\tconst [openEvents, setOpenEvents] = React.useState(false);\r\n\tconst [openEventsVoice, setOpenEventsVoice] = React.useState(false);\r\n\tconst [openEventsPacket, setOpenEventsPacket] = React.useState(false);\r\n\r\n\t// Scanner\r\n\tconst [openScanner, setOpenScanner] = React.useState(false);\r\n\tconst [openScanner4g, setOpenScanner4g] = React.useState(false);\r\n\tconst [openScanner3g, setOpenScanner3g] = React.useState(false);\r\n\tconst [openScanner2g, setOpenScanner2g] = React.useState(false);\r\n\tconst [commonScannerMenu, setCommonScannerMenu] = React.useState(false);\r\n\r\n\tconst [state, setState] = React.useState({\r\n\t\ttechBandVoiceSelection: false,\r\n\t\ttechBandPacketSelection: false,\r\n\t\tvoice: false,\r\n\t\tpacket: false,\r\n\t\ttopology2g900: false,\r\n\t\ttopology2g1800: false,\r\n\t\ttopologyLabels2g: false,\r\n\t\ttopology3g900: false,\r\n\t\ttopology3g2100: false,\r\n\t\ttopologyLabels3g: false,\r\n\t\ttopology4g800: false,\r\n\t\ttopology4g2100: false,\r\n\t\ttopology4g2600: false,\r\n\t\ttopology5g78: false,\r\n\t\ttopologyLabels5g: false,\r\n\t});\r\n\r\n\tconst {\r\n\t\ttechBandVoiceSelection, techBandPacketSelection,\r\n\t\tvoice, packet,\r\n\t\ttopology2g900, topology2g1800, topologyLabels2g,\r\n\t\ttopology3g900, topology3g2100, topologyLabels3g,\r\n\t\ttopology4g800, topology4g2100, topology4g2600, topologyLabels4g,\r\n\t\ttopology5g78, topologyLabels5g\r\n\t} = state;\r\n\r\n\tconst [value4g, setValue4g] = React.useState('none');\r\n\tconst [value3g, setValue3g] = React.useState('none');\r\n\tconst [value2g, setValue2g] = React.useState('none');\r\n\r\n\t// Scanner\r\n\tconst [valueScanner4g, setValueScanner4g] = React.useState('none');\r\n\tconst [valueScanner3g, setValueScanner3g] = React.useState('none');\r\n\tconst [valueScanner2g, setValueScanner2g] = React.useState('none');\r\n\r\n\t// Topology\r\n\tconst handleClickTopology = () => {\r\n\t\tsetOpenTopology(!openTopology);\r\n\t};\r\n\tconst handleClickTopology5g = () => {\r\n\t\tsetOpenTopology5g(!openTopology5g);\r\n\t};\r\n\tconst handleClickTopology4g = () => {\r\n\t\tsetOpenTopology4g(!openTopology4g);\r\n\t};\r\n\tconst handleClickTopology3g = () => {\r\n\t\tsetOpenTopology3g(!openTopology3g);\r\n\t};\r\n\tconst handleClickTopology2g = () => {\r\n\t\tsetOpenTopology2g(!openTopology2g);\r\n\t};\r\n\r\n\t// UE\r\n\tconst handleClickUe = () => {\r\n\t\tsetOpenUe(!openUe);\r\n\t};\r\n\tconst handleClick4g = () => {\r\n\t\tsetOpen4g(!open4g);\r\n\t};\r\n\tconst handleClick3g = () => {\r\n\t\tsetOpen3g(!open3g);\r\n\t};\r\n\tconst handleClick2g = () => {\r\n\t\tsetOpen2g(!open2g);\r\n\t};\r\n\tconst handleCommonMenu = () => {\r\n\t\tsetCommonMenu(!commonMenu);\r\n\t};\r\n\tconst handleClickEvents = () => {\r\n\t\tsetOpenEvents(!openEvents);\r\n\t};\r\n\tconst handleClickEventsVoice = () => {\r\n\t\tsetOpenEventsVoice(!openEventsVoice);\r\n\t};\r\n\tconst handleClickEventsPacket = () => {\r\n\t\tsetOpenEventsPacket(!openEventsPacket);\r\n\t};\r\n\r\n\t// Scanner\r\n\tconst handleClickScanner = () => {\r\n\t\tsetOpenScanner(!openScanner);\r\n\t};\r\n\tconst handleClickScanner4g = () => {\r\n\t\tsetOpenScanner4g(!openScanner4g);\r\n\t};\r\n\tconst handleClickScanner3g = () => {\r\n\t\tsetOpenScanner3g(!openScanner3g);\r\n\t};\r\n\tconst handleClickScanner2g = () => {\r\n\t\tsetOpenScanner2g(!openScanner2g);\r\n\t};\r\n\tconst handleCommonScannerMenu = () => {\r\n\t\tsetCommonScannerMenu(!commonScannerMenu);\r\n\t};\r\n\r\n\tconst _removeLayerById = (map, id) => {\r\n\t\tmap.RemoveLayerById(id);\r\n\t};\r\n\r\n\tconst handleChangeType = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tif (event.target.name === 'voice' && event.target.checked) {\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\tvoiceActiveCompare: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsVoiceCompare(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypeVoiceCompare, formState.values.cfn1LevelVoiceCompare)\r\n\t\t\t);\r\n\t\t} else if (event.target.name === 'voice' && !event.target.checked) {\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\tvoiceActiveCompare: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'voice');\r\n\t\t} else if (event.target.name === 'packet' && event.target.checked) {\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\tpacketActiveCompare: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsPacketCompare(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypePacketCompare, formState.values.cfn1LevelPacketCompare)\r\n\t\t\t);\r\n\t\t} else if (event.target.name === 'packet' && !event.target.checked) {\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\tpacketActiveCompare: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'packet');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology2g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\r\n\t\t// console.log(\r\n\t\t// \t`center:${_map.getCenter()}\\n`\r\n\t\t// \t+ `width:${width}\\n`\r\n\t\t// \t+ `height:${height}\\n`\r\n\t\t// \t+ `size in pixels:${_map.getSize()}`\r\n\t\t// );\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology2g900' && event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('900');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands2g.push('900');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels2g) {\r\n\t\t\t\tdispatch(GetTopologyLabels2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology2g900' && !event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('900');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands2g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology2g1800' && event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('1800');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands2g.push('1800');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels2g) {\r\n\t\t\t\tdispatch(GetTopologyLabels2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology2g1800' && !event.target.checked) {\r\n\t\t\tconst index = bands2g.indexOf('1800');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands2g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology3g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology3g900' && event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('900');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands3g.push('900');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels3g) {\r\n\t\t\t\tdispatch(GetTopologyLabels3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology3g900' && !event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('900');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands3g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology3g2100' && event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('2100');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands3g.push('2100');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels3g) {\r\n\t\t\t\tdispatch(GetTopologyLabels3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology3g2100' && !event.target.checked) {\r\n\t\t\tconst index = bands3g.indexOf('2100');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands3g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology4g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\t\tconst zoom = _map.getZoom();\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\tconsole.log(mapBounds);\r\n\t\tconsole.log(zoom);\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology4g800' && event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('800');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands4g.push('800');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels4g) {\r\n\t\t\t\tdispatch(GetTopologyLabels4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology4g800' && !event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('800');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands4g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology4g2100' && event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2100');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands4g.push('2100');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels4g) {\r\n\t\t\t\tdispatch(GetTopologyLabels4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology4g2100' && !event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2100');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands4g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topology4g2600' && event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2600');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands4g.push('2600');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels4g) {\r\n\t\t\t\tdispatch(GetTopologyLabels4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology4g2600' && !event.target.checked) {\r\n\t\t\tconst index = bands4g.indexOf('2600');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands4g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopology5g = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\r\n\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\tconst width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\tconst height = _map.getBounds().getNorth() - _map.getBounds().getSouth();\r\n\t\tconst zoom = _map.getZoom();\r\n\r\n\t\t// Filtro para sql\r\n\t\tconst mapBounds = _map.getBounds();\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\t// console.log(mapBounds);\r\n\t\t// console.log(zoom);\r\n\t\t// if (width > 0.65 || height > 0.35) {\r\n\t\t// \tconsole.log('remover as layers');\r\n\t\t// } else\r\n\t\tif (event.target.name === 'topology5g78' && event.target.checked) {\r\n\t\t\tconst index = bands5g.indexOf('78');\r\n\t\t\tif (index === -1) {\r\n\t\t\t\tbands5g.push('78');\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology5gCompare(userId, bands5g, mapBoundsPoints));\r\n\t\t\tif (topologyLabels5g) {\r\n\t\t\t\tdispatch(GetTopologyLabels5gCompare(userId, bands5g, mapBoundsPoints));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'topology5g78' && !event.target.checked) {\r\n\t\t\tconst index = bands5g.indexOf('78');\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tbands5g.splice(index, 1);\r\n\t\t\t}\r\n\t\t\tdispatch(GetTopology5gCompare(userId, bands5g, mapBoundsPoints));\r\n\t\t\tdispatch(GetTopologyLabels5gCompare(userId, bands5g, mapBoundsPoints));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTopologyLabels = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\r\n\t\tconst mapBounds = mapOne.control.mapContext.map.getBounds();\r\n\r\n\t\tconst mapBoundsPoints = {\r\n\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\tsouthWest: mapBounds._southWest\r\n\t\t};\r\n\r\n\t\tif (event.target.name === 'topologyLabels2g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels2gCompare(userId, bands2g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels2g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels2g');\r\n\t\t} else if (event.target.name === 'topologyLabels3g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels3gCompare(userId, bands3g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels3g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels3g');\r\n\t\t} else if (event.target.name === 'topologyLabels4g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels4gCompare(userId, bands4g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels4g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels4g');\r\n\t\t} else if (event.target.name === 'topologyLabels5g' && event.target.checked) {\r\n\t\t\tdispatch(GetTopologyLabels5gCompare(userId, bands5g, mapBoundsPoints));\r\n\t\t} else if (event.target.name === 'topologyLabels5g' && !event.target.checked) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyLabels5g');\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeTechBand = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\r\n\t\tif (event.target.name === 'techBandVoiceSelection' && event.target.checked) {\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\ttechBandVoiceActiveCompare: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(GetDriveTestsTechBandVoiceCompare(formState.values.selectedCity, selectedDates, userId));\r\n\t\t} else if (event.target.name === 'techBandVoiceSelection' && !event.target.checked) {\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\ttechBandvoiceActiveCompare: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'techBandVoice');\r\n\t\t\tif (!formState.values.techBandpacketActiveCompare) {\r\n\t\t\t\tdispatch(onUpdateLegend({ id: mapOne.control.mapContext.id, newLegend: '' }));\r\n\t\t\t}\r\n\t\t} else if (event.target.name === 'techBandPacketSelection' && event.target.checked) {\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\ttechBandpacketActiveCompare: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(GetDriveTestsTechBandPacketCompare(formState.values.selectedCity, selectedDates, userId));\r\n\t\t} else if (event.target.name === 'techBandPacketSelection' && !event.target.checked) {\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\ttechBandpacketActiveCompare: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'techBandPacket');\r\n\t\t\tif (!formState.values.techBandvoiceActiveCompare) {\r\n\t\t\t\tdispatch(onUpdateLegend({ id: mapOne.control.mapContext.id, newLegend: '' }));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeRoute = (event) => {\r\n\t\tif (event.target.checked && selectedDates.length > 0) {\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\tscannerRouteCompare: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(GetScannerRouteCompare(userId, formState.values.selectedCity, selectedDates));\r\n\t\t} else {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\tscannerRouteCompare: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'scannerRoute');\r\n\t\t}\r\n\t};\r\n\r\n\tconst makeDetailsTable = (item) => {\r\n\t\tconst table = `\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
Failure Id: ${item.failureId}
Failure Type: ${item.failureType}
CFN 1 Level: ${item.cfn1Level}
CFN 2 Level: ${item.cfn2Level}
CFN 3 Level: ${item.cfn3Level}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst makeDetailsTableTopology = (item) => {\r\n\t\tconst table = `\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\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\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\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\r\n\t\t\t\t\t
Node Id: ${item.id}
Node Name: ${item.name}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst makeDetailsTechBandKpi = (item) => {\r\n\t\tconst table = `\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\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\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\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\r\n\t\t\t\t\t
Tech: ${item.tech}
Band: ${item.band}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst _addLayerFailures = (map, data, type, fitBounds) => {\r\n\t\tmap.RemoveLayerById(type);\r\n\t\tconst markers = [];\r\n\r\n\t\tconst voiceIconBlocked = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicecallattempt_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconBlockedQoe = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoiceblockcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDropped = L.icon({\r\n\t\t\ticonUrl: '/images/failuresIcons/eventsvoicedropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst voiceIconDroppedQoe = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventsvoicedropcallQoe_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst packetIcondrop = L.icon({\r\n\t\t\ticonUrl: 'images/failuresIcons/eventspacketdropcall_o2.png',\r\n\t\t\ticonSize: [35, 35], // size of the icon\r\n\t\t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t\t\tpopupAnchor: [0, -32] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tdata.forEach(item => {\r\n\t\t\t\tif (type.includes('voice')) {\r\n\t\t\t\t\tif (item.failureType === 'Blocked Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlocked });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'QoE Call Setup Time') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlockedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else if (item.failureType === 'Dropped Call') {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDropped });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDroppedQoe });\r\n\t\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: packetIcondrop });\r\n\t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: type });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst _addLayerTechBandKpi = (map, data, legend, fitBounds, layerName) => {\r\n\t\tmap.RemoveLayerById(layerName);\r\n\t\tconst markers = [];\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tdata.forEach(item => {\r\n\t\t\t\tconst marker = L.circle([item.latitude, item.longitude], {\r\n\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\tfillColor: item.color,\r\n\t\t\t\t\tfillOpacity: 0.8,\r\n\t\t\t\t\tradius: 10\r\n\t\t\t\t});\r\n\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTechBandKpi(item)}
`, { autoPan: false }));\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: layerName });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t\tdispatch(onUpdateLegend({ id: map.mapContext.id, newLegend: legend }));\r\n\t\t}\r\n\t};\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerFailures(mapOne.control, failuresVoice, 'voice', formState.values.mapAutoZoom);\r\n\t\t}\r\n\t}, [failuresVoice]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerFailures(mapOne.control, failuresPacket, 'packet', formState.values.mapAutoZoom);\r\n\t\t}\r\n\t}, [failuresPacket]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology2gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology2g(topology2gData.topology2gDto, 'topology2g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology2gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels2gData.length !== 0 && topologyLabels2g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels2gData.topologyLabels2gDto, 'topologyLabels2g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels2gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology3gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology3g(topology3gData.topology3gDto, 'topology3g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology3gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels3gData.length !== 0 && topologyLabels3g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels3gData.topologyLabels3gDto, 'topologyLabels3g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels3gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology4gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology4g(topology4gData.topology4gDto, 'topology4g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology4gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels4gData.length !== 0 && topologyLabels4g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels4gData.topologyLabels4gDto, 'topologyLabels4g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels4gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topology5gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology5g(topology5gData.topology5gDto, 'topology5g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology5gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tif (topologyLabels5gData.length !== 0 && topologyLabels5g) {\r\n\t\t\t\tmapOne.control.addTopologyLabels(topologyLabels5gData.topologyLabels5gDto, 'topologyLabels5g');\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topologyLabels5gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerTechBandKpi(mapOne.control, techBandVoice.driveTestTechBand, techBandVoice.driveTestTechBandLegend, formState.values.mapAutoZoom, 'techBandVoice');\r\n\t\t}\r\n\t}, [techBandVoice]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerTechBandKpi(mapOne.control, techBandPacket.driveTestTechBand, techBandPacket.driveTestTechBandLegend, formState.values.mapAutoZoom, 'techBandPacket');\r\n\t\t}\r\n\t}, [techBandPacket]);\r\n\r\n\t// UE\r\n\tconst handleChange4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g(event.target.value);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiTechCompare: '4g',\r\n\t\t\t\tselectedKpiScannerTechCompare: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestCompare(userId, '4g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChange3g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g(event.target.value);\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiTechCompare: '3g',\r\n\t\t\t\tselectedKpiScannerTechCompare: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestCompare(userId, '3g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChange2g = (event) => {\r\n\t\tsetValue2g(event.target.value);\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiTechCompare: '2g',\r\n\t\t\t\tselectedKpiScannerTechCompare: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestCompare(userId, '2g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\t// Scanner\r\n\tconst handleChangeScanner4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g(event.target.value);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiScannerTechCompare: '4g',\r\n\t\t\t\tselectedKpiTechCompare: undefined\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\tformState.values.freq4gCompare, formState.values.top4gCompare, formState.values.scannerPciCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst handleChangeScanner3g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g(event.target.value);\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiScannerTechCompare: '3g',\r\n\t\t\t\tselectedKpiTechCompare: undefined\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\tformState.values.freq3gCompare, formState.values.top3gCompare, formState.values.scannerScCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst handleChangeScanner2g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValueScanner2g(event.target.value);\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\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\tselectedKpiScannerTechCompare: '2g',\r\n\t\t\t\tselectedKpiTechCompare: undefined\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\tformState.values.freq2gCompare, formState.values.top2gCompare, formState.values.scannerBsicCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeFailuresFilters = (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});\r\n\t};\r\n\r\n\tconst _voiceFilter = useCallback(() => {\r\n\t\tdispatch(\r\n\t\t\tGetFailuresPointsVoiceCompare(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypeVoiceCompare, formState.values.cfn1LevelVoiceCompare)\r\n\t\t);\r\n\t}, [formState.values.failureTypeVoiceCompare, formState.values.cfn1LevelVoiceCompare]);\r\n\r\n\tconst _packetFilter = useCallback(() => {\r\n\t\tdispatch(\r\n\t\t\tGetFailuresPointsPacketCompare(userId, role, formState.values.selectedCity, selectedDates, formState.values.failureTypePacketCompare, formState.values.cfn1LevelPacketCompare)\r\n\t\t);\r\n\t}, [formState.values.failureTypePacketCompare, formState.values.cfn1LevelPacketCompare]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (formState.values.voiceActiveCompare) {\r\n\t\t\t_voiceFilter();\r\n\t\t}\r\n\t\tif (formState.values.packetActiveCompare) {\r\n\t\t\t_packetFilter();\r\n\t\t}\r\n\t}, [formState.values.failureTypeVoiceCompare, formState.values.cfn1LevelVoiceCompare, formState.values.failureTypePacketCompare, formState.values.cfn1LevelPacketCompare]);\r\n\r\n\tconst cardStyle = {\r\n\t\theight,\r\n\t\toverflow: 'auto'\r\n\t};\r\n\r\n\tconst frequencies4g = [\r\n\t\t{ value: '323', text: 323 },\r\n\t\t{ value: '347', text: 347 },\r\n\t\t{ value: '1288', text: 1288 },\r\n\t\t{ value: '2850', text: 2850 },\r\n\t\t{ value: '6300', text: 6300 }\r\n\t];\r\n\r\n\tconst frequencies3g = [\r\n\t\t{ value: '2938', text: 2938 },\r\n\t\t{ value: '3012', text: 3012 },\r\n\t\t{ value: '10687', text: 10687 },\r\n\t\t{ value: '10712', text: 10712 }\r\n\t];\r\n\r\n\tconst frequencies2g = [\r\n\t\t{ value: '1', text: 1 },\r\n\t\t{ value: '2', text: 2 },\r\n\t\t{ value: '3', text: 3 },\r\n\t\t{ value: '4', text: 4 },\r\n\t\t{ value: '5', text: 5 },\r\n\t\t{ value: '6', text: 6 },\r\n\t\t{ value: '7', text: 7 },\r\n\t\t{ value: '8', text: 8 },\r\n\t\t{ value: '9', text: 9 },\r\n\t\t{ value: '10', text: 10 },\r\n\t];\r\n\r\n\tconst topList = [\r\n\t\t{ value: 'all', text: 'All' },\r\n\t\t{ value: '1', text: 1 },\r\n\t\t{ value: '2', text: 2 },\r\n\t\t{ value: '3', text: 3 },\r\n\t\t{ value: '4', text: 4 },\r\n\t\t{ value: '5', text: 5 },\r\n\t\t{ value: '6', text: 6 }\r\n\t];\r\n\r\n\tconst _handleChangeFrequency4g = (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\tselectedKpiScannerTechCompare: '4g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, selectedDates, event.target.value, formState.values.top4gCompare));\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpi4gScannerCompare,\r\n\t\t\tevent.target.value, formState.values.top4gCompare, formState.values.scannerPciCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeFrequency3g = (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\tselectedKpiScannerTechCompare: '3g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, selectedDates, event.target.value, formState.values.top3gCompare));\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpi3gScannerCompare,\r\n\t\t\tevent.target.value, formState.values.top3gCompare, formState.values.scannerScCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeFrequency2g = (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\tselectedKpiScannerTechCompare: '2g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, selectedDates, event.target.value, formState.values.top2gCompare));\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpi2gScannerCompare,\r\n\t\t\tevent.target.value, formState.values.top2gCompare, formState.values.scannerBsicCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeTop4g = (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\tselectedKpiScannerTechCompare: '4g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, selectedDates, formState.values.freq4gCompare, event.target.value));\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpi4gScannerCompare,\r\n\t\t\tformState.values.freq4gCompare, event.target.value, formState.values.scannerPciCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeTop3g = (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\tselectedKpiScannerTechCompare: '3g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, selectedDates, formState.values.freq3gCompare, event.target.value));\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpi3gScannerCompare,\r\n\t\t\tformState.values.freq3gCompare, event.target.value, formState.values.scannerScCompare\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeTop2g = (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\tselectedKpiScannerTechCompare: '2g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodesCompare(userId, formState.values.selectedCity, selectedDates, formState.values.freq2gCompare, event.target.value));\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpi2gScannerCompare,\r\n\t\t\tformState.values.freq2gCompare, event.target.value, formState.values.scannerBsicCompare\r\n\t\t));\r\n\t};\r\n\tconst _handleChangePci = (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\tselectedKpiScannerTechCompare: '4g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpi4gScannerCompare,\r\n\t\t\tformState.values.freq4gCompare, formState.values.top4gCompare, event.target.value\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeSc = (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\tselectedKpiScannerTechCompare: '3g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpi3gScannerCompare,\r\n\t\t\tformState.values.freq3gCompare, formState.values.top3gCompare, event.target.value\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeBsic = (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\tselectedKpiScannerTechCompare: '2g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpi2gScannerCompare,\r\n\t\t\tformState.values.freq2gCompare, formState.values.top2gCompare, event.target.value\r\n\t\t));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\tLayers\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t// \t\tNested List Items\r\n\t\t\t\t\t\t// \t\r\n\t\t\t\t\t\t// )}\r\n\t\t\t\t\t\tclassName={classes.root}\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{openTopology ? : }\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\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{openTopology2g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"G900\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"G1800\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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\r\n\t\t\t\t\t\t\t\t\t{openTopology3g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"U900\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"U2100\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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\r\n\t\t\t\t\t\t\t\t\t{openTopology4g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"L800\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"L2100\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"L2600\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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\r\n\t\t\t\t\t\t\t\t\t{openTopology5g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"N78\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Labels\"\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\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{openUe ? : }\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\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{open2g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RxLev\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RxQual\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/* } label=\"BSIC\" /> */}\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\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{open3g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSCP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Ec/Io\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t{/* } label=\"SC\" /> */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP UL\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP DL\" />\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\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{open4g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRQ\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SINR Voice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SINR Packet\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"MOS SWB\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"PCI Pollution\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Rank\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"CQI CW0\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"CQI CW1\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"BLER\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP UL\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP DL\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TP DL < 4\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"TM\" />\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\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{commonMenu ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{openEvents ? : }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{openEventsVoice ? : }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Show\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{openEventsPacket ? : }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Show\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Tech Band Voice\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Tech Band Packet\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Voice Events\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Packet Events\"\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\t{/* \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t// \t\tNested List Items\r\n\t\t\t\t\t\t// \t\r\n\t\t\t\t\t\t// )}\r\n\t\t\t\t\t\tclassName={classes.root}\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{openScanner ? : }\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\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{openScanner2g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSSI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"BSIC\" />\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\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{openScanner3g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSCP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Ec/Io\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SIR\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"SC\" />\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\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{openScanner4g ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"RSRQ\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"CINR\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"PCI\" />\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\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{commonScannerMenu ? : }\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\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Route\"\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
\r\n\t);\r\n};\r\n\r\nFiltersSideCompare.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\tonFilter: PropTypes.func.isRequired,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func,\r\n\theight: PropTypes.string\r\n};\r\n\r\nexport default FiltersSideCompare;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _, { templateSettings } from 'underscore';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@material-ui/core';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { DataTable, Label, Chart } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\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 DrivetestChart = (props) => {\r\n\tconst { className, id, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{/* Color #1565c0 */}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nDrivetestChart.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tid: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default DrivetestChart;\r\n","import React, { useEffect, useMemo, useCallback, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport L from 'leaflet';\r\nimport 'leaflet.sync';\r\nimport _ from 'underscore';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch\r\n} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport validate from 'validate.js';\r\nimport DataTable from '../../../../components/DataTable/DataTable.js';\r\nimport {\r\n\tSetFormState, GetDriveTestSummaryDropdown, GetDriveTestSummary,\r\n\t// Map Compare\r\n\tGetDriveTestSummaryCompare\r\n} from '../../actions/FailuresMapActions';\r\nimport DrivetestChart from './Components/DrivetestChart';\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 AdditionalInfo = (props) => {\r\n\tconst { className, open, onClose, onFilter, filterDisabled, onClear, data, dataCompare, ...rest } = props;\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\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.failuresMapReducer.formState);\r\n\r\n\tconst selectedDates = useSelector(state => state.failuresMapReducer.selectedDates);\r\n\tconst drivetestSummaryDropdown = useSelector(state => state.failuresMapReducer.drivetestSummaryDropdown);\r\n\tconst drivetestSummary = useSelector(state => state.failuresMapReducer.drivetestSummary);\r\n\r\n\t// Map compare\r\n\tconst selectedDatesCompare = useSelector(state => state.failuresMapReducer.selectedDatesCompare);\r\n\tconst drivetestSummaryCompare = useSelector(state => state.failuresMapReducer.drivetestSummaryCompare);\r\n\r\n\tconst _getData = useCallback(() => {\r\n\t\tdispatch(GetDriveTestSummaryDropdown());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t_getData();\r\n\t}, [_getData]);\r\n\r\n\tconst cardStyle = {\r\n\t\t// height: '10vh'\r\n\t};\r\n\r\n\tconst _handleChangeScenario = (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});\r\n\r\n\t\tdispatch(GetDriveTestSummary(formState.values.selectedCity, selectedDates, event.target.value));\r\n\t\tdispatch(GetDriveTestSummaryCompare(formState.values.selectedCity, selectedDatesCompare, event.target.value));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\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\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\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
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nAdditionalInfo.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\tonFilter: PropTypes.func.isRequired,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func,\r\n\tdata: PropTypes.array,\r\n\tdataCompare: PropTypes.array\r\n};\r\n\r\nexport default AdditionalInfo;\r\n","import React, { useState, useEffect, useRef, useMemo } 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 '@material-ui/styles';\r\nimport moment from 'moment';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch, CardHeader, CardContent,\r\n} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport _ from 'underscore';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SelectField } from 'components';\r\nimport DatePicker from 'components/DatePicker/DatePicker';\r\nimport DataTable from '../../../../../../components/DataTable/DataTable.js';\r\nimport {\r\n\tSetFormState, GetDriveTestSummaryDropdown, GetDriveTestSummary,\r\n\t// Map Compare\r\n\tGetDriveTestSummaryCompare\r\n} from '../../../../actions/FailuresMapActions';\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\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 SummaryDialogForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\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.failuresMapReducer.formState);\r\n\r\n\tconst selectedDates = useSelector(state => state.failuresMapReducer.selectedDates);\r\n\tconst drivetestSummaryDropdown = useSelector(state => state.failuresMapReducer.drivetestSummaryDropdown);\r\n\tconst drivetestSummary = useSelector(state => state.failuresMapReducer.drivetestSummary);\r\n\r\n\t// Map compare\r\n\tconst selectedDatesCompare = useSelector(state => state.failuresMapReducer.selectedDatesCompare);\r\n\tconst drivetestSummaryCompare = useSelector(state => state.failuresMapReducer.drivetestSummaryCompare);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetDriveTestSummaryDropdown());\r\n\t}, []);\r\n\r\n\tconst cardStyle = {\r\n\t\t// height: '10vh'\r\n\t};\r\n\r\n\tconst _handleChangeScenario = (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});\r\n\r\n\t\tdispatch(GetDriveTestSummary(formState.values.selectedCity, selectedDates, event.target.value));\r\n\t\tdispatch(GetDriveTestSummaryCompare(formState.values.selectedCity, selectedDatesCompare, event.target.value));\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: '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: 'city',\r\n\t\t\t\tlabel: 'City',\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: 'scenario',\r\n\t\t\t\tlabel: 'Scenario',\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: 'kpis',\r\n\t\t\t\tlabel: 'KPIs',\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: 'values',\r\n\t\t\t\tlabel: 'Values',\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\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\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
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSummaryDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default SummaryDialogForm;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport SummaryDialogForm from './Components/SummaryDialogForm';\r\nimport {\r\n\tSetFormState\r\n} from '../../../actions/FailuresMapActions';\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 SummaryDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.failuresMapReducer.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\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\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\nSummaryDialog.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 SummaryDialog;\r\n","import React, { useState, useEffect, useRef, useMemo } 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 '@material-ui/styles';\r\nimport moment from 'moment';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch, CardHeader, CardContent,\r\n\tcolors, IconButton, Tooltip, Hidden\r\n} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport _ from 'underscore';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SelectField } from 'components';\r\nimport DatePicker from 'components/DatePicker/DatePicker';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/EditOutlined';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport Label from '../../../../../../components/Label';\r\nimport DataTable from '../../../../../../components/DataTable/DataTable.js';\r\nimport {\r\n\tSetFormState, ToggleCarriersColorsDialog, ToggleCarriersColorsPickerDialog\r\n} from '../../../../actions/FailuresMapActions';\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\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 CarriersColorsDialogForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\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.failuresMapReducer.formState);\r\n\r\n\tconst carriersColors = useSelector(state => state.failuresMapReducer.carriersColors);\r\n\r\n\tuseEffect(() => {\r\n\r\n\t}, []);\r\n\r\n\tconst cardStyle = {\r\n\t\t// height: '10vh'\r\n\t};\r\n\r\n\tconst _editColor = (tableIdColorCode, currentColorCode) => {\r\n\t\tdispatch(ToggleCarriersColorsDialog(false));\r\n\t\tdispatch(ToggleCarriersColorsPickerDialog(true, tableIdColorCode, currentColorCode));\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 _editColor(rowData[0], rowData[2])}\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 _renderActionsColor = (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\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: 'carrier',\r\n\t\t\t\tlabel: 'Carrier',\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: 'colorCode',\r\n\t\t\t\tlabel: 'Color Code',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'color',\r\n\t\t\t\tlabel: 'Color',\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) => _renderActionsColor(tableMeta)\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\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\nCarriersColorsDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default CarriersColorsDialogForm;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport CarriersColorsDialogForm from './Components/CarriersColorsDialogForm';\r\nimport {\r\n\tSetFormState, GetCarriersColors\r\n} from '../../../actions/FailuresMapActions';\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 CarriersColorsDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.failuresMapReducer.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\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetCarriersColors());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\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\nCarriersColorsDialog.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 CarriersColorsDialog;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { SketchPicker } from 'react-color';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { colors, Grid } from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport {\r\n\tSetFormState, GetCarriersColors, SaveCarrierColor, ToggleCarriersColorsPickerDialog, ToggleCarriersColorsDialog\r\n} from '../../../actions/FailuresMapActions';\r\n\r\nconst CarriersColorsPickerDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, currentColorCode, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.failuresMapReducer.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 tableIdColorCode = useSelector((state) => state.failuresMapReducer.tableIdColorCode);\r\n\r\n\t// const getData = useCallback(() => {\r\n\t// \tdispatch(GetCarriersColors());\r\n\t// }, []);\r\n\r\n\t// useEffect(() => {\r\n\t// \tgetData();\r\n\t// }, []);\r\n\r\n\tconst [color, setColor] = useState(currentColorCode === null ? 'white' : currentColorCode);\r\n\r\n\tconst handleChangeComplete = (selectedColor) => {\r\n\t\tsetColor(selectedColor.hex);\r\n\t};\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(SaveCarrierColor(userId, tableIdColorCode, color));\r\n\t\tdispatch(ToggleCarriersColorsPickerDialog(false));\r\n\t\tdispatch(ToggleCarriersColorsDialog(true));\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\nCarriersColorsPickerDialog.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\tcurrentColorCode: PropTypes.string\r\n};\r\n\r\nexport default CarriersColorsPickerDialog;\r\n","import React, { useEffect, useMemo, useCallback, useRef } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport L from 'leaflet';\r\nimport _ from 'underscore';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport {\r\n\tSetFormState, ResetFields,\r\n\tGetDriveTestsCities, GetFailuresFilters, SetSelectedDates,\r\n\tGetFailuresFiltersSideCompare, SetSelectedDatesCompare,\r\n\tToggleSummaryDialog, GetSitesIds, ToggleCarriersColorsDialog,\r\n\tToggleCarriersColorsPickerDialog\r\n} from '../actions/FailuresMapActions';\r\nimport CompareBox from './components/CompareBox';\r\nimport FiltersTop from './components/FiltersTop';\r\nimport FiltersTopCompare from './components/FiltersTopCompare';\r\nimport FiltersSide from './components/FiltersSide';\r\nimport FiltersSideCompare from './components/FiltersSideCompare';\r\nimport AdditionalInfo from './components/AdditionalInfo';\r\nimport SummaryDialog from './components/Components/SummaryDialog';\r\nimport CarriersColorsDialog from './components/Components/CarriersColorsDialog';\r\nimport CarriersColorsPickerDialog from './components/Components/CarriersColorsPickerDialog';\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\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 FailuresMap = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\r\n\t// Map\r\n\tconst selectedDates = useSelector(state => state.failuresMapReducer.selectedDates);\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst formState = useSelector((state) => state.failuresMapReducer.formState);\r\n\tconst mapOne = maps.filter(item => item.id === 'failures-map')[0];\r\n\tconst driveTest = useSelector(state => state.failuresMapReducer.driveTest);\r\n\tconst driveTestScanner = useSelector(state => state.failuresMapReducer.driveTestScanner);\r\n\tconst scannerRoute = useSelector(state => state.failuresMapReducer.scannerRoute);\r\n\r\n\t// Map Compare\r\n\tconst selectedDatesCompare = useSelector(state => state.failuresMapReducer.selectedDatesCompare);\r\n\tconst mapTwo = maps.filter(item => item.id === 'failures-map-compare')[0];\r\n\tconst driveTestCompare = useSelector(state => state.failuresMapReducer.driveTestCompare);\r\n\tconst driveTestScannerCompare = useSelector(state => state.failuresMapReducer.driveTestScannerCompare);\r\n\tconst scannerRouteCompare = useSelector(state => state.failuresMapReducer.scannerRouteCompare);\r\n\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst userOperator = useSelector(state => state.session.user.operator);\r\n\r\n\tconst summaryDialogVisibility = useSelector((state) => state.failuresMapReducer.summaryDialogVisibility);\r\n\tconst carriersColorsDialogVisibility = useSelector((state) => state.failuresMapReducer.carriersColorsDialogVisibility);\r\n\tconst carriersColorsPickerDialogVisibility = useSelector((state) => state.failuresMapReducer.carriersColorsPickerDialogVisibility);\r\n\tconst currentColorCode = useSelector((state) => state.failuresMapReducer.currentColorCode);\r\n\r\n\tconst _getData = useCallback(() => {\r\n\t\tdispatch(GetFailuresFilters(role));\r\n\t\tdispatch(GetDriveTestsCities(userId, userOperator));\r\n\t\tdispatch(SetSelectedDates([]));\r\n\t\tdispatch(ResetFields());\r\n\t\t// Map Compare\r\n\t\tdispatch(GetFailuresFiltersSideCompare(role));\r\n\t\t// dispatch(GetDriveTestsCitiesCompare(userId, userOperator));\r\n\t\tdispatch(SetSelectedDatesCompare([]));\r\n\t\tdispatch(GetSitesIds());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t_getData();\r\n\t}, [_getData]);\r\n\r\n\tconst makeDetailsTable = (item) => {\r\n\t\tconst table = `\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
Failure Id: ${item.failureId}
Failure Type: ${item.failureType}
CFN 1 Level: ${item.cfn1Level}
CFN 2 Level: ${item.cfn2Level}
CFN 3 Level: ${item.cfn3Level}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst makeDetailsTableKpis = (item) => {\r\n\t\tconst table = `\r\n\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\r\n\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\r\n\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\r\n\r\n\t\t\t\t\t
Level: ${item.kpi}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\r\n\t\treturn table;\r\n\t};\r\n\r\n\t// const _addLayerFailures = (map, data, type, fitBounds) => {\r\n\t// \tmap.RemoveLayerById(type);\r\n\t// \tconst markers = [];\r\n\r\n\t// \tconst voiceIconBlocked = L.icon({\r\n\t// \t\ticonUrl: '/images/failuresIcons/eventsvoicecallattempt_o2.png',\r\n\t// \t\ticonSize: [35, 35], // size of the icon\r\n\t// \t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t// \t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t// \t});\r\n\r\n\t// \tconst voiceIconBlockedQoe = L.icon({\r\n\t// \t\ticonUrl: '/images/failuresIcons/eventsvoiceblockcallQoe_o2.png',\r\n\t// \t\ticonSize: [35, 35], // size of the icon\r\n\t// \t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t// \t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t// \t});\r\n\r\n\t// \tconst voiceIconDropped = L.icon({\r\n\t// \t\ticonUrl: '/images/failuresIcons/eventsvoicedropcall_o2.png',\r\n\t// \t\ticonSize: [35, 35], // size of the icon\r\n\t// \t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t// \t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t// \t});\r\n\r\n\t// \tconst voiceIconDroppedQoe = L.icon({\r\n\t// \t\ticonUrl: 'images/failuresIcons/eventsvoicedropcallQoe_o2.png',\r\n\t// \t\ticonSize: [35, 35], // size of the icon\r\n\t// \t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t// \t\tpopupAnchor: [0, -35] // point from which the popup should open relative to the iconAnchor\r\n\t// \t});\r\n\r\n\t// \tconst packetIcondrop = L.icon({\r\n\t// \t\ticonUrl: 'images/failuresIcons/eventspacketdropcall_o2.png',\r\n\t// \t\ticonSize: [35, 35], // size of the icon\r\n\t// \t\ticonAnchor: [16, 35], // point of the icon which will correspond to marker's location\r\n\t// \t\tpopupAnchor: [0, -32] // point from which the popup should open relative to the iconAnchor\r\n\t// \t});\r\n\r\n\t// \tif (!_.isEmpty(data)) {\r\n\t// \t\tdata.forEach(item => {\r\n\t// \t\t\tif (type.includes('voice')) {\r\n\t// \t\t\t\tif (item.failureType === 'Blocked Call') {\r\n\t// \t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlocked });\r\n\t// \t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t// \t\t\t\t} else if (item.failureType === 'QoE Call Setup Time') {\r\n\t// \t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconBlockedQoe });\r\n\t// \t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t// \t\t\t\t} else if (item.failureType === 'Dropped Call') {\r\n\t// \t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDropped });\r\n\t// \t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t// \t\t\t\t} else {\r\n\t// \t\t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: voiceIconDroppedQoe });\r\n\t// \t\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t// \t\t\t\t}\r\n\t// \t\t\t} else {\r\n\t// \t\t\t\tconst marker = L.marker([item.latitude, item.longitude], { title: item.failureId, icon: packetIcondrop });\r\n\t// \t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTable(item)}
`, { autoPan: false }));\r\n\t// \t\t\t}\r\n\t// \t\t});\r\n\r\n\t// \t\tconst layer = L.layerGroup(markers, { id: type });\r\n\t// \t\tlayer.addTo(map.mapContext.map);\r\n\t// \t\tconst group = new L.featureGroup(markers);\r\n\t// \t\tif (fitBounds) {\r\n\t// \t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t// \t\t}\r\n\t// \t}\r\n\t// };\r\n\r\n\tconst _addLayerKpi = (map, data, legend, fitBounds, layerName) => {\r\n\t\tmap.RemoveLayerById(layerName);\r\n\t\tconst markers = [];\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tdata.forEach(item => {\r\n\t\t\t\tconst marker = L.circle([item.latitude, item.longitude], {\r\n\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\tfillColor: item.color,\r\n\t\t\t\t\tfillOpacity: 0.8,\r\n\t\t\t\t\tradius: 10\r\n\t\t\t\t});\r\n\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTableKpis(item)}
`, { autoPan: false }));\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: layerName });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t\tdispatch(onUpdateLegend({ id: map.mapContext.id, newLegend: legend }));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _addLayerKpiScanner = (map, data, legend, fitBounds, layerName) => {\r\n\t\tmap.RemoveLayerById(layerName);\r\n\t\tconst markers = [];\r\n\r\n\t\tif (!_.isEmpty(data)) {\r\n\t\t\tdata.forEach(item => {\r\n\t\t\t\tconst marker = L.circle([item.latitude, item.longitude], {\r\n\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\tfillColor: item.color,\r\n\t\t\t\t\tfillOpacity: 0.8,\r\n\t\t\t\t\tradius: 10\r\n\t\t\t\t});\r\n\t\t\t\tmarkers.push(marker.bindPopup(`
${makeDetailsTableKpis(item)}
`, { autoPan: false }));\r\n\t\t\t});\r\n\r\n\t\t\tconst layer = L.layerGroup(markers, { id: layerName });\r\n\t\t\tlayer.addTo(map.mapContext.map);\r\n\t\t\tconst group = new L.featureGroup(markers);\r\n\t\t\tif (fitBounds) {\r\n\t\t\t\tmap.mapContext.map.fitBounds(group.getBounds());\r\n\t\t\t}\r\n\t\t\tdispatch(onUpdateLegend({ id: map.mapContext.id, newLegend: legend }));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _removeLayerById = (map, id) => {\r\n\t\tmap.RemoveLayerById(id);\r\n\t};\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyColors');\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyColorsLabels');\r\n\t\t\tif (driveTest.driveTestLegend !== undefined) {\r\n\t\t\t\tif (driveTest.driveTestLegend.title !== 'none') {\r\n\t\t\t\t\tif (selectedDates.length > 0) {\r\n\t\t\t\t\t\tif (driveTest.driveTestLegend.title === 'empty') {\r\n\t\t\t\t\t\t\tdispatch(enqueueSnackbar({ message: 'No data found for UE', options: { variant: 'warning' } }));\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTest.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTest.driveTestLegend || '', false,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiTech === '4g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTest.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTest.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiTech === '3g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTest.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTest.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiTech === '2g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTest.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTest.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\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} else {\r\n\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\tmapOne.control, driveTest.driveTestPoints,\r\n\t\t\t\t\t\tdriveTest.driveTestLegend || '', false,\r\n\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}, [driveTest]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyColors');\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyColorsLabels');\r\n\t\t\tif (driveTestScanner.driveTestLegend !== undefined) {\r\n\t\t\t\tif (driveTestScanner.driveTestLegend.title !== 'none') {\r\n\t\t\t\t\tif (selectedDates.length > 0 && formState.values.freq4g !== '' && formState.values.top4g !== '') {\r\n\t\t\t\t\t\tif (driveTestScanner.driveTestLegend.title === 'empty') {\r\n\t\t\t\t\t\t\tdispatch(enqueueSnackbar({ message: 'No data found for Scanner', options: { variant: 'warning' } }));\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTestScanner.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScanner.driveTestLegend || '', false,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiScannerTech === '4g') {\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTestScanner.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScanner.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tif (driveTestScanner.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTestScanner.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\t\t\t\t\t\t\t\tconst mapBounds = _map.getBounds();\r\n\t\t\t\t\t\t\t\t\tconst mapBoundsPoints = {\r\n\t\t\t\t\t\t\t\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\t\t\t\t\t\t\t\tsouthWest: mapBounds._southWest\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tif (driveTestScanner.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(driveTestScanner.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(driveTestScanner.topologyColors, 'topologyColorsLabels');\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} else if (formState.values.selectedKpiScannerTech === '3g') {\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTestScanner.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScanner.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tif (driveTestScanner.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTestScanner.driveTestLegend.title === 'SC') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.control.mapContext.map;\r\n\t\t\t\t\t\t\t\t\tconst mapBounds = _map.getBounds();\r\n\t\t\t\t\t\t\t\t\tconst mapBoundsPoints = {\r\n\t\t\t\t\t\t\t\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\t\t\t\t\t\t\t\tsouthWest: mapBounds._southWest\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tif (driveTestScanner.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(driveTestScanner.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(driveTestScanner.topologyColors, 'topologyColorsLabels');\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} else if (formState.values.selectedKpiScannerTech === '2g') {\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapOne.control, driveTestScanner.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScanner.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\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} else {\r\n\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\tmapOne.control, driveTestScanner.driveTestPoints,\r\n\t\t\t\t\t\tdriveTestScanner.driveTestLegend || '', false,\r\n\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}, [driveTestScanner]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerKpiScanner(\r\n\t\t\t\tmapOne.control, scannerRoute.driveTestPoints,\r\n\t\t\t\tscannerRoute.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t'scannerRoute'\r\n\t\t\t);\r\n\t\t}\r\n\t}, [scannerRoute]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapTwo) {\r\n\t\t\t_removeLayerById(mapTwo.control, 'topologyColors');\r\n\t\t\tif (driveTestCompare.driveTestLegend !== undefined) {\r\n\t\t\t\tif (driveTestCompare.driveTestLegend.title !== 'none') {\r\n\t\t\t\t\tif (selectedDatesCompare.length > 0) {\r\n\t\t\t\t\t\tif (driveTestCompare.driveTestLegend.title === 'empty') {\r\n\t\t\t\t\t\t\tdispatch(enqueueSnackbar({ message: 'No data found for UE', options: { variant: 'warning' } }));\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestCompare.driveTestLegend || '', false,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiTechCompare === '4g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestCompare.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiTechCompare === '3g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestCompare.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiTechCompare === '2g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestCompare.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\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} else {\r\n\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\tmapTwo.control, driveTestCompare.driveTestPoints,\r\n\t\t\t\t\t\tdriveTestCompare.driveTestLegend || '', false,\r\n\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}, [driveTestCompare]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapTwo) {\r\n\t\t\t_removeLayerById(mapTwo.control, 'topologyColors');\r\n\t\t\tif (driveTestScannerCompare.driveTestLegend !== undefined) {\r\n\t\t\t\tif (driveTestScannerCompare.driveTestLegend.title !== 'none') {\r\n\t\t\t\t\tif (selectedDatesCompare.length > 0 && formState.values.freq4gCompare !== '' && formState.values.top4gCompare !== '') {\r\n\t\t\t\t\t\tif (driveTestScannerCompare.driveTestLegend.title === 'empty') {\r\n\t\t\t\t\t\t\tdispatch(enqueueSnackbar({ message: 'No data found for Scanner', options: { variant: 'warning' } }));\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestScannerCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScannerCompare.driveTestLegend || '', false,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiScannerTechCompare === '4g') {\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestScannerCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScannerCompare.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tif (driveTestScannerCompare.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\tconst _map = mapTwo.control.mapContext.map;\r\n\t\t\t\t\t\t\t\tconst mapBounds = _map.getBounds();\r\n\t\t\t\t\t\t\t\tconst mapBoundsPoints = {\r\n\t\t\t\t\t\t\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\t\t\t\t\t\t\tsouthWest: mapBounds._southWest\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tmapTwo.control.updateTopologyCarriersColors(driveTestScannerCompare.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiScannerTechCompare === '3g') {\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestScannerCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScannerCompare.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tif (driveTestScannerCompare.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\tconst _map = mapTwo.control.mapContext.map;\r\n\t\t\t\t\t\t\t\tconst mapBounds = _map.getBounds();\r\n\t\t\t\t\t\t\t\tconst mapBoundsPoints = {\r\n\t\t\t\t\t\t\t\t\tnorthEast: mapBounds._northEast,\r\n\t\t\t\t\t\t\t\t\tsouthWest: mapBounds._southWest\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tmapTwo.control.updateTopologyCarriersColors(driveTestScannerCompare.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (formState.values.selectedKpiScannerTechCompare === '2g') {\r\n\t\t\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\t\t\tmapTwo.control, driveTestScannerCompare.driveTestPoints,\r\n\t\t\t\t\t\t\t\tdriveTestScannerCompare.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t\t\t\t\t'kpis'\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} else {\r\n\t\t\t\t\t_addLayerKpiScanner(\r\n\t\t\t\t\t\tmapTwo.control, driveTestScannerCompare.driveTestPoints,\r\n\t\t\t\t\t\tdriveTestScannerCompare.driveTestLegend || '', false,\r\n\t\t\t\t\t\t'kpis'\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}, [driveTestScannerCompare]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapTwo) {\r\n\t\t\t_addLayerKpiScanner(\r\n\t\t\t\tmapTwo.control, scannerRouteCompare.driveTestPoints,\r\n\t\t\t\tscannerRouteCompare.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t'scannerRoute'\r\n\t\t\t);\r\n\t\t}\r\n\t}, [scannerRouteCompare]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tmapOne.control.mapContext.map.invalidateSize();\r\n\t\t\tmapTwo.control.mapContext.map.invalidateSize();\r\n\t\t\tmapOne.control.mapContext.map.sync(mapTwo.control.mapContext.map);\r\n\t\t\tmapTwo.control.mapContext.map.sync(mapOne.control.mapContext.map);\r\n\t\t}\r\n\t}, [formState.values.mapCompare, formState.values.mapFilters]);\r\n\r\n\tconst _summaryDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleSummaryDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _carriersColorsDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleCarriersColorsDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _carriersColorsPickerDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleCarriersColorsPickerDialog(false));\r\n\t\t\tdispatch(ToggleCarriersColorsDialog(true));\r\n\t\t}\r\n\t};\r\n\r\n\t// console.log(formState.values.selectedKpiTech);\r\n\t// console.log(formState.values.selectedKpiScannerTech);\r\n\r\n\tlet data;\r\n\tif (formState.values.selectedKpiTech !== undefined || formState.values.selectedKpiScannerTech !== undefined) {\r\n\t\tif (formState.values.selectedKpiTech !== undefined) {\r\n\t\t\tdata = driveTest.chartData;\r\n\t\t} else if (formState.values.selectedKpiScannerTech !== undefined) {\r\n\t\t\tdata = driveTestScanner.chartData;\r\n\t\t}\r\n\t}\r\n\r\n\t// console.log(formState.values.selectedKpiTechCompare);\r\n\t// console.log(formState.values.selectedKpiScannerTechCompare);\r\n\r\n\tlet dataCompare;\r\n\tif (formState.values.selectedKpiTechCompare !== undefined || formState.values.selectedKpiScannerTechCompare !== undefined) {\r\n\t\tif (formState.values.selectedKpiTechCompare !== undefined) {\r\n\t\t\tdataCompare = driveTestCompare.chartData;\r\n\t\t} else if (formState.values.selectedKpiScannerTechCompare !== undefined) {\r\n\t\t\tdataCompare = driveTestScannerCompare.chartData;\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\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\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\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\r\n\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\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\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{summaryDialogVisibility && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{carriersColorsDialogVisibility && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{carriersColorsPickerDialogVisibility && (\r\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 FailuresMap;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport {\r\n\tSetFormState,\r\n} from '../../../actions/AlgorithmsActions';\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\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 ByCoordinates = () => {\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.algorithmsReducer.formState);\r\n\r\n\tconst _handleChange = (event) => {\r\n\t\tevent.persist();\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\treturn (\r\n\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\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{/* 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\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 ByCoordinates;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, FilesDropzone, Alert, FilePicker } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { SetFormState } from '../../../actions/AlgorithmsActions';\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}));\r\n\r\nconst ByFile = () => {\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.algorithmsReducer.formState);\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\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\talgoInputFilePath: file\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{/* 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
\r\n\t);\r\n};\r\n\r\nexport default ByFile;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport {\r\n\tSetFormState, GetAlgorithmsDates, RunOvershootingByCoordinates, RunOvershootingByFile, UploadFileThenRunOvershooting\r\n} from '../../actions/AlgorithmsActions';\r\nimport ByCoordinates from './components/ByCoordinates';\r\nimport ByFile from './components/ByFile';\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\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 Overshooting = () => {\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.algorithmsReducer.formState);\r\n\tconst algoCities = useSelector((state) => state.algorithmsReducer.algoCities);\r\n\tconst algoDates = useSelector((state) => state.algorithmsReducer.algoDates);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst [state, setState] = React.useState({\r\n\t\ttech2g: false,\r\n\t\ttech3g: false,\r\n\t\ttech4g: false,\r\n\t});\r\n\r\n\tconst { tech2g, tech3g, tech4g } = state;\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'byCoordinates', label: 'Coordinates' },\r\n\t\t{ value: 'byFile', label: 'Sites' },\r\n\t];\r\n\r\n\tconst osParameters2g = {\r\n\t\tnumberOfBins: formState.values.numberOfBins2g,\r\n\t\tpowerDelta: formState.values.powerDelta2g,\r\n\t\tclusterRadius: formState.values.clusterRadius2g,\r\n\t\twarningPwrDelta: formState.values.warningPwrDelta2g,\r\n\t\tpowerThreshold: formState.values.powerThreshold2g,\r\n\t\tqualityDelta: formState.values.qualityDelta2g,\r\n\t\tqualityThreshold: formState.values.qualityThreshold2g,\r\n\t\twarningQualityDelta: formState.values.warningQualityDelta2g\r\n\t};\r\n\r\n\tconst osParameters3g = {\r\n\t\tnumberOfBins: formState.values.numberOfBins3g,\r\n\t\tpowerDelta: formState.values.powerDelta3g,\r\n\t\tclusterRadius: formState.values.clusterRadius3g,\r\n\t\twarningPwrDelta: formState.values.warningPwrDelta3g,\r\n\t\tpowerThreshold: formState.values.powerThreshold3g,\r\n\t\tqualityDelta: formState.values.qualityDelta3g,\r\n\t\tqualityThreshold: formState.values.qualityThreshold3g,\r\n\t\twarningQualityDelta: formState.values.warningQualityDelta3g\r\n\t};\r\n\r\n\tconst osParameters4g = {\r\n\t\tnumberOfBins: formState.values.numberOfBins4g,\r\n\t\tpowerDelta: formState.values.powerDelta4g,\r\n\t\tclusterRadius: formState.values.clusterRadius4g,\r\n\t\twarningPwrDelta: formState.values.warningPwrDelta4g,\r\n\t\tpowerThreshold: formState.values.powerThreshold4g,\r\n\t\tqualityDelta: formState.values.qualityDelta4g,\r\n\t\tqualityThreshold: formState.values.qualityThreshold4g,\r\n\t\twarningQualityDelta: formState.values.warningQualityDelta4g\r\n\t};\r\n\r\n\tconst [tab, setTab] = useState('byCoordinates');\r\n\r\n\tconst _handleOsParametersChange = (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});\r\n\t};\r\n\r\n\tconst _handleTechChange = (event) => {\r\n\t\tsetState({ ...state, [event.target.name]: event.target.checked });\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.checked\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _handleChangeCity = (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});\r\n\t\tdispatch(GetAlgorithmsDates(event.target.value));\r\n\t};\r\n\r\n\tconst _handleChangeDate = (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});\r\n\t};\r\n\r\n\tconst _runAlgorithm = (event) => {\r\n\t\tconst points = {\r\n\t\t\tnorthEastLatitude: formState.values.northEastLatitude,\r\n\t\t\tnorthEastLongitude: formState.values.northEastLongitude,\r\n\t\t\tsouthWestLatitude: formState.values.southWestLatitude,\r\n\t\t\tsouthWestLongitude: formState.values.southWestLongitude\r\n\t\t};\r\n\r\n\t\tif (!formState.values.tech2g && !formState.values.tech3g && !formState.values.tech4g) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'Please select one or more Technologies', options: { variant: 'Warning' } }));\r\n\t\t} else if (formState.values.algoSelectedCity === '') {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'Please select a City', options: { variant: 'Warning' } }));\r\n\t\t} else if (formState.values.algoSelectedDate === '') {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'Please select a Date', options: { variant: 'Warning' } }));\r\n\t\t} else if (formState.values.algoSelectedTab === 'byCoordinates') {\r\n\t\t\tdispatch(RunOvershootingByCoordinates(\r\n\t\t\t\tuserId, formState.values.algoSelectedCity, formState.values.algoSelectedDate, points,\r\n\t\t\t\tformState.values.tech2g, formState.values.tech3g, formState.values.tech4g,\r\n\t\t\t\tosParameters2g, osParameters3g, osParameters4g\r\n\t\t\t));\r\n\t\t} else if (formState.values.algoSelectedTab === 'byFile') {\r\n\t\t\tif (formState.values.algoInputFilePath.size > 50000000) {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'File size cannot be superior to 50MB', options: { variant: 'warning' } }));\r\n\t\t\t} else if (formState.values.algoInputFilePath === '') {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'No file selected', options: { variant: 'Info' } }));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(UploadFileThenRunOvershooting(\r\n\t\t\t\t\tuserId, formState.values.algoSelectedCity, formState.values.algoSelectedDate,\r\n\t\t\t\t\tformState.values.algoInputFilePath, formState.values.tech2g, formState.values.tech3g, formState.values.tech4g,\r\n\t\t\t\t\tosParameters2g, osParameters3g, osParameters4g\r\n\t\t\t\t));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(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\talgoSelectedTab: value\r\n\t\t\t}\r\n\t\t});\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{/* 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\r\n\t\t\t\t\t\t\t{/* New row */}\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{/* Technology */}\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\tlabel=\"2G\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabelPlacement=\"top\"\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\tlabel=\"3G\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabelPlacement=\"top\"\r\n\t\t\t\t\t\t\t\t\t\t\t\ton\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\tlabel=\"4G\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabelPlacement=\"top\"\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\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\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\r\n\t\t\t\t\t\t\t{/* New row */}\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\r\n\t\t\t\t\t\t\t{/* New row */}\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\r\n\t\t\t\t\t\t\t{/* New row */}\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\r\n\t\t\t\t\t\t\t{/* New row */}\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\r\n\t\t\t\t\t\t\t{/* New row */}\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\r\n\t\t\t\t\t\t\t{/* New row */}\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\r\n\t\t\t\t\t\t\t{/* New row */}\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\r\n\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\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{tabs.map((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\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'byCoordinates' && }\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'byFile' && }\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{/* New row */}\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\tRun\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\r\n\t\t\t{/* New row */}\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\nexport default Overshooting;\r\n","import React, { useEffect, useCallback, useRef } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, FormControl,\r\n\tFormLabel, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, PdfSiglePage, PdfAllPages } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport {\r\n\tSetFormState, GetAlgorithmsDates, RunOvershootingByCoordinates\r\n} from '../../actions/AlgorithmsActions';\r\n// import pdfTest from '../../../../components/PdfViewer/test.pdf';\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\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 CrossedSectors = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\r\n\treturn (\r\n\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{/* */}\r\n\t\t\t\t\t

Under construction

\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\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 CrossedSectors;\r\n","import React, { useEffect, useCallback, useRef } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, FormControl,\r\n\tFormLabel, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, PdfSiglePage, PdfAllPages } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport {\r\n\tSetFormState, GetAlgorithmsDates, RunOvershootingByCoordinates\r\n} from '../../actions/AlgorithmsActions';\r\n// import pdfTest from '../../../../components/PdfViewer/test.pdf';\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\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 CoverageHoles = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\r\n\treturn (\r\n\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{/* */}\r\n\t\t\t\t\t

Under construction

\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\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 CoverageHoles;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport {\r\n\tSetFormState, GetAlgorithmsCities\r\n} from '../actions/AlgorithmsActions';\r\nimport Overshooting from './components/Overshooting';\r\nimport CrossedSectors from './components/CrossedSectors';\r\nimport CoverageHoles from './components/CoverageHoles';\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\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 tabs = [\r\n\t{ value: 'overshooting', label: 'Overshooting' },\r\n\t{ value: 'crossedSectors', label: 'Crossed Sectors' },\r\n\t{ value: 'coverageHoles', label: 'Coverage Holes' },\r\n];\r\n\r\nconst Algorithms = () => {\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.algorithmsReducer.formState);\r\n\tconst algoFilePath = useSelector((state) => state.algorithmsReducer.algoFilePath);\r\n\tconst [tab, setTab] = useState('overshooting');\r\n\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _getData = useCallback(() => {\r\n\t\tdispatch(GetAlgorithmsCities(userId));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t_getData();\r\n\t}, [_getData]);\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\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((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{tab === 'overshooting' && }\r\n\t\t\t\t{tab === 'crossedSectors' && }\r\n\t\t\t\t{tab === 'coverageHoles' && }\r\n\t\t\t
\r\n\t\t\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\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\nexport default Algorithms;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const SaveExcelFileRequest = (userId, tempFilePath) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}RepositoryExcel/SaveExcelFile`,\r\n\tdata: { userId, tempFilePath }\r\n});\r\n\r\nexport const GetRepositoryFilesRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}RepositoryExcel/GetRepositoryFiles`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const DownloadRepositoryFileRequest = (userId, tableId, filename) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}RepositoryExcel/DownloadRepositoryFile`,\r\n\tparams: { userId, tableId, filename }\r\n});\r\n\r\nexport const RemoveRepositoryFileRequest = (userId, tableId, filename) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}RepositoryExcel/RemoveRepositoryFile`,\r\n\tparams: { userId, tableId, filename }\r\n});\r\n","import { DownloadFile, enqueueSnackbar, UploadFile } from 'actions';\r\nimport {\r\n\tGetRepositoryFilesRequest,\r\n\tSaveExcelFileRequest,\r\n\tDownloadRepositoryFileRequest,\r\n\tRemoveRepositoryFileRequest\r\n} from '../requests/RepositoryExcelRequests';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const GET_REPOSITORY_FILES = 'GET_REPOSITORY_FILES';\r\nexport const TOGGLE_REMOVE_REPOSITORY_FILE_DIALOG = 'TOGGLE_REMOVE_REPOSITORY_FILE_DIALOG';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetRepositoryFiles = (value) => ({\r\n\ttype: GET_REPOSITORY_FILES,\r\n\tfilesInfo: value\r\n});\r\n\r\nconst onToggleRemoveRepositoryFileDialog = (visible, tableId, filename) => ({\r\n\ttype: TOGGLE_REMOVE_REPOSITORY_FILE_DIALOG,\r\n\tvisible,\r\n\ttableId,\r\n\tfilename\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const GetRepositoryFiles = (userId) => async (dispatch) => {\r\n\tawait GetRepositoryFilesRequest(userId).then(response => {\r\n\t\tdispatch(onGetRepositoryFiles(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 SaveExcelFile = (userId, filePath) => async (dispatch) => {\r\n\tawait SaveExcelFileRequest(userId, filePath).then(response => {\r\n\t\tdispatch(GetRepositoryFiles());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 UploadExcelFile = (userId, file) => async (dispatch) => {\r\n\tawait UploadFile(file).then(response => {\r\n\t\tdispatch(SaveExcelFile(userId, response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DownloadRepositoryFile = (userId, tableId, filename) => async (dispatch) => {\r\n\tawait DownloadRepositoryFileRequest(userId, tableId, filename).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 ToggleRemoveRepositoryFileDialog = (visible, tableId, filename) => (dispatch) => {\r\n\tdispatch(onToggleRemoveRepositoryFileDialog(visible, tableId, filename));\r\n};\r\n\r\nexport const RemoveRepositoryFile = (userId, tableId, filename) => async (dispatch) => {\r\n\tawait RemoveRepositoryFileRequest(userId, tableId, filename).then(response => {\r\n\t\tdispatch(GetRepositoryFiles());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\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 React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, FilesDropzone, Alert, FilePicker } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { SetFormState, UploadExcelFile } from '../../../actions/RepositoryExcelActions';\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}));\r\n\r\nconst ExcelUpload = () => {\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.repositoryReducer.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 === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n\t\t\t|| event.target.files[0].type === 'text/csv' || event.target.files[0].type === 'application/x-zip-compressed') {\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\trepositoryExcelInputFilePath: 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 _saveExcelFile = (event) => {\r\n\t\tif (formState.values.repositoryExcelInputFilePath) {\r\n\t\t\tif (formState.values.repositoryExcelInputFilePath.size > 100000000) {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'File size cannot be superior to 100MB', options: { variant: 'warning' } }));\r\n\t\t\t} else if (formState.values.repositoryExcelInputFilePath === '') {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'No file selected', options: { variant: 'Info' } }));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(UploadExcelFile(userId, formState.values.repositoryExcelInputFilePath));\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'File uploaded', options: { variant: 'info' } }));\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{/* 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\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tUpload\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\r\nexport default ExcelUpload;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@material-ui/core';\r\n\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Label from '../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../components/DataTable/DataTable.js';\r\nimport { SetFormState, DownloadRepositoryFile, ToggleRemoveRepositoryFileDialog } from '../../../actions/RepositoryExcelActions';\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\ttableRow: {\r\n\t\t'&:hover': {\r\n\t\t\tcursor: 'pointer'\r\n\t\t}\r\n\t}\r\n}));\r\n\r\nconst ExcelTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\tconst classes = useStyles();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _downloadFile = (tableId, filename) => {\r\n\t\tdispatch(DownloadRepositoryFile(userId, tableId, filename));\r\n\t};\r\n\r\n\tconst _removeFile = (tableId, filename) => {\r\n\t\tdispatch(ToggleRemoveRepositoryFileDialog(true, tableId, filename));\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 _downloadFile(rowData[0], rowData[1])}\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 _removeFile(rowData[0], rowData[1])}\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: 'filename',\r\n\t\t\t\tlabel: 'File',\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: 'userName',\r\n\t\t\t\tlabel: 'User',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nExcelTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default ExcelTable;\r\n","import React, { useEffect, useCallback, useState, useMemo } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport { SetFormState, GetRepositoryFiles } from '../../actions/RepositoryExcelActions';\r\nimport ExcelUpload from './components/ExcelUpload';\r\nimport ExcelTable from './components/ExcelTable';\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\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 RepositoryForm = () => {\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.repositoryReducer.formState);\r\n\tconst filesInfo = useSelector((state) => state.repositoryReducer.filesInfo);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetRepositoryFiles(userId));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* New row */}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default RepositoryForm;\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 '@material-ui/styles';\r\nimport { colors, InputBase } from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport { SetFormState, ToggleRemoveRepositoryFileDialog, RemoveRepositoryFile } from '../../actions/RepositoryExcelActions';\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 RepositoryFileRemoveDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst tableId = useSelector((state) => state.repositoryReducer.tableId);\r\n\tconst filename = useSelector((state) => state.repositoryReducer.filename);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(RemoveRepositoryFile(userId, tableId, filename));\r\n\t\tdispatch(ToggleRemoveRepositoryFileDialog(false));\r\n\t\tdispatch(enqueueSnackbar({ message: 'File removed', 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\nRepositoryFileRemoveDialog.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 RepositoryFileRemoveDialog;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Tabs, Tab, Divider } from '@material-ui/core';\r\nimport { Page, Header } from 'components';\r\nimport { ToggleRemoveRepositoryFileDialog, RemoveRepositoryFile } from '../actions/RepositoryExcelActions';\r\nimport RepositoryForm from './components/RepositoryExcelForm';\r\nimport RepositoryFileRemoveDialog from './components/RepositoryExcelFileRemoveDialog';\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 Repository = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst removeRepoFileDialogVisibility = useSelector((state) => state.repositoryReducer.removeRepoFileDialogVisibility);\r\n\r\n\tconst _repoFileRemoveDialogClose = () => {\r\n\t\tdispatch(ToggleRemoveRepositoryFileDialog(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{removeRepoFileDialogVisibility && (\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 Repository;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, FilesDropzone, Alert, FilePicker } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { SetFormState, UploadPdfFile } from '../../../actions/RepositoryPdfActions';\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}));\r\n\r\nconst PdfUpload = (props) => {\r\n\tconst { stream, ...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.repositoryReducer.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 === '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\trepositoryPdfInputFilePath: 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 _savePdfFile = (event) => {\r\n\t\tif (formState.values.repositoryPdfInputFilePath) {\r\n\t\t\tif (formState.values.repositoryPdfInputFilePath.size > 50000000) {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'File size cannot be superior to 50MB', options: { variant: 'warning' } }));\r\n\t\t\t} else if (formState.values.repositoryPdfInputFilePath === '') {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'No file selected', options: { variant: 'Info' } }));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(UploadPdfFile(userId, stream, formState.values.repositoryPdfInputFilePath));\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'File uploaded', options: { variant: 'info' } }));\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{/* 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\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tUpload\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\r\nPdfUpload.propTypes = {\r\n\tstream: PropTypes.string.isRequired\r\n};\r\n\r\nexport default PdfUpload;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@material-ui/core';\r\n\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Label from '../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../components/DataTable/DataTable.js';\r\nimport { SetFormState, DownloadRepositoryFile, ToggleRemoveRepositoryFileDialog, GetPdfInformation } from '../../../actions/RepositoryPdfActions';\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\ttableRow: {\r\n\t\t'&:hover': {\r\n\t\t\tcursor: 'pointer'\r\n\t\t}\r\n\t}\r\n}));\r\n\r\nconst PdfTable = (props) => {\r\n\tconst { className, data, stream, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.repositoryReducer.formState);\r\n\tconst classes = useStyles();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _downloadFile = (tableId, filename) => {\r\n\t\tdispatch(DownloadRepositoryFile(userId, tableId, filename));\r\n\t};\r\n\r\n\tconst _removeFile = (tableId, filename) => {\r\n\t\tdispatch(ToggleRemoveRepositoryFileDialog(true, tableId, filename, stream));\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 _downloadFile(rowData[0], rowData[1])}\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 _removeFile(rowData[0], rowData[1])}\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: 'filename',\r\n\t\t\t\tlabel: 'File',\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: 'userName',\r\n\t\t\t\tlabel: 'User',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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: '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 _handleRowClick = (rowData, rowState) => {\r\n\t\tdispatch(GetPdfInformation(userId, rowData[0], rowData[1]));\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\tfilename: rowData[1]\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\tsearch: true,\r\n\t\tfilter: false,\r\n\t\tviewColumns: false,\r\n\t\tonRowClick: _handleRowClick,\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\nPdfTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tstream: PropTypes.string\r\n};\r\n\r\nexport default PdfTable;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Tabs, Tab, Divider } from '@material-ui/core';\r\nimport { Page, Header, PdfSiglePage } from 'components';\r\nimport PropTypes from 'prop-types';\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 PdfViewer = (props) => {\r\n\tconst { pdf, filename } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\t// dispatch();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\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\nPdfViewer.propTypes = {\r\n\tpdf: PropTypes.string.isRequired,\r\n\tfilename: PropTypes.string.isRequired\r\n};\r\n\r\nexport default PdfViewer;\r\n","import React, { useEffect, useCallback, useState, useMemo } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport { SetFormState, GetRepositoryFiles } from '../../actions/RepositoryPdfActions';\r\nimport PdfUpload from './components/PdfUpload';\r\nimport PdfTable from './components/PdfTable';\r\nimport PdfViewer from './components/PdfViewer';\r\n\r\n// import file from '../test.pdf';\r\n\r\n// const file = 'data:application/pdf;base64,${prescription}';\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\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 RepositoryForm = () => {\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.repositoryReducer.formState);\r\n\tconst filesInfo = useSelector((state) => state.repositoryReducer.filesInfo);\r\n\tconst pdfInformationBase64 = useSelector((state) => state.repositoryReducer.pdfInformationBase64);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst { filename } = formState.values;\r\n\r\n\tconst pdfInformationBase64Complete = `data:application/pdf;base64,${pdfInformationBase64}`;\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'General', label: 'General' },\r\n\t\t{ value: 'FailuresPreCampaign', label: 'Failures Pre-Campaign' },\r\n\t\t{ value: 'PreCampaign', label: 'Pre-Campaign' },\r\n\t\t{ value: 'AreaOptimisation', label: 'Area Optimisation' },\r\n\t\t{ value: 'SiteOptimization', label: 'Site Optimisation' },\r\n\t\t{ value: 'ContinuousMonitoring', label: 'Continuous Monitoring' },\r\n\t\t{ value: 'DeepAnalysis', label: 'Deep Analysis' }\r\n\t];\r\n\r\n\tconst [tab, setTab] = useState('General');\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetRepositoryFiles(userId, tab));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, []);\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t\tdispatch(GetRepositoryFiles(userId, value));\r\n\t};\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\tlet pdfSelected = true;\r\n\r\n\tif (pdfInformationBase64 === '') {\r\n\t\tpdfSelected = 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\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{/* New row */}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* New row */}\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{tabs.map((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\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'General' && }\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'FailuresPreCampaign' && }\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'PreCampaign' && }\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'AreaOptimisation' && }\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'SiteOptimization' && }\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'ContinuousMonitoring' && }\r\n\t\t\t\t\t\t\t\t\t\t{tab === 'DeepAnalysis' && }\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\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 RepositoryForm;\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 '@material-ui/styles';\r\nimport { colors, InputBase } from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport { SetFormState, ToggleRemoveRepositoryFileDialog, RemoveRepositoryFile } from '../../actions/RepositoryPdfActions';\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 RepositoryFileRemoveDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst tableId = useSelector((state) => state.repositoryReducer.tableId);\r\n\tconst filename = useSelector((state) => state.repositoryReducer.filename);\r\n\tconst stream = useSelector((state) => state.repositoryReducer.stream);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(RemoveRepositoryFile(userId, tableId, filename, stream));\r\n\t\tdispatch(ToggleRemoveRepositoryFileDialog(false));\r\n\t\tdispatch(enqueueSnackbar({ message: 'File removed', 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\nRepositoryFileRemoveDialog.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 RepositoryFileRemoveDialog;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Tabs, Tab, Divider } from '@material-ui/core';\r\nimport { Page, Header } from 'components';\r\nimport { ToggleRemoveRepositoryFileDialog, RemoveRepositoryFile } from '../actions/RepositoryPdfActions';\r\nimport RepositoryForm from './components/RepositoryPdfForm';\r\nimport RepositoryFileRemoveDialog from './components/RepositoryPdfFileRemoveDialog';\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 Repository = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst removeRepoFileDialogVisibility = useSelector((state) => state.repositoryReducer.removeRepoFileDialogVisibility);\r\n\r\n\tconst _repoFileRemoveDialogClose = () => {\r\n\t\tdispatch(ToggleRemoveRepositoryFileDialog(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{removeRepoFileDialogVisibility && (\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 Repository;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip\r\n} from '@material-ui/core';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/EditOutlined';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport Label from '../../../../components/Label';\r\nimport DataTable from '../../../../components/DataTable/DataTable.js';\r\n\r\nimport { GetOptSiteIncidentDetails, ToggleOptSiteDialog, ToggleDeleteOptSiteDialog } from '../../actions/OptSiteActions';\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 OptSiteDatatable = (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(GetOptSiteIncidentDetails(userId, tableId));\r\n\t\tdispatch(ToggleOptSiteDialog(true, tableId));\r\n\t};\r\n\r\n\tconst _deleteIncident = (tableId) => {\r\n\t\tdispatch(ToggleDeleteOptSiteDialog(true, tableId));\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: 'driveTestCity',\r\n\t\t\t\tlabel: 'DriveTest City',\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: 'driveTestRound',\r\n\t\t\t\tlabel: 'DriveTest Round',\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: 'source',\r\n\t\t\t\tlabel: 'Source',\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: 'numberOfFailures',\r\n\t\t\t\tlabel: '# Failures',\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: 'failureType',\r\n\t\t\t\tlabel: 'Failure Type',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'incNumber',\r\n\t\t\t\tlabel: 'Inc Number',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'incTefNumber',\r\n\t\t\t\tlabel: 'Inc Tef Number',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\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\nOptSiteDatatable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default OptSiteDatatable;\r\n","import React, { useState, useEffect, useRef, useMemo } 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 '@material-ui/styles';\r\nimport moment from 'moment';\r\nimport {\r\n\tButton, Chip, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTextField, Typography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch, CardHeader, CardContent,\r\n} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@material-ui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport _ from 'underscore';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SelectField } from 'components';\r\nimport DatePicker from 'components/DatePicker/DatePicker';\r\nimport {\r\n\tSetFormState, GetAutocompleteFields, GetDriveTestsDrives,\r\n\tGetDriveTestsDates, SetSelectedDates, GetFailures,\r\n\tSetSelectedFailures, ToggleAttachFileOptSiteDialog, DownloadAttachment,\r\n\tToggleRemoveFileOptSiteDialog\r\n} from '../../../../actions/OptSiteActions';\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(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n}));\r\n\r\nconst OptSiteDialogForm = (props) => {\r\n\tconst { className, tableId, ...rest } = props;\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.optSiteReducer.formState);\r\n\tconst dropdowns = useSelector((state) => state.optSiteReducer.dropdowns);\r\n\tconst autocompleteFields = useSelector((state) => state.optSiteReducer.autocompleteFields);\r\n\tconst cities = useSelector((state) => state.optSiteReducer.cities);\r\n\tconst drives = useSelector((state) => state.optSiteReducer.drives);\r\n\tconst dates = useSelector((state) => state.optSiteReducer.dates);\r\n\tconst selectedDates = useSelector((state) => state.optSiteReducer.selectedDates);\r\n\tconst failures = useSelector((state) => state.optSiteReducer.failures);\r\n\tconst selectedFailures = useSelector((state) => state.optSiteReducer.selectedFailures);\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 _hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\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 === 'globalStatus') {\r\n\t\t\tif (event.target.value === 'Open') {\r\n\t\t\t\tsetStatusClosedDate('');\r\n\t\t\t} else if (event.target.value === 'Closed' && formState.values.closedDate !== undefined && formState.values.closedDate !== null) {\r\n\t\t\t\tsetStatusClosedDate(moment(formState.values.closedDate).format('DD/MM/YYYY 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 _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]:\r\n\t\t\t\t\tvalue,\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 _handleChangeCity = (event) => {\r\n\t\tdispatch(GetDriveTestsDrives(event.target.value));\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[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\tselectedDrive: ''\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\r\n\t\tdispatch(SetSelectedDates([]));\r\n\t\tdispatch(SetSelectedFailures([]));\r\n\t};\r\n\r\n\tconst _handleChangeDrive = (event) => {\r\n\t\tdispatch(GetDriveTestsDates(formState.values.driveTestCity, event.target.value));\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[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\r\n\t\tdispatch(SetSelectedDates([]));\r\n\t\tdispatch(SetSelectedFailures([]));\r\n\t};\r\n\r\n\tconst _handleChangeDates = (option) => {\r\n\t\t// console.log(option);\r\n\t\tdispatch(SetSelectedDates(option));\r\n\t\tdispatch(SetSelectedFailures([]));\r\n\t\tdispatch(GetFailures(formState.values.driveTestCity, option));\r\n\t};\r\n\r\n\tconst _handleChangeFailures = (option) => {\r\n\t\t// console.log(option);\r\n\t\tdispatch(SetSelectedFailures(option));\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\tnumberOfFailures: option.length\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};\r\n\r\n\tconst _onAddAttachmentClick = () => {\r\n\t\tdispatch(ToggleAttachFileOptSiteDialog(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(ToggleRemoveFileOptSiteDialog(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, { fullMessages: false });\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 (formState.values.closedDate !== undefined && formState.values.closedDate !== null && formState.values.globalStatus === 'Closed') {\r\n\t\t\tsetStatusClosedDate(moment(formState.values.closedDate).format('DD/MM/YYYY HH:mm:ss'));\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\t// driveTestCity: autocompleteFields.city\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 (formState.values.driveTestCity !== '') {\r\n\t\t\tdispatch(GetDriveTestsDrives(formState.values.driveTestCity));\r\n\t\t}\r\n\t}, [formState.values.driveTestCity]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (formState.values.driveTestRound !== '') {\r\n\t\t\tdispatch(GetDriveTestsDates(formState.values.driveTestCity, formState.values.driveTestRound));\r\n\t\t}\r\n\t}, [formState.values.driveTestRound]);\r\n\r\n\tuseMemo(() => {\r\n\t\t// console.log(formState.values.selectedDates)\r\n\t\tif (formState.values.selectedDates !== undefined && formState.values.selectedDates !== null) {\r\n\t\t\tdispatch(SetSelectedDates(formState.values.selectedDates));\r\n\t\t\tdispatch(GetFailures(formState.values.driveTestCity, formState.values.selectedDates));\r\n\t\t}\r\n\t}, [formState.values.selectedDates]);\r\n\r\n\t// Só para debug\r\n\t// useMemo(() => {\r\n\t// \tconsole.log(formState.values.selectedDates)\r\n\t// \tconsole.log(selectedDates)\r\n\t// }, [selectedDates]);\r\n\r\n\t// useMemo(() => {\r\n\t// \tconsole.log(formState.values.selectedFailures)\r\n\t// \tconsole.log(selectedFailures)\r\n\t// }, [selectedFailures]);\r\n\r\n\tuseMemo(() => {\r\n\t\t// console.log(failures)\r\n\t\tif (formState.values.selectedFailures !== undefined && formState.values.selectedFailures !== null) {\r\n\t\t\tdispatch(SetSelectedFailures(formState.values.selectedFailures));\r\n\t\t}\r\n\t}, [formState.values.selectedFailures]);\r\n\r\n\treturn (\r\n\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\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 _handleDateChange(value, 'date')}\r\n\t\t\t\t\t\tminutesStep={1}\r\n\t\t\t\t\t\terror={\r\n\t\t\t\t\t\t\t_hasError('date') ? formState.errors.date[0] : null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thelperText={\r\n\t\t\t\t\t\t\t_hasError('date') ? formState.errors.date[0] : null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\r\n\t\t\t\t\t\tInputLabelProps={{\r\n\t\t\t\t\t\t\tshrink: true,\r\n\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\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{/* 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\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 option.text}\r\n\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChangeDates(value); }}\r\n\t\t\t\t\t\trenderTags={(value, getTagProps) => value.slice(0, 2).map((option, index) => option.text).join(', ')}\r\n\t\t\t\t\t\trenderOption={(option, { selected }) => (\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\tcheckedIcon={}\r\n\t\t\t\t\t\t\t\t\tstyle={{ marginRight: 4 }}\r\n\t\t\t\t\t\t\t\t\tchecked={!!(selected || _.findWhere(selectedDates, option) !== undefined)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{option.text}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tmultiple\r\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 option.text}\r\n\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tonChange={(event, value) => { _handleChangeFailures(value); }}\r\n\t\t\t\t\t\trenderTags={(value, getTagProps) => value.slice(0, 2).map((option, index) => option.text).join(', ')}\r\n\t\t\t\t\t\trenderOption={(option, { selected }) => (\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\tcheckedIcon={}\r\n\t\t\t\t\t\t\t\t\tstyle={{ marginRight: 4 }}\r\n\t\t\t\t\t\t\t\t\tchecked={!!(selected || _.findWhere(selectedFailures, option) !== undefined)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{option.text}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tmultiple\r\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{/* 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\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{/* 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\t\r\n\t\t\t\t\t _handleDateChange(value, 'requested')}\r\n\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\r\n\t\t\t\t\t\tInputLabelProps={{\r\n\t\t\t\t\t\t\tshrink: true,\r\n\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\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 _handleDateChange(value, 'executionDate')}\r\n\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\r\n\t\t\t\t\t\tInputLabelProps={{\r\n\t\t\t\t\t\t\tshrink: true,\r\n\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\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{/* 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\nOptSiteDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttableId: PropTypes.string\r\n};\r\n\r\nexport default OptSiteDialogForm;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport OptSiteDialogForm from './components/OptSiteDialogForm';\r\nimport {\r\n\tSetFormState, ResetFields, GetOptSiteIncidentDetails, GetOptSiteIncidentDropdowns,\r\n\tEditOptSiteIncidentDetails, CreateOptSiteIncident,\r\n\tToggleOptSiteDialog, SetSelectedDates, SetSelectedFailures\r\n} from '../../../actions/OptSiteActions';\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 OptSiteDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst tableId = useSelector((state) => state.optSiteReducer.tableId);\r\n\tconst selectedDates = useSelector((state) => state.optSiteReducer.selectedDates);\r\n\tconst selectedFailures = useSelector((state) => state.optSiteReducer.selectedFailures);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.optSiteReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\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(EditOptSiteIncidentDetails(object));\r\n\t\t\t\tdispatch(ToggleOptSiteDialog(false));\r\n\t\t\t\t// dispatch(GetOptSitesIncidents(userId, role));\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(CreateOptSiteIncident(object));\r\n\t\t\t\tdispatch(ToggleOptSiteDialog(false));\r\n\t\t\t\t// dispatch(GetOptSitesIncidents(userId, role));\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\t// const _getData = useCallback(() => {\r\n\t// \tdispatch(GetOptSiteIncidentDetails(userId, tableId));\r\n\t// }, []);\r\n\r\n\t// useEffect(() => {\r\n\t// \t_getData();\r\n\t// }, [tableId]);\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetOptSiteIncidentDropdowns());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t\tif (tableId) {\r\n\t\t\tdispatch(GetOptSiteIncidentDetails(userId, tableId));\r\n\t\t\tdispatch(ResetFields());\r\n\t\t\tdispatch(SetSelectedDates([]));\r\n\t\t\tdispatch(SetSelectedFailures([]));\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\nOptSiteDialog.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 OptSiteDialog;\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 '@material-ui/styles';\r\nimport { colors, InputBase } from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport OptSiteDialogForm from './components/OptSiteDialogForm';\r\nimport {\r\n\tSetFormState, DeleteOptSiteIncident, ToggleDeleteOptSiteDialog, GetOptSitesIncidents\r\n} from '../../../actions/OptSiteActions';\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 OptSiteDeleteDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst tableId = useSelector((state) => state.optSiteReducer.tableId);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.optSiteReducer.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(DeleteOptSiteIncident(userId, tableId));\r\n\t\tdispatch(ToggleDeleteOptSiteDialog(false));\r\n\t\tdispatch(GetOptSitesIncidents(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\nOptSiteDeleteDialog.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 OptSiteDeleteDialog;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Redirect } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport {\r\n\tcolors, Button, TextField, Typography,\r\n\tGrid, Select, Card, CardHeader, CardContent,\r\n\tDivider, Accordion, AccordionSummary, Checkbox,\r\n\tAccordionDetails, FormControlLabel, Tabs, Tab,\r\n\tFormControl, FormGroup\r\n} from '@material-ui/core';\r\nimport { Page, Header, Map, SelectField, Label, SearchBar, FiltersDrawer, FilesDropzone, Alert, FilePicker } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport {\r\n\tSetFormState, UploadAttachment, ToggleAttachFileOptSiteDialog\r\n} from '../../../../../actions/OptSiteActions';\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 OptSiteAddFileDialog = (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.optSiteReducer.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.size > 50000000) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'File size cannot be superior to 50MB', options: { variant: 'warning' } }));\r\n\t\t} else if (formState.values.inputFilePath === '') {\r\n\t\t\tdispatch(enqueueSnackbar({ message: 'No file selected', options: { variant: 'Info' } }));\r\n\t\t} else {\r\n\t\t\tdispatch(UploadAttachment(userId, formState.values.id, formState.values.inputFilePath));\r\n\t\t\tdispatch(ToggleAttachFileOptSiteDialog(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\nOptSiteAddFileDialog.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 OptSiteAddFileDialog;\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 '@material-ui/styles';\r\nimport { colors, InputBase } from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport {\r\n\tSetFormState, RemoveAttachment, ToggleRemoveFileOptSiteDialog\r\n} from '../../../../../actions/OptSiteActions';\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 OptSiteDeleteFileDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst tableId = useSelector((state) => state.optSiteReducer.tableId);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.optSiteReducer.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(ToggleRemoveFileOptSiteDialog(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\nOptSiteDeleteFileDialog.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 OptSiteDeleteFileDialog;\r\n","import React, { useEffect, useCallback, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport BusinessCenterIcon from '@material-ui/icons/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@material-ui/icons/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport OptSiteDatatable from './components/OptSiteDatatable';\r\nimport OptSiteDialog from './components/OptSiteDialog/OptSiteDialog';\r\nimport OptSiteDeleteDialog from './components/OptSiteDialog/OptSiteDeleteDialog';\r\nimport OptSiteAddFileDialog from './components/OptSiteDialog/components/components/OptSiteAddFileDialog';\r\nimport OptSiteDeleteFileDialog from './components/OptSiteDialog/components/components/OptSiteDeleteFileDialog';\r\nimport {\r\n\tSetFormState, GetOptSitesIncidents, ToggleOptSiteDialog,\r\n\tToggleDeleteOptSiteDialog, ExportOptSitesIncidents,\r\n\tGetDriveTestsCities, SetSelectedDates, SetSelectedFailures,\r\n\tToggleAttachFileOptSiteDialog, ToggleRemoveFileOptSiteDialog\r\n} from '../actions/OptSiteActions';\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 OptSiteTracker = () => {\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.optSiteReducer.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.optSiteReducer.incidents);\r\n\tconst optSiteDialogVisibility = useSelector((state) => state.optSiteReducer.optSiteDialogVisibility);\r\n\tconst deleteOptSiteDialogVisibility = useSelector((state) => state.optSiteReducer.deleteOptSiteDialogVisibility);\r\n\tconst attachFileOptSiteDialogVisibility = useSelector((state) => state.optSiteReducer.attachFileOptSiteDialogVisibility);\r\n\tconst removeFileOptSiteDialogVisibility = useSelector((state) => state.optSiteReducer.removeFileOptSiteDialogVisibility);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (optSiteDialogVisibility === false && deleteOptSiteDialogVisibility === false) {\r\n\t\t\tdispatch(GetOptSitesIncidents(userId, role));\r\n\t\t} else {\r\n\t\t\tdispatch(GetDriveTestsCities());\r\n\t\t}\r\n\t}, [optSiteDialogVisibility, deleteOptSiteDialogVisibility]);\r\n\r\n\tconst _optSiteDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleOptSiteDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _optSiteDeleteDialogClose = () => {\r\n\t\tdispatch(ToggleDeleteOptSiteDialog(false));\r\n\t};\r\n\r\n\tconst _attachFileoptSiteDialogClose = () => {\r\n\t\tdispatch(ToggleAttachFileOptSiteDialog(false));\r\n\t};\r\n\r\n\tconst _removeFileoptSiteDialogClose = () => {\r\n\t\tdispatch(ToggleRemoveFileOptSiteDialog(false));\r\n\t};\r\n\r\n\tconst _onCreateSiteIncidentClick = () => {\r\n\t\tdispatch(ToggleOptSiteDialog(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\tdispatch(SetSelectedDates([]));\r\n\t\tdispatch(SetSelectedFailures([]));\r\n\t};\r\n\r\n\tconst _onExportIncidentsClick = () => {\r\n\t\tdispatch(ExportOptSitesIncidents(userId, role));\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\t\tCreate Incident\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tExport Incidents\r\n\t\t\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{optSiteDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{deleteOptSiteDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{attachFileOptSiteDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{removeFileOptSiteDialogVisibility && (\r\n\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 OptSiteTracker;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip\r\n} from '@material-ui/core';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport EmailIcon from '@material-ui/icons/Email';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport EditIcon from '@material-ui/icons/EditOutlined';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport Label from '../../../../components/Label';\r\nimport DataTable from '../../../../components/DataTable/DataTable.js';\r\n\r\nimport { GetOptOverallIncidentDetails, ToggleOptOverallDialog, ToggleDeleteOptOverallDialog } from '../../actions/OptOverallActions';\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 OptOverallDatatable = (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(GetOptOverallIncidentDetails(userId, tableId));\r\n\t\tdispatch(ToggleOptOverallDialog(true, tableId));\r\n\t};\r\n\r\n\tconst _deleteIncident = (tableId) => {\r\n\t\tdispatch(ToggleDeleteOptOverallDialog(true, tableId));\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: 'stream',\r\n\t\t\t\tlabel: 'Stream',\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: 'category',\r\n\t\t\t\tlabel: 'Category',\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: 'type',\r\n\t\t\t\tlabel: 'Type',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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: 'cfnOwnerName',\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: 'description',\r\n\t\t\t// \tlabel: 'Description',\r\n\t\t\t// \toptions: {\r\n\t\t\t// \t\tdisplay: true,\r\n\t\t\t// \t\tfilterType: 'textField',\r\n\t\t\t// \t}\r\n\t\t\t// },\r\n\t\t\t{\r\n\t\t\t\tname: 'reportedDate',\r\n\t\t\t\tlabel: 'Reported 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: 'vfUkComments',\r\n\t\t\t\tlabel: 'VF UK Comments',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'vfUkOwner',\r\n\t\t\t\tlabel: 'VF UK 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: '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: 'implementationDate',\r\n\t\t\t\tlabel: 'Implementation 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: 'closedDate',\r\n\t\t\t\tlabel: 'Closed 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: '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\nOptOverallDatatable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default OptOverallDatatable;\r\n","import React, { useState, useEffect, useRef, useMemo } 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 '@material-ui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@material-ui/core';\r\nimport _ from 'underscore';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SelectField } from 'components';\r\nimport DatePicker from 'components/DatePicker/DatePicker.js';\r\nimport { SetFormState } from '../../../../actions/OptOverallActions';\r\n\r\nconst schema = {\r\n\tstream: {\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(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n}));\r\n\r\nconst OptOverallDialogForm = (props) => {\r\n\tconst { className, tableId, ...rest } = props;\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.optOverallReducer.formState);\r\n\tconst dropdowns = useSelector((state) => state.optOverallReducer.dropdowns);\r\n\tconst role = useSelector(state => state.session.user.role);\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]:\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 _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]:\r\n\t\t\t\t\tvalue,\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\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, { fullMessages: false });\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]);\r\n\r\n\treturn (\r\n\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\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{/* New row */}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{/* _handleDateChange(value, 'reportedDate')}\r\n\t\t\t\t\t\tminutesStep={1}\r\n\t\t\t\t\t/> */}\r\n\t\t\t\t\t _handleDateChange(value, 'reportedDate')}\r\n\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\r\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{/* _handleDateChange(value, 'implementationDate')}\r\n\t\t\t\t\t\tminutesStep={1}\r\n\t\t\t\t\t/> */}\r\n\t\t\t\t\t _handleDateChange(value, 'implementationDate')}\r\n\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\r\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{/* _handleDateChange(value, 'closeDate')}\r\n\t\t\t\t\t\tminutesStep={1}\r\n\t\t\t\t\t/> */}\r\n\t\t\t\t\t _handleDateChange(value, 'closeDate')}\r\n\t\t\t\t\t\tformat=\"DD-MM-YYYY\"\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\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\nOptOverallDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttableId: PropTypes.string\r\n};\r\n\r\nexport default OptOverallDialogForm;\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 '@material-ui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport OptOverallDialogForm from './components/OptOverallDialogForm';\r\nimport {\r\n\tSetFormState, GetOptOverallIncidentDetails, GetOptOverallIncidentDropdowns,\r\n\tEditOptOverallIncidentDetails, CreateOptOverallIncident,\r\n\tToggleOptOverallDialog, GetOptOverallsIncidents\r\n} from '../../../actions/OptOverallActions';\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 OptOverallDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst tableId = useSelector((state) => state.optOverallReducer.tableId);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.optOverallReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst title = tableId ? 'Edit incident' : 'Create incident';\r\n\tconst confirmLabel = tableId ? 'Edit' : '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 };\r\n\t\t\tif (tableId) {\r\n\t\t\t\tdispatch(EditOptOverallIncidentDetails(object));\r\n\t\t\t\tdispatch(ToggleOptOverallDialog(false));\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'Incident edited', options: { variant: 'info' } }));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(CreateOptOverallIncident(object));\r\n\t\t\t\tdispatch(ToggleOptOverallDialog(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\t// const _getData = useCallback(() => {\r\n\t// \tdispatch(GetOptOverallIncidentDetails(userId, tableId));\r\n\t// }, []);\r\n\r\n\t// useEffect(() => {\r\n\t// \t_getData();\r\n\t// }, [tableId]);\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetOptOverallIncidentDropdowns());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t\tif (tableId) {\r\n\t\t\tdispatch(GetOptOverallIncidentDetails(userId, tableId));\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\nOptOverallDialog.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 OptOverallDialog;\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 '@material-ui/styles';\r\nimport { colors, InputBase } from '@material-ui/core';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport OptOverallDialogForm from './components/OptOverallDialogForm';\r\nimport {\r\n\tSetFormState, DeleteOptOverallIncident, ToggleDeleteOptOverallDialog, GetOptOverallsIncidents\r\n} from '../../../actions/OptOverallActions';\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 OptOverallDeleteDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\t// const roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst tableId = useSelector((state) => state.optOverallReducer.tableId);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.optOverallReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(DeleteOptOverallIncident(userId, tableId));\r\n\t\tdispatch(ToggleDeleteOptOverallDialog(false));\r\n\t\tdispatch(GetOptOverallsIncidents(userId));\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\nOptOverallDeleteDialog.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 OptOverallDeleteDialog;\r\n","import React, { useEffect, useCallback, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport BusinessCenterIcon from '@material-ui/icons/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@material-ui/icons/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport OptOverallDatatable from './components/OptOverallDatatable';\r\nimport OptOverallDialog from './components/OptOverallDialog/OptOverallDialog';\r\nimport OptOverallDeleteDialog from './components/OptOverallDialog/OptOverallDeleteDialog';\r\nimport {\r\n\tSetFormState, GetOptOverallsIncidents, ToggleOptOverallDialog,\r\n\tToggleDeleteOptOverallDialog, ExportOptOverallsIncidents\r\n} from '../actions/OptOverallActions';\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 OptOverallTracker = () => {\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.optOverallReducer.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.optOverallReducer.incidents);\r\n\tconst optOverallDialogVisibility = useSelector((state) => state.optOverallReducer.optOverallDialogVisibility);\r\n\tconst deleteOptOverallDialogVisibility = useSelector((state) => state.optOverallReducer.deleteOptOverallDialogVisibility);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (optOverallDialogVisibility === false && deleteOptOverallDialogVisibility === false) {\r\n\t\t\tdispatch(GetOptOverallsIncidents(userId, role));\r\n\t\t}\r\n\t}, [optOverallDialogVisibility, deleteOptOverallDialogVisibility]);\r\n\r\n\tconst _optOverallDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleOptOverallDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _optOverallDeleteDialogClose = () => {\r\n\t\tdispatch(ToggleDeleteOptOverallDialog(false));\r\n\t};\r\n\r\n\tuseMemo(() => {\r\n\t\tdispatch(GetOptOverallsIncidents(userId, role));\r\n\t}, [optOverallDialogVisibility, deleteOptOverallDialogVisibility]);\r\n\r\n\tconst _onCreateOverallIncidentClick = () => {\r\n\t\tdispatch(ToggleOptOverallDialog(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(ExportOptOverallsIncidents(userId, role));\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\t\tCreate Incident\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tExport Incidents\r\n\t\t\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{optOverallDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{deleteOptOverallDialogVisibility && (\r\n\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 OptOverallTracker;\r\n","/* eslint-disable react/no-multi-comp */\r\n/* eslint-disable react/display-name */\r\nimport React, { lazy } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nimport AuthGuard from './components/AuthGuard';\r\n\r\nimport AuthLayout from './layouts/Auth';\r\nimport ErrorLayout from './layouts/Error';\r\nimport DashboardLayout from './layouts/Dashboard';\r\nimport DashboardAnalyticsView from './views/DashboardAnalytics';\r\nimport DashboardDefaultView from './views/DashboardDefault';\r\nimport OverviewView from './views/Overview';\r\nimport Home from './views/Home';\r\nimport PresentationView from './views/Presentation';\r\nimport Users from './views/Management/components/Users';\r\nimport Operators from './views/Management/components/Operators';\r\nimport OperatorDetails from './views/Management/components/OperatorDetails';\r\nimport Settings from './views/Management/components/Settings';\r\nimport DashboardInspect from './views/Dashboard/components/Inspect/DashboardInspect.js';\r\nimport Import from './views/Tracker/components/Import';\r\nimport Failures from './views/Tracker/components/Failures';\r\nimport FailuresMap from './views/FailuresMap/components/FailuresMap';\r\nimport Algorithms from './views/Algorithms/components/Algorithms';\r\nimport RepositoryExcel from './views/RepositoryExcel/components/RepositoryExcel';\r\nimport Repository from './views/RepositoryPdf/components/RepositoryPdf';\r\nimport OptSiteTracker from './views/OptimizationsSiteTracker/components/OptSiteTracker';\r\nimport OptOverallTracker from './views/OptimizationsOverallTracker/components/OptOverallTracker';\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: DashboardInspect({ match: { params: { id: 1 } }, pageTitle: 'Home', module: 'Home' })\r\n\t\t\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: '/modules',\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: '/modules/import',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// : ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Import()\r\n\t\t\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: '/modules/failures',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// : ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Failures()\r\n\t\t\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: '/modules/map',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: FailuresMap()\r\n\t\t\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: '/modules/algorithms',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Algorithms()\r\n\t\t\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: '/modules/repositoryPdf',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Repository()\r\n\t\t\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: '/modules/repositoryExcel',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: RepositoryExcel()\r\n\t\t\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: '/modules/optSiteTracker',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: OptSiteTracker()\r\n\t\t\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: '/modules/optOverallTracker',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: OptOverallTracker()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/dashboards',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/inspect/:id',\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// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect(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\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/statistics',\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: DashboardInspect({ match: { params: { id: 2 } }, pageTitle: 'Statistics', module: 'Management' })\r\n\t\t\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\t{\r\n\t\tpath: '*',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\troles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tchildren: DashboardLayout({\r\n\t\t\t\troute: {\r\n\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/notifications',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Notifications')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/calendar',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Calendar')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/changelog',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Changelog')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/chat',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Chat')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/chat/:id',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Chat')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/dashboard/analytics',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: DashboardAnalyticsView,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/dashboard/default',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: DashboardDefaultView,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/invoices/:id',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/InvoiceDetails')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/kanban-board',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/KanbanBoard')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/mail',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Mail')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/manage/customers',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/CustomerManagementList')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/manage/customers/:id',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/CustomerManagementDetails')\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\tpath: '/manage/customers/:id/:tab',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/CustomerManagementDetails')\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\tpath: '/manage/projects',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/ProjectManagementList')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/manage/orders',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/OrderManagementList')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/manage/orders/:id',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/OrderManagementDetails')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/overview',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: OverviewView,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/presentation',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: PresentationView,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/profile/:id',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Profile')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/profile/:id/:tab',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Profile')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/projects/create',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/ProjectCreate')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/projects/:id',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/ProjectDetails')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/projects/:id/:tab',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/ProjectDetails')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/projects',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/ProjectList')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/settings',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Settings')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/settings/:tab',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/Settings')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/social-feed',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/SocialFeed')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tpath: '/getting-started',\r\n\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\tcomponent: lazy(() => import('views/GettingStarted')),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tcomponent: () => ,\r\n\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 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 const dispatch = useDispatch();\r\n const notifications = useSelector(store => store.notifierReducer.notifications || []);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n const storeDisplayed = (id) => {\r\n displayed = [...displayed, id];\r\n };\r\n\r\n const removeDisplayed = (id) => {\r\n displayed = [...displayed.filter(key => id !== key)];\r\n };\r\n\r\n React.useEffect(() => {\r\n notifications.forEach(({ key, message, options = {}, dismissed = false }) => {\r\n if (dismissed) {\r\n // dismiss snackbar using notistack\r\n closeSnackbar(key);\r\n return;\r\n }\r\n\r\n // do nothing if snackbar is already displayed\r\n if (displayed.includes(key)) return;\r\n\r\n // display snackbar using notistack\r\n enqueueSnackbar(message, {\r\n key,\r\n ...options,\r\n onClose: (event, reason, myKey) => {\r\n if (options.onClose) {\r\n options.onClose(event, reason, myKey);\r\n }\r\n },\r\n onExited: (event, myKey) => {\r\n // remove this snackbar from redux store\r\n dispatch(removeSnackbar(myKey));\r\n removeDisplayed(myKey);\r\n },\r\n });\r\n\r\n // keep track of snackbars that we've displayed\r\n storeDisplayed(key);\r\n });\r\n }, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\r\n\r\n return null;\r\n};\r\n\r\nexport default Notifier;","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 const { ctx } = this._chart\r\n const vm = this._view\r\n let { borderWidth } = vm\r\n\r\n let left\r\n let right\r\n let top\r\n let bottom\r\n let signX\r\n let signY\r\n let borderSkipped\r\n let radius\r\n\r\n // If radius is less than 0 or is large enough to cause drawing errors a max\r\n // radius is imposed. If cornerRadius is not defined set it to 0.\r\n let { cornerRadius } = this._chart.config.options\r\n if (cornerRadius < 0) {\r\n cornerRadius = 0\r\n }\r\n\r\n if (typeof cornerRadius === 'undefined') {\r\n cornerRadius = 0\r\n }\r\n\r\n if (!vm.horizontal) {\r\n // bar\r\n left = vm.x - vm.width / 2\r\n right = vm.x + vm.width / 2\r\n top = vm.y\r\n bottom = vm.base\r\n signX = 1\r\n signY = bottom > top ? 1 : -1\r\n borderSkipped = vm.borderSkipped || 'bottom'\r\n } else {\r\n // horizontal bar\r\n left = vm.base\r\n right = vm.x\r\n top = vm.y - vm.height / 2\r\n bottom = vm.y + vm.height / 2\r\n signX = right > left ? 1 : -1\r\n signY = 1\r\n borderSkipped = vm.borderSkipped || 'left'\r\n }\r\n\r\n // Canvas doesn't allow us to stroke inside the width so we can\r\n // adjust the sizes to fit if we're setting a stroke on the line\r\n if (borderWidth) {\r\n // borderWidth shold be less than bar width and bar height.\r\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom))\r\n borderWidth = borderWidth > barSize ? barSize : borderWidth\r\n const halfStroke = borderWidth / 2\r\n // Adjust borderWidth when bar top position is near vm.base(zero).\r\n const borderLeft =\r\n left + (borderSkipped !== 'left' ? halfStroke * signX : 0)\r\n const borderRight =\r\n right + (borderSkipped !== 'right' ? -halfStroke * signX : 0)\r\n const borderTop =\r\n top + (borderSkipped !== 'top' ? halfStroke * signY : 0)\r\n const borderBottom =\r\n bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0)\r\n // not become a vertical line?\r\n if (borderLeft !== borderRight) {\r\n top = borderTop\r\n bottom = borderBottom\r\n }\r\n // not become a horizontal line?\r\n if (borderTop !== borderBottom) {\r\n left = borderLeft\r\n right = borderRight\r\n }\r\n }\r\n\r\n ctx.beginPath()\r\n ctx.fillStyle = vm.backgroundColor\r\n ctx.strokeStyle = vm.borderColor\r\n ctx.lineWidth = borderWidth\r\n\r\n // Corner points, from bottom-left to bottom-right clockwise\r\n // | 1 2 |\r\n // | 0 3 |\r\n const corners = [\r\n [left, bottom],\r\n [left, top],\r\n [right, top],\r\n [right, bottom],\r\n ]\r\n\r\n // Find first (starting) corner with fallback to 'bottom'\r\n const borders = ['bottom', 'left', 'top', 'right']\r\n let startCorner = borders.indexOf(borderSkipped, 0)\r\n if (startCorner === -1) {\r\n startCorner = 0\r\n }\r\n\r\n function cornerAt(index) {\r\n return corners[(startCorner + index) % 4]\r\n }\r\n\r\n // Draw rectangle from 'startCorner'\r\n let corner = cornerAt(0)\r\n ctx.moveTo(corner[0], corner[1])\r\n\r\n for (let i = 1; i < 4; i += 1) {\r\n corner = cornerAt(i)\r\n let nextCornerId = i + 1\r\n if (nextCornerId === 4) {\r\n nextCornerId = 0\r\n }\r\n\r\n const width = corners[2][0] - corners[1][0]\r\n const height = corners[0][1] - corners[1][1]\r\n const x = corners[1][0]\r\n const y = corners[1][1]\r\n\r\n radius = cornerRadius\r\n // Fix radius being too large\r\n if (radius > Math.abs(height) / 2) {\r\n radius = Math.floor(Math.abs(height) / 2)\r\n }\r\n if (radius > Math.abs(width) / 2) {\r\n radius = Math.floor(Math.abs(width) / 2)\r\n }\r\n\r\n if (height < 0) {\r\n // Negative values in a standard bar chart\r\n const xTl = x\r\n const xTr = x + width\r\n const yTl = y + height\r\n const yTr = y + height\r\n\r\n const xBl = x\r\n const xBr = x + width\r\n const yBl = y\r\n const yBr = y\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl)\r\n ctx.lineTo(xBr - radius, yBr)\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius)\r\n ctx.lineTo(xTr, yTr + radius)\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr)\r\n ctx.lineTo(xTl + radius, yTl)\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius)\r\n ctx.lineTo(xBl, yBl - radius)\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl)\r\n } else if (width < 0) {\r\n // Negative values in a horizontal bar chart\r\n const xTl = x + width\r\n const xTr = x\r\n const yTl = y\r\n const yTr = y\r\n\r\n const xBl = x + width\r\n const xBr = x\r\n const yBl = y + height\r\n const yBr = y + height\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl)\r\n ctx.lineTo(xBr - radius, yBr)\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius)\r\n ctx.lineTo(xTr, yTr + radius)\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr)\r\n ctx.lineTo(xTl + radius, yTl)\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius)\r\n ctx.lineTo(xBl, yBl - radius)\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl)\r\n } else {\r\n // Positive Value\r\n ctx.moveTo(x + radius, y)\r\n ctx.lineTo(x + width - radius, y)\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius)\r\n ctx.lineTo(x + width, y + height - radius)\r\n ctx.quadraticCurveTo(\r\n x + width,\r\n y + height,\r\n x + width - radius,\r\n y + height\r\n )\r\n ctx.lineTo(x + radius, y + height)\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius)\r\n ctx.lineTo(x, y + radius)\r\n ctx.quadraticCurveTo(x, y, x + radius, y)\r\n }\r\n }\r\n\r\n ctx.fill()\r\n if (borderWidth) {\r\n ctx.stroke()\r\n }\r\n}\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n draw,\r\n})\r\n","import moment from 'moment'\r\n\r\nmoment.updateLocale('en', {\r\n relativeTime: {\r\n future: 'in %s',\r\n past: '%s ago',\r\n s: 'seconds',\r\n ss: '%ss',\r\n m: '1m',\r\n mm: '%dm',\r\n h: '1h',\r\n hh: '%dh',\r\n d: '1d',\r\n dd: '%dd',\r\n M: '1M',\r\n MM: '%dM',\r\n y: '1Y',\r\n yy: '%dY',\r\n },\r\n})\r\n","import validate from 'validate.js'\r\n\r\nconst regex = (value, options) => {\r\n const regExp = new RegExp(options.pattern)\r\n\r\n if (!regExp.test(value)) {\r\n return options.message\r\n }\r\n}\r\n\r\nconst checked = (value, options) => {\r\n if (value !== true) {\r\n return options.message || 'must be checked'\r\n }\r\n}\r\n\r\nvalidate.validators = {\r\n ...validate.validators,\r\n regex,\r\n checked,\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 '@material-ui/core'\r\n\r\nimport mock from 'utils/mock'\r\n\r\nmock.onGet('/api/account/profile').reply(200, {\r\n profile: {\r\n avatar: '/images/avatars/avatar_11.png',\r\n canHire: false,\r\n country: 'USA',\r\n email: 'shen.zhi@devias.io',\r\n firstName: 'Shen',\r\n isPublic: true,\r\n lastName: 'Zhi',\r\n phone: '+40 777666555',\r\n state: 'Alabama',\r\n timezone: '4:32PM (GMT-4)',\r\n },\r\n})\r\n\r\nmock.onGet('/api/account/statistics').reply(200, {\r\n statistics: {\r\n payout: '4,250',\r\n projects: '12,500',\r\n visitors: '230',\r\n watching: '5',\r\n },\r\n})\r\n\r\nmock.onGet('/api/account/projects').reply(200, {\r\n projects: [\r\n {\r\n id: uuid(),\r\n title: 'Mella Full Screen Slider',\r\n price: '3K - 6K',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n author: {\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n },\r\n tags: [\r\n {\r\n id: uuid(),\r\n text: 'Vue JS',\r\n color: colors.green[600],\r\n },\r\n ],\r\n updated_at: moment().subtract(24, 'minutes'),\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/account/todos').reply(200, {\r\n todos: [\r\n {\r\n id: uuid(),\r\n title:\r\n 'Finish the proposal design and contract for the client ASAP',\r\n deadline: moment().subtract(2, 'days'),\r\n done: false,\r\n },\r\n {\r\n id: uuid(),\r\n title:\r\n 'Finish the proposal design and contract for the client ASAP',\r\n deadline: moment(),\r\n done: false,\r\n },\r\n {\r\n id: uuid(),\r\n title:\r\n 'Upload the files for the client @Adrian Stefan with the fonts, assets exported and all the fancy svgs',\r\n deadline: moment().add(2, 'days'),\r\n done: false,\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Re-write the card component with hooks and context',\r\n deadline: moment().add(5, 'days'),\r\n done: false,\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Send proposal for the fintech project',\r\n deadline: moment().add(5, 'days'),\r\n done: false,\r\n },\r\n {\r\n id: uuid(),\r\n title:\r\n 'Create todo app with react hooks just to get a better understanding of the concept',\r\n deadline: moment().add(7, 'days'),\r\n done: true,\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/account/notifications').reply(200, {\r\n notifications: [\r\n {\r\n id: uuid(),\r\n title: 'New order has been received',\r\n type: 'order',\r\n created_at: moment().subtract(2, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'New customer is registered',\r\n type: 'user',\r\n created_at: moment().subtract(1, 'day'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Project has been approved',\r\n type: 'project',\r\n created_at: moment().subtract(3, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'New feature has been added',\r\n type: 'feature',\r\n created_at: moment().subtract(7, 'days'),\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/account/subscription').reply(200, {\r\n subscription: {\r\n name: 'Freelancer',\r\n price: '5',\r\n currency: '$',\r\n proposalsLeft: 12,\r\n templatesLeft: 5,\r\n invitesLeft: 24,\r\n adsLeft: 10,\r\n hasAnalytics: true,\r\n hasEmailAlerts: true,\r\n },\r\n})\r\n\r\nmock.onGet('/api/account/settings').reply(200, {\r\n settings: {},\r\n})\r\n","import uuid from 'uuid/v1'\r\nimport moment from 'moment'\r\nimport { colors } from '@material-ui/core'\r\n\r\nimport mock from 'utils/mock'\r\n\r\nmock.onGet('/api/calendar').reply(200, {\r\n draft: [],\r\n events: [\r\n {\r\n id: uuid(),\r\n title: 'Call Samantha',\r\n desc: 'Inform about new contract',\r\n color: colors.green['700'],\r\n start: moment('2019-07-01 16:55:00'),\r\n end: moment('2019-07-01 17:02:00'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Meet with IBM',\r\n desc: 'Discuss about new partnership',\r\n start: moment('2019-07-03 08:55:00'),\r\n end: moment('2019-07-04 15:02:00'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'SCRUM Planning',\r\n desc: 'Prepare documentation',\r\n allDay: true,\r\n start: moment('2019-07-14 16:55:00'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Beign SEM',\r\n desc: 'Meet with team to discuss',\r\n allDay: true,\r\n start: moment('2019-07-18 07:00:00'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Fire John',\r\n desc: 'Sorry, John',\r\n color: colors.green['700'],\r\n start: moment('2019-07-20 08:55:00'),\r\n end: moment('2019-07-20 09:30:00'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Call Alex',\r\n desc: 'Discuss about the new project',\r\n allDay: true,\r\n start: moment('2019-07-30 08:00:00'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Visit Samantha',\r\n color: colors.green['700'],\r\n desc: 'Get a new quote for the payment processor',\r\n start: moment('2019-07-30 08:00:00'),\r\n end: moment('2019-07-30 09:00:00'),\r\n },\r\n ],\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 \"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 '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 \"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 \"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 \"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 customers: [\r\n {\r\n id: uuid(),\r\n name: 'Ekaterina Tankova',\r\n email: 'ekaterina.tankova@devias.io',\r\n avatar: '/images/avatars/avatar_2.png',\r\n spent: '500.00',\r\n currency: '$',\r\n type: 'Agency',\r\n projects: '1',\r\n rating: 5,\r\n location: 'West Virginia, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Cao Yu',\r\n email: 'cao.yu@devias.io',\r\n avatar: '/images/avatars/avatar_3.png',\r\n spent: '300.00',\r\n type: 'Freelancer',\r\n currency: '$',\r\n projects: '3',\r\n rating: 4.3,\r\n location: 'Bristow',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Alexa Richardson',\r\n email: 'alexa.richardson@devias.io',\r\n avatar: '/images/avatars/avatar_4.png',\r\n spent: '2,600.00',\r\n type: 'Enterprise',\r\n currency: '$',\r\n projects: '0',\r\n rating: 4.5,\r\n location: 'Georgia, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Anje Keizer',\r\n email: 'anje.keizer@devias.io',\r\n avatar: '/images/avatars/avatar_5.png',\r\n spent: '5,600.00',\r\n type: 'Enterprise',\r\n currency: '$',\r\n projects: '6',\r\n rating: 4,\r\n location: 'Ohio, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Clarke Gillebert',\r\n email: 'clarke.gillebert@devias.io',\r\n avatar: '/images/avatars/avatar_6.png',\r\n spent: '500.00',\r\n type: 'Agency',\r\n currency: '$',\r\n projects: '1',\r\n rating: 3.5,\r\n location: 'Texas, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Adam Denisov',\r\n email: 'adam.denisov@devias.io',\r\n avatar: '/images/avatars/avatar_7.png',\r\n spent: '5,230.00',\r\n type: 'Agency',\r\n currency: '$',\r\n projects: '0',\r\n rating: 3,\r\n location: 'California, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Ava Gregoraci',\r\n email: 'ava.gregoraci@devias.io',\r\n avatar: '/images/avatars/avatar_8.png',\r\n spent: '300.00',\r\n type: 'Freelancer',\r\n currency: '$',\r\n projects: '0',\r\n rating: 4,\r\n location: 'California, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Emilee Simchenko',\r\n email: 'emilee.simchenko@devias.io',\r\n avatar: '/images/avatars/avatar_9.png',\r\n spent: '100.00',\r\n type: 'Agency',\r\n currency: '$',\r\n projects: '4',\r\n rating: 4.5,\r\n location: 'Nevada, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Kwak Seong-Min',\r\n email: 'kwak.seong.min@devias.io',\r\n avatar: '/images/avatars/avatar_10.png',\r\n spent: '1,000.00',\r\n type: 'Freelancer',\r\n currency: '$',\r\n projects: '2',\r\n rating: 5,\r\n location: 'Michigan, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Shen Zhi',\r\n email: 'shen.zhi@devias.io',\r\n avatar: '/images/avatars/avatar_11.png',\r\n spent: '2,300.00',\r\n type: 'Agency',\r\n currency: '$',\r\n projects: '0',\r\n rating: 3.9,\r\n location: 'Utah, USA',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Merrile Burgett',\r\n email: 'merrile.burgett@devias.io',\r\n avatar: '/images/avatars/avatar_12.png',\r\n spent: '200.00',\r\n type: 'Enterprise',\r\n currency: '$',\r\n projects: '7',\r\n rating: 4.2,\r\n location: 'Utah, USA',\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/management/customers/1/summary').reply(200, {\r\n summary: {\r\n name: 'Ekaterina Tankova',\r\n email: 'ekaterina@devias.io',\r\n phone: '+55 748 327 439',\r\n state: 'Alabama',\r\n country: 'United States',\r\n zipCode: '240355',\r\n address1: 'Street John Wick, no. 7',\r\n address2: 'House #25',\r\n iban: '4142 **** **** **** ****',\r\n autoCC: false,\r\n verified: true,\r\n currency: '$',\r\n invoices: [\r\n {\r\n id: uuid(),\r\n type: 'paid',\r\n value: 10.0,\r\n },\r\n {\r\n id: uuid(),\r\n type: 'paid',\r\n value: 15.0,\r\n },\r\n {\r\n id: uuid(),\r\n type: 'due',\r\n value: 5,\r\n },\r\n {\r\n id: uuid(),\r\n type: 'income',\r\n value: 10.0,\r\n },\r\n ],\r\n vat: 19,\r\n balance: 0,\r\n emails: [\r\n {\r\n id: uuid(),\r\n description: 'Order confirmation',\r\n created_at: moment()\r\n .subtract(3, 'days')\r\n .subtract(5, 'hours')\r\n .subtract(34, 'minutes'),\r\n },\r\n {\r\n id: uuid(),\r\n description: 'Order confirmation',\r\n created_at: moment()\r\n .subtract(4, 'days')\r\n .subtract(11, 'hours')\r\n .subtract(49, 'minutes'),\r\n },\r\n ],\r\n },\r\n})\r\n\r\nmock.onGet('/api/management/customers/1/invoices').reply(200, {\r\n invoices: [\r\n {\r\n id: uuid(),\r\n date: moment(),\r\n description: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n paymentMethod: 'Credit Card',\r\n value: '5.25',\r\n currency: '$',\r\n status: 'paid',\r\n },\r\n {\r\n id: uuid(),\r\n date: moment(),\r\n description: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n paymentMethod: 'Credit Card',\r\n value: '5.25',\r\n currency: '$',\r\n status: 'paid',\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/management/customers/1/logs').reply(200, {\r\n logs: [\r\n {\r\n id: uuid(),\r\n status: 200,\r\n method: 'POST',\r\n route: '/api/purchase',\r\n desc: 'Purchase',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(2, 'minutes')\r\n .subtract(56, 'seconds'),\r\n },\r\n {\r\n id: uuid(),\r\n status: 522,\r\n error: 'Invalid credit card',\r\n method: 'POST',\r\n route: '/api/purchase',\r\n desc: 'Purchase',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(2, 'minutes')\r\n .subtract(56, 'seconds'),\r\n },\r\n {\r\n id: uuid(),\r\n status: 200,\r\n method: 'DELETE',\r\n route: '/api/products/d65654e/remove',\r\n desc: 'Cart remove',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(8, 'minutes')\r\n .subtract(23, 'seconds'),\r\n },\r\n {\r\n id: uuid(),\r\n status: 200,\r\n method: 'GET',\r\n route: '/api/products/d65654e/add',\r\n desc: 'Cart add',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(20, 'minutes')\r\n .subtract(54, 'seconds'),\r\n },\r\n {\r\n id: uuid(),\r\n status: 200,\r\n method: 'GET',\r\n route: '/api/products/c85727f/add',\r\n desc: 'Cart add',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(34, 'minutes')\r\n .subtract(16, 'seconds'),\r\n },\r\n {\r\n id: uuid(),\r\n status: 200,\r\n method: 'GET',\r\n route: '/api/products/c85727f',\r\n desc: 'View product',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(54, 'minutes')\r\n .subtract(30, 'seconds'),\r\n },\r\n {\r\n id: uuid(),\r\n status: 200,\r\n method: 'GET',\r\n route: '/api/products',\r\n desc: 'Get products',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(56, 'minutes')\r\n .subtract(40, 'seconds'),\r\n },\r\n {\r\n id: uuid(),\r\n status: 200,\r\n method: 'POST',\r\n route: '/api/login',\r\n desc: 'Login',\r\n IP: '84.234.243.42',\r\n created_at: moment()\r\n .subtract(2, 'days')\r\n .subtract(57, 'minutes')\r\n .subtract(5, 'seconds'),\r\n },\r\n ],\r\n})\r\n","import uuid from 'uuid/v1'\r\nimport moment from 'moment'\r\nimport { colors } from '@material-ui/core'\r\n\r\nimport mock from 'utils/mock'\r\n\r\nmock.onGet('/api/mail').reply(200, {\r\n emails: [\r\n {\r\n id: uuid(),\r\n seen: true,\r\n favorited: true,\r\n labels: [\r\n {\r\n text: 'Business',\r\n color: colors.blue[600],\r\n },\r\n {\r\n text: 'Personal',\r\n color: colors.orange[600],\r\n },\r\n ],\r\n subject: 'Website redesign. Interested in collaboration',\r\n message: `\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 `,\r\n receiver: {\r\n name: 'Ekaterina Tankova',\r\n email: 'ekaterina.tankova@devias.io',\r\n avatar: '/images/avatars/avatar_2.png',\r\n },\r\n created_at: moment(),\r\n },\r\n {\r\n id: uuid(),\r\n seen: false,\r\n favorited: false,\r\n labels: [],\r\n subject: 'Amazing work',\r\n message:\r\n \"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n receiver: {\r\n name: 'Adam Denisov',\r\n email: 'adam.denisov@devias.io',\r\n avatar: '/images/avatars/avatar_7.png',\r\n },\r\n created_at: moment(),\r\n },\r\n {\r\n id: uuid(),\r\n seen: false,\r\n favorited: false,\r\n subject: 'Flight reminder',\r\n labels: [\r\n {\r\n text: 'Work',\r\n color: colors.green[600],\r\n },\r\n ],\r\n message:\r\n 'Dear Shen, Your flight is coming up soon. Please don’t forget to check in for your scheduled flight.',\r\n receiver: {\r\n name: 'Clarke Gillebert',\r\n avatar: '/images/avatars/avatar_6.png',\r\n },\r\n created_at: moment(),\r\n },\r\n {\r\n id: uuid(),\r\n seen: true,\r\n favorited: true,\r\n labels: [],\r\n subject: 'Posible candidates for the position',\r\n message:\r\n 'My market leading client has another fantastic opportunity for an experienced Software Developer to join them on a heavily remote basis',\r\n receiver: {\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n },\r\n created_at: moment(),\r\n },\r\n ],\r\n})\r\n","import uuid from 'uuid/v1'\r\nimport moment from 'moment'\r\nimport { colors } from '@material-ui/core'\r\n\r\nimport mock from 'utils/mock'\r\n\r\nmock.onGet('/api/projects').reply(200, {\r\n projects: [\r\n {\r\n id: uuid(),\r\n title: 'Mella Full Screen Slider',\r\n author: {\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n },\r\n price: '12,500',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n status: 'In progress',\r\n members: 5,\r\n tags: [\r\n {\r\n text: 'Angular JS',\r\n color: colors.red[600],\r\n },\r\n ],\r\n start_date: moment(),\r\n end_date: moment(),\r\n updated_at: moment().subtract(24, 'minutes'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Dashboard Design',\r\n author: {\r\n name: 'Emilee Simchenko',\r\n avatar: '/images/avatars/avatar_9.png',\r\n },\r\n price: '15,750',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n status: 'In progress',\r\n members: 3,\r\n tags: [\r\n {\r\n text: 'HTML & CSS',\r\n color: colors.grey[600],\r\n },\r\n ],\r\n start_date: moment(),\r\n end_date: moment(),\r\n updated_at: moment().subtract(1, 'hour'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Ten80 Web Design',\r\n author: {\r\n name: 'Kwak Seong-Min',\r\n avatar: '/images/avatars/avatar_10.png',\r\n },\r\n price: '15,750',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n status: 'Completed',\r\n members: 8,\r\n tags: [\r\n {\r\n text: 'React JS',\r\n color: colors.indigo[600],\r\n },\r\n ],\r\n start_date: moment(),\r\n end_date: moment(),\r\n updated_at: moment().subtract(16, 'hour'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Neura e-commerce UI Kit',\r\n author: {\r\n name: 'Shen Zhi',\r\n avatar: '/images/avatars/avatar_11.png',\r\n },\r\n price: '12,500',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n status: 'In progress',\r\n members: 10,\r\n tags: [\r\n {\r\n text: 'Vue JS',\r\n color: colors.green[600],\r\n },\r\n ],\r\n start_date: moment(),\r\n end_date: moment(),\r\n updated_at: moment().subtract(3, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Administrator Dashboard',\r\n author: {\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n },\r\n price: '15,750',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n status: 'Canceled',\r\n members: 2,\r\n tags: [\r\n {\r\n text: 'Angular JS',\r\n color: colors.red[600],\r\n },\r\n {\r\n text: 'HTML & CSS',\r\n color: colors.grey[600],\r\n },\r\n ],\r\n start_date: moment(),\r\n end_date: moment(),\r\n updated_at: moment().subtract(7, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Kalli UI Kit',\r\n author: {\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n },\r\n price: '15,750',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n status: 'Completed',\r\n members: 12,\r\n tags: [\r\n {\r\n text: 'Vue JS',\r\n color: colors.green[600],\r\n },\r\n ],\r\n start_date: moment(),\r\n end_date: moment(),\r\n updated_at: moment().subtract(8, 'days'),\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/projects/1').reply(200, {\r\n project: {\r\n title: 'Develop a PDF Export App',\r\n author: {\r\n name: 'Emilee Simchenko',\r\n avatar: '/images/avatars/avatar_9.png',\r\n bio: 'We build beautiful functional themes for web professionals',\r\n },\r\n brief: `\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 `,\r\n price: '12,500',\r\n currency: 'USD',\r\n tags: [\r\n {\r\n text: 'React JS',\r\n color: colors.indigo[600],\r\n },\r\n ],\r\n members: [\r\n {\r\n id: uuid(),\r\n name: 'Ekaterina Tankova',\r\n avatar: '/images/avatars/avatar_2.png',\r\n bio: 'Front End Developer',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n bio: 'UX Designer',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n bio: 'Copyright',\r\n },\r\n ],\r\n files: [\r\n {\r\n id: uuid(),\r\n name: 'example-project1.jpg',\r\n url: '/images/projects/project_2.jpg',\r\n mimeType: 'image/png',\r\n size: 1024 * 1024 * 3,\r\n },\r\n {\r\n id: uuid(),\r\n name: 'docs.zip',\r\n url: '#',\r\n mimeType: 'application/zip',\r\n size: 1024 * 1024 * 25,\r\n },\r\n {\r\n id: uuid(),\r\n name: 'example-project2.jpg',\r\n url: '/images/projects/project_1.jpg',\r\n mimeType: 'image/png',\r\n size: 1024 * 1024 * 2,\r\n },\r\n ],\r\n activities: [\r\n {\r\n id: uuid(),\r\n subject: 'Project owner',\r\n subject_type: 'user',\r\n action_type: 'upload_file',\r\n action_desc: 'has uploaded a new file',\r\n created_at: moment().subtract(23, 'minutes'),\r\n },\r\n {\r\n id: uuid(),\r\n subject: 'Adrian Stefan',\r\n subject_type: 'user',\r\n action_type: 'join_team',\r\n action_desc: 'joined team as a Front-End Developer',\r\n created_at: moment().subtract(2, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n subject: 'Alexandru Robert',\r\n action_type: 'join_team',\r\n action_desc: 'joined team as a Full Stack Developer',\r\n created_at: moment().subtract(9, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n subject: 'Project owner',\r\n subject_type: 'user',\r\n action_type: 'price_change',\r\n action_desc: 'raised the project budget',\r\n created_at: moment().subtract(2, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n subject: 'Contest',\r\n subject_type: 'project',\r\n action_type: 'contest_created',\r\n action_desc: 'created',\r\n created_at: moment().subtract(4, 'days'),\r\n },\r\n ],\r\n subscribers: [\r\n {\r\n id: uuid(),\r\n name: 'Ekaterina Tankova',\r\n avatar: '/images/avatars/avatar_2.png',\r\n cover: '/images/covers/cover_1.jpg',\r\n common_connections: 12,\r\n labels: [\r\n 'User Experience',\r\n 'FrontEnd development',\r\n 'HTML5',\r\n 'VueJS',\r\n 'ReactJS',\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n cover: '/images/covers/cover_2.jpg',\r\n common_connections: 5,\r\n labels: [\r\n 'User Interface',\r\n 'FullStack development',\r\n 'Angular',\r\n 'ExpressJS',\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Clarke Gillebert',\r\n avatar: '/images/avatars/avatar_6.png',\r\n cover: '/images/covers/cover_2.jpg',\r\n common_connections: 17,\r\n labels: [\r\n 'BackEnd development',\r\n 'Firebase',\r\n 'MongoDB',\r\n 'ExpressJS',\r\n ],\r\n },\r\n ],\r\n deadline: moment().add(7, 'days'),\r\n updated_at: moment().subtract(23, 'minutes'),\r\n },\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 '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 '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 '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 '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 '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 '@material-ui/core'\r\n\r\nimport mock from 'utils/mock'\r\n\r\nmock.onGet('/api/users').reply(200, {\r\n users: [],\r\n})\r\n\r\nmock.onGet('/api/users/1/posts').reply(200, {\r\n posts: [\r\n {\r\n id: uuid(),\r\n author: {\r\n name: 'Shen Zhi',\r\n avatar: '/images/avatars/avatar_11.png',\r\n },\r\n message:\r\n 'Just made this home screen for a project, what-cha thinkin?',\r\n media: '/images/posts/post_1.jpg',\r\n liked: true,\r\n likes: 24,\r\n comments: [\r\n {\r\n id: uuid(),\r\n author: {\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n },\r\n message:\r\n 'Could use some more statistics, but that’s me haha',\r\n created_at: moment().subtract(3, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n author: {\r\n name: 'Ava Gregoraci',\r\n avatar: '/images/avatars/avatar_8.png',\r\n },\r\n message:\r\n 'Hmm, honestly this looks nice but I would change the shadow though',\r\n created_at: moment().subtract(2, 'hours'),\r\n },\r\n ],\r\n created_at: moment().subtract(4, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n author: {\r\n name: 'Shen Zhi',\r\n avatar: '/images/avatars/avatar_11.png',\r\n },\r\n message:\r\n '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 liked: false,\r\n likes: 65,\r\n comments: [\r\n {\r\n id: uuid(),\r\n author: {\r\n name: 'Clarke Gillebert',\r\n avatar: '/images/avatars/avatar_6.png',\r\n },\r\n message:\r\n 'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n created_at: moment().subtract(3, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n author: {\r\n name: 'Alexa Richardson',\r\n avatar: '/images/avatars/avatar_4.png',\r\n },\r\n message: 'It looks nice',\r\n created_at: moment().subtract(2, 'hours'),\r\n },\r\n ],\r\n created_at: moment().subtract(7, 'hours'),\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/users/1/projects').reply(200, {\r\n projects: [\r\n {\r\n id: uuid(),\r\n title: 'Mella Full Screen Slider',\r\n author: {\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n },\r\n price: '12,500',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n tags: [\r\n {\r\n text: 'Angular JS',\r\n color: colors.red[600],\r\n },\r\n ],\r\n updated_at: moment().subtract(24, 'minutes'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Dashboard Design',\r\n author: {\r\n name: 'Devias IO',\r\n avatar: '',\r\n },\r\n price: '15,750',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n tags: [\r\n {\r\n text: 'React JS',\r\n color: colors.indigo[600],\r\n },\r\n ],\r\n updated_at: moment().subtract(1, 'hour'),\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Ten80 Web Design',\r\n author: {\r\n name: 'Devias IO',\r\n avatar: '',\r\n },\r\n price: '15,750',\r\n currency: '$',\r\n type: 'Full-Time',\r\n location: 'Europe',\r\n tags: [\r\n {\r\n text: 'Vue JS',\r\n color: colors.green[600],\r\n },\r\n ],\r\n updated_at: moment().subtract(16, 'hour'),\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/users/1/reviews').reply(200, {\r\n reviews: [\r\n {\r\n id: uuid(),\r\n rating: 4,\r\n message:\r\n 'Shen was really great during the all time session we created the project',\r\n reviewer: {\r\n name: 'Ekaterina Tankova',\r\n avatar: '/images/avatars/avatar_2.png',\r\n },\r\n project: {\r\n title: 'Mella Full Screen Slider',\r\n price: '5,240.00',\r\n },\r\n pricePerHour: '43.00',\r\n hours: 31,\r\n currency: '$',\r\n created_at: moment().subtract(4, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n rating: 5,\r\n reviewer: {\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n },\r\n project: {\r\n title: 'Dashboard Design',\r\n price: '3,680.00',\r\n },\r\n pricePerHour: '38.00',\r\n hours: 76,\r\n currency: '$',\r\n message:\r\n \"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 created_at: moment().subtract(8, 'days'),\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/users/1/connections').reply(200, {\r\n connections: [\r\n {\r\n id: uuid(),\r\n name: 'Ekaterina Tankova',\r\n avatar: '/images/avatars/avatar_2.png',\r\n common: 12,\r\n status: 'connected',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n common: 10,\r\n status: 'rejected',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Alexa Richardson',\r\n avatar: '/images/avatars/avatar_4.png',\r\n common: 8,\r\n status: 'pending',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Adam Denisov',\r\n avatar: '/images/avatars/avatar_7.png',\r\n common: 5,\r\n status: 'not_connected',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Ava Gregoraci',\r\n avatar: '/images/avatars/avatar_8.png',\r\n common: 1,\r\n status: 'connected',\r\n },\r\n ],\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 invoices: [],\r\n})\r\n\r\nmock.onGet('/api/invoices/1').reply(200, {\r\n invoice: {\r\n id: uuid(),\r\n due_date: moment(),\r\n issue_date: moment().add(15, 'days'),\r\n ref: 'DEV-9483',\r\n customer: {\r\n name: 'Tracey Herman',\r\n company: 'Countdown Grey Lynn',\r\n nzbn: '6934656584231',\r\n address: '271 Richmond Rd, Grey Lynn, Auckland 1022, New Zealand',\r\n },\r\n products: [\r\n {\r\n id: uuid(),\r\n desc: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n value: '55.50',\r\n },\r\n ],\r\n subtotal: '50.00',\r\n taxes: '5.50',\r\n total: '55.50',\r\n currency: '$',\r\n created_at: moment(),\r\n },\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 lists: [\r\n {\r\n id: 'incoming',\r\n title: 'Incoming',\r\n },\r\n {\r\n id: 'in_progress',\r\n title: 'In progress',\r\n },\r\n {\r\n id: 'in_review',\r\n title: 'In review',\r\n },\r\n {\r\n id: 'completed',\r\n title: 'Completed',\r\n },\r\n ],\r\n tasks: [\r\n {\r\n id: uuid(),\r\n ref: '38',\r\n list: 'incoming',\r\n title: 'Call with sales of HubSpot',\r\n desc:\r\n '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 members: [\r\n '/images/avatars/avatar_1.png',\r\n '/images/avatars/avatar_5.png',\r\n '/images/avatars/avatar_6.png',\r\n ],\r\n files: 0,\r\n comments: 1,\r\n progress: 0,\r\n deadline: moment().add(7, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '37',\r\n list: 'incoming',\r\n title: 'Interview for the Asis. Sales Manager',\r\n desc:\r\n 'We are looking for vue experience and of course node js strong knowledge',\r\n members: [\r\n '/images/avatars/avatar_2.png',\r\n '/images/avatars/avatar_3.png',\r\n ],\r\n files: 0,\r\n comments: 2,\r\n progress: 0,\r\n deadline: moment().add(6, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '39',\r\n list: 'incoming',\r\n title:\r\n 'Change the height of the top bar because it looks too chunky',\r\n desc:\r\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n members: ['/images/avatars/avatar_11.png'],\r\n files: 0,\r\n comments: 0,\r\n progress: 0,\r\n deadline: moment().add(5, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '19',\r\n list: 'incoming',\r\n title: 'Integrate Stripe API',\r\n desc:\r\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n members: [\r\n '/images/avatars/avatar_6.png',\r\n '/images/avatars/avatar_5.png',\r\n '/images/avatars/avatar_9.png',\r\n ],\r\n files: 2,\r\n comments: 1,\r\n progress: 0,\r\n deadline: moment().add(4, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '15',\r\n list: 'in_progress',\r\n title: 'Update the customer API for payments',\r\n desc:\r\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n members: ['/images/avatars/avatar_10.png'],\r\n files: 2,\r\n comments: 0,\r\n progress: 60,\r\n deadline: moment().add(4, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '10',\r\n list: 'in_progress',\r\n title: 'Redesign the landing page',\r\n desc:\r\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n members: [\r\n '/images/avatars/avatar_10.png',\r\n '/images/avatars/avatar_11.png',\r\n ],\r\n files: 0,\r\n comments: 2,\r\n progress: 76,\r\n deadline: moment().add(4, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '24',\r\n list: 'in_review',\r\n title:\r\n 'Change the height of the top bar because it looks too chunky',\r\n desc:\r\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n members: [\r\n '/images/avatars/avatar_6.png',\r\n '/images/avatars/avatar_4.png',\r\n '/images/avatars/avatar_2.png',\r\n ],\r\n files: 0,\r\n comments: 7,\r\n progress: 90,\r\n deadline: moment().subtract(1, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '21',\r\n list: 'in_review',\r\n title: 'Integrate Stripe API',\r\n desc:\r\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n members: [\r\n '/images/avatars/avatar_6.png',\r\n '/images/avatars/avatar_4.png',\r\n '/images/avatars/avatar_8.png',\r\n '/images/avatars/avatar_2.png',\r\n ],\r\n files: 0,\r\n comments: 7,\r\n progress: 90,\r\n deadline: moment().subtract(1, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '17',\r\n list: 'completed',\r\n title: 'Design Customer Management Page',\r\n desc:\r\n 'Change the height of the top bar because it looks too chunky',\r\n members: [\r\n '/images/avatars/avatar_6.png',\r\n '/images/avatars/avatar_2.png',\r\n '/images/avatars/avatar_9.png',\r\n ],\r\n files: 3,\r\n comments: 3,\r\n progress: 100,\r\n deadline: moment().subtract(7, 'days'),\r\n },\r\n {\r\n id: uuid(),\r\n ref: '23',\r\n list: 'completed',\r\n title: 'Integrate Messaging API',\r\n desc:\r\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n members: [\r\n '/images/avatars/avatar_6.png',\r\n '/images/avatars/avatar_4.png',\r\n '/images/avatars/avatar_5.png',\r\n '/images/avatars/avatar_2.png',\r\n '/images/avatars/avatar_9.png',\r\n ],\r\n files: 1,\r\n comments: 0,\r\n progress: 100,\r\n deadline: moment().subtract(7, 'days'),\r\n },\r\n ],\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 tasks: [\r\n {\r\n id: uuid(),\r\n title: 'Update the API for the project',\r\n deadline: moment().add(1, 'days').add(1, 'hour'),\r\n members: [\r\n '/images/avatars/avatar_2.png',\r\n '/images/avatars/avatar_3.png',\r\n '/images/avatars/avatar_4.png',\r\n '/images/avatars/avatar_5.png',\r\n '/images/avatars/avatar_6.png',\r\n '/images/avatars/avatar_7.png',\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Redesign the landing page',\r\n deadline: moment().add(2, 'day').add(1, 'hour'),\r\n members: [\r\n '/images/avatars/avatar_8.png',\r\n '/images/avatars/avatar_10.png',\r\n '/images/avatars/avatar_12.png',\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Solve the bug for the showState',\r\n deadline: moment(),\r\n members: ['/images/avatars/avatar_7.png'],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Release v1.0 Beta',\r\n deadline: null,\r\n members: [\r\n '/images/avatars/avatar_2.png',\r\n '/images/avatars/avatar_10.png',\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'GDPR Compliance',\r\n deadline: null,\r\n members: [\r\n '/images/avatars/avatar_5.png',\r\n '/images/avatars/avatar_2.png',\r\n '/images/avatars/avatar_6.png',\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Redesign Landing Page',\r\n deadline: null,\r\n members: ['/images/avatars/avatar_8.png'],\r\n },\r\n ],\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 orders: [\r\n {\r\n id: uuid(),\r\n created_at: moment().subtract(10, 'minutes'),\r\n customer: {\r\n name: 'Ekaterina Tankova',\r\n },\r\n payment: {\r\n ref: 'FAD103',\r\n method: 'CreditCard',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'pending',\r\n },\r\n status: 'inactive',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment()\r\n .subtract(32, 'minutes')\r\n .subtract(23, 'seconds'),\r\n customer: {\r\n name: 'Cao Yu',\r\n },\r\n payment: {\r\n ref: 'FAD102',\r\n method: 'CreditCard',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'pending',\r\n },\r\n status: 'inactive',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment()\r\n .subtract(36, 'minutes')\r\n .subtract(51, 'seconds'),\r\n customer: {\r\n name: 'Alexa Richardson',\r\n },\r\n payment: {\r\n ref: 'FAD101',\r\n method: 'PayPal',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'completed',\r\n },\r\n status: 'active',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment()\r\n .subtract(38, 'minutes')\r\n .subtract(55, 'seconds'),\r\n customer: {\r\n name: 'Anje Keizer',\r\n },\r\n payment: {\r\n ref: 'FAD100',\r\n method: 'CreditCard',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'pending',\r\n },\r\n status: 'inactive',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment().subtract(40, 'minutes').subtract(3, 'seconds'),\r\n customer: {\r\n name: 'Clarke Gillebert',\r\n },\r\n payment: {\r\n ref: 'FAD99',\r\n method: 'PayPal',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'completed',\r\n },\r\n status: 'active',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment()\r\n .subtract(45, 'minutes')\r\n .subtract(32, 'seconds'),\r\n customer: {\r\n name: 'Adam Denisov',\r\n },\r\n payment: {\r\n ref: 'FAD98',\r\n method: 'PayPal',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'completed',\r\n },\r\n status: 'active',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment()\r\n .subtract(48, 'minutes')\r\n .subtract(57, 'seconds'),\r\n customer: {\r\n name: 'Ava Gregoraci',\r\n avatar: '/images/avatars/avatar_8.png',\r\n },\r\n payment: {\r\n ref: 'FAD97',\r\n method: 'CreditCard',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'pending',\r\n },\r\n status: 'inactive',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment().subtract(49, 'minutes').subtract(4, 'seconds'),\r\n customer: {\r\n name: 'Emilee Simchenko',\r\n },\r\n payment: {\r\n ref: 'FAD96',\r\n method: 'CreditCard',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'completed',\r\n },\r\n status: 'active',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment()\r\n .subtract(57, 'minutes')\r\n .subtract(43, 'seconds'),\r\n customer: {\r\n name: 'Kwak Seong-Min',\r\n },\r\n payment: {\r\n ref: 'FAD95',\r\n method: 'PayPal',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'rejected',\r\n },\r\n status: 'inactive',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment().subtract(59, 'minutes').subtract(6, 'seconds'),\r\n customer: {\r\n name: 'Shen Zhi',\r\n },\r\n payment: {\r\n ref: 'FAD94',\r\n method: 'CreditCard',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'canceled',\r\n },\r\n status: 'inactive',\r\n },\r\n {\r\n id: uuid(),\r\n created_at: moment()\r\n .subtract(1, 'hour')\r\n .subtract(15, 'minutes')\r\n .subtract(43, 'seconds'),\r\n customer: {\r\n name: 'Merrile Burgett',\r\n },\r\n payment: {\r\n ref: 'FAD93',\r\n method: 'PayPal',\r\n total: '500.00',\r\n currency: '$',\r\n status: 'canceled',\r\n },\r\n status: 'inactive',\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/orders/1').reply(200, {\r\n order: {\r\n id: uuid(),\r\n ref: 'FAD107',\r\n promoCode: null,\r\n value: '55.25',\r\n currency: '$',\r\n status: 'canceled',\r\n customer: {\r\n name: 'Ekaterina Tankova',\r\n address: 'Street King William, 42456',\r\n city: 'Montgomery',\r\n country: 'United States',\r\n },\r\n items: [\r\n {\r\n id: uuid(),\r\n name: 'Project Points',\r\n cuantity: 25,\r\n billing: 'monthly',\r\n status: 'completed',\r\n value: '50.25',\r\n currency: '$',\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Freelancer Subscription',\r\n cuantity: 1,\r\n billing: 'monthly',\r\n status: 'completed',\r\n value: '5.00',\r\n currency: '$',\r\n },\r\n ],\r\n created_at: moment(),\r\n },\r\n})\r\n","import uuid from 'uuid/v1'\r\nimport moment from 'moment'\r\nimport { colors } from '@material-ui/core'\r\n\r\nimport mock from 'utils/mock'\r\n\r\nmock.onGet('/api/dashboard/top-referrals').reply(200, {\r\n referrals: [\r\n {\r\n id: uuid(),\r\n color: colors.blueGrey['700'],\r\n name: 'GitHub',\r\n initials: 'GT',\r\n value: '53,032',\r\n },\r\n {\r\n id: uuid(),\r\n color: colors.cyan['500'],\r\n name: 'Twitter',\r\n initials: 'TW',\r\n value: '39,551',\r\n },\r\n {\r\n id: uuid(),\r\n color: colors.indigo[600],\r\n name: 'Hacker News',\r\n initials: 'HN',\r\n value: '23,150',\r\n },\r\n {\r\n id: uuid(),\r\n color: colors.red['500'],\r\n name: 'Stack Overflow',\r\n initials: 'SO',\r\n value: '14,093',\r\n },\r\n {\r\n id: uuid(),\r\n color: colors.orange['900'],\r\n name: 'Reddit.com',\r\n initials: 'RD',\r\n value: '7,251',\r\n },\r\n {\r\n id: uuid(),\r\n color: colors.blueGrey['900'],\r\n name: 'Dev.to',\r\n initials: 'DE',\r\n value: '5,694',\r\n },\r\n {\r\n id: uuid(),\r\n color: colors.blue['900'],\r\n name: 'Facebook',\r\n initials: 'FB',\r\n value: '3,643',\r\n },\r\n {\r\n id: uuid(),\r\n color: colors.blueGrey['900'],\r\n name: 'Medium',\r\n initials: 'MD',\r\n value: '1,654',\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/dashboard/profitable-products').reply(200, {\r\n products: [\r\n {\r\n id: uuid(),\r\n type: 'freelancer_basic',\r\n name: 'Freelancer Basic Subscription',\r\n image: '/images/products/product_freelancer.svg',\r\n subscriptions: '13,153',\r\n currency: '$',\r\n price: '5.00',\r\n progress: 93,\r\n },\r\n {\r\n id: uuid(),\r\n type: 'freelancer_extra',\r\n name: 'Freelancer Extra Subscription',\r\n image: '/images/products/product_freelancer.svg',\r\n subscriptions: '10,300',\r\n currency: '$',\r\n price: '15.00',\r\n progress: 76,\r\n },\r\n {\r\n id: uuid(),\r\n type: 'agency_basic',\r\n name: 'Agency Basic Subscription',\r\n image: '/images/products/product_agency.svg',\r\n subscriptions: '5,300',\r\n currency: '$',\r\n price: '25.00',\r\n progress: 60,\r\n },\r\n {\r\n id: uuid(),\r\n type: 'enterprise_basic',\r\n name: 'Enterprise Basic Subscription',\r\n image: '/images/products/product_enterprise.svg',\r\n subscriptions: '1,203',\r\n currency: '$',\r\n price: '205.00',\r\n progress: 46,\r\n },\r\n {\r\n id: uuid(),\r\n type: 'enterprise_extra',\r\n name: 'Enterprise Extra Subscription',\r\n image: '/images/products/product_enterprise.svg',\r\n subscriptions: '254',\r\n currency: '$',\r\n price: '500.00',\r\n progress: 41,\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/dashboard/customer-activity').reply(200, {\r\n customers: [\r\n {\r\n id: uuid(),\r\n type: 'payment',\r\n description: 'Subscription Purchase',\r\n author: {\r\n name: 'Ekaterina Tankova',\r\n avatar: '/images/avatars/avatar_2.png',\r\n },\r\n created_at: moment().subtract(23, 'minutes'),\r\n },\r\n {\r\n id: uuid(),\r\n type: 'payment',\r\n description: 'Subscription Purchase',\r\n author: {\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n },\r\n created_at: moment().subtract(56, 'minutes'),\r\n },\r\n {\r\n id: uuid(),\r\n type: 'payment',\r\n description: 'Subscription Purchase',\r\n author: {\r\n name: 'Alexa Richardson',\r\n avatar: '/images/avatars/avatar_4.png',\r\n },\r\n created_at: moment().subtract(2, 'hours'),\r\n },\r\n {\r\n id: uuid(),\r\n type: 'payment',\r\n description: 'Subscription Purchase',\r\n author: {\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n },\r\n created_at: moment().subtract(5, 'minutes'),\r\n },\r\n {\r\n id: uuid(),\r\n type: 'payment',\r\n description: 'Subscription Purchase',\r\n author: {\r\n name: 'Clarke Gillebert',\r\n avatar: '/images/avatars/avatar_6.png',\r\n },\r\n created_at: moment().subtract(5, 'minutes'),\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/dashboard/earnings').reply(200, {\r\n earnings: [\r\n {\r\n id: uuid(),\r\n label: 'Subscriptions',\r\n value: 56,\r\n color: colors.indigo[500],\r\n },\r\n {\r\n id: uuid(),\r\n label: 'Afiliate',\r\n value: 24,\r\n color: colors.indigo[300],\r\n },\r\n {\r\n id: uuid(),\r\n label: 'Sales',\r\n value: 20,\r\n color: colors.indigo[100],\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/dashboard/latest-orders').reply(200, {\r\n orders: [\r\n {\r\n id: uuid(),\r\n ref: 'DEV1042',\r\n items: 7,\r\n value: '25.00',\r\n currency: '$',\r\n customer: {\r\n name: 'Ekaterina Tankova',\r\n email: 'ekaterina@devias.io',\r\n },\r\n status: 'pending',\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'DEV1041',\r\n items: 8,\r\n value: '25.00',\r\n currency: '$',\r\n customer: {\r\n name: 'Cao Yu',\r\n email: 'cao.yu@devias.io',\r\n },\r\n status: 'complete',\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'DEV1040',\r\n items: 4,\r\n value: '25.00',\r\n currency: '$',\r\n customer: {\r\n name: 'Alexa Richardson',\r\n email: 'alexa.richardson@devias.io',\r\n },\r\n status: 'rejected',\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'DEV1039',\r\n items: 1,\r\n value: '25.00',\r\n currency: '$',\r\n customer: {\r\n name: 'Anje Keizer',\r\n email: 'anje.keiser@devias.io',\r\n },\r\n status: 'pending',\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'DEV1038',\r\n items: 5,\r\n value: '25.00',\r\n currency: '$',\r\n customer: {\r\n name: 'Clarke Gillebert',\r\n email: 'clarke.gillebert@devias.io',\r\n },\r\n status: 'complete',\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'DEV1037',\r\n items: 2,\r\n value: '25.00',\r\n currency: '$',\r\n customer: {\r\n name: 'Merrile Burgett',\r\n email: 'merrile.burgett@devias.io',\r\n },\r\n status: 'complete',\r\n },\r\n ],\r\n})\r\n\r\nmock.onGet('/api/dashboard/latest-projects').reply(200, {\r\n projects: [\r\n {\r\n id: uuid(),\r\n title: 'Mella Full Screen Slider',\r\n price: '12,500',\r\n currency: '$',\r\n author: {\r\n name: 'Anje Keizer',\r\n avatar: '/images/avatars/avatar_5.png',\r\n },\r\n tags: [\r\n {\r\n text: 'Angular JS',\r\n color: colors.red[600],\r\n },\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Dashboard Design',\r\n price: '15,750',\r\n currency: '$',\r\n author: {\r\n name: 'Emilee Simchenko',\r\n avatar: '/images/avatars/avatar_9.png',\r\n },\r\n tags: [\r\n {\r\n text: 'HTML & CSS',\r\n color: colors.grey[600],\r\n },\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Ten80 Web Design',\r\n price: '15,750',\r\n currency: '$',\r\n author: {\r\n name: 'Kwak Seong-Min',\r\n avatar: '/images/avatars/avatar_10.png',\r\n },\r\n tags: [\r\n {\r\n text: 'React JS',\r\n color: colors.indigo[600],\r\n },\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Neura e-commerce UI Kit',\r\n price: '12,500',\r\n currency: '$',\r\n author: {\r\n name: 'Shen Zhi',\r\n avatar: '/images/avatars/avatar_11.png',\r\n },\r\n tags: [\r\n {\r\n text: 'Vue JS',\r\n color: colors.green[600],\r\n },\r\n ],\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Administrator Dashboard',\r\n price: '15,750',\r\n currency: '$',\r\n author: {\r\n name: 'Cao Yu',\r\n avatar: '/images/avatars/avatar_3.png',\r\n },\r\n tags: [\r\n {\r\n text: 'Angular JS',\r\n color: colors.red[600],\r\n },\r\n ],\r\n },\r\n ],\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 MomentUtils from '@date-io/moment';\r\nimport { Provider as StoreProvider } from 'react-redux';\r\nimport { ThemeProvider } from '@material-ui/styles';\r\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\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\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{renderRoutes(routes)}\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\n\r\nexport default function configureStore(preloadedState = {}) {\r\n const middlewares = [thunkMiddleware] // loggerMiddleware\r\n const middlewareEnhancer = composeWithDevTools(\r\n applyMiddleware(...middlewares)\r\n )\r\n\r\n const enhancers = [middlewareEnhancer]\r\n const composedEnhancers = compose(...enhancers)\r\n\r\n const store = createStore(rootReducer, preloadedState, composedEnhancers)\r\n\r\n return store\r\n}\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 window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n)\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'projection' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config)\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n )\r\n })\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing\r\n if (installingWorker == null) {\r\n return\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n )\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration)\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.')\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error)\r\n })\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type')\r\n if (\r\n response.status === 404 ||\r\n (contentType != null &&\r\n contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload()\r\n })\r\n })\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n )\r\n })\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister()\r\n })\r\n }\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 from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DatePicker as InlineDatePicker } from '@material-ui/pickers';\r\n\r\nconst DatePicker = ({\r\n\tvalue,\r\n\tonChange,\r\n\t...rest\r\n}) => (\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, { 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 '@material-ui/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 '@material-ui/core';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport AddPhotoIcon from '@material-ui/icons/AddPhotoAlternate';\r\nimport AttachFileIcon from '@material-ui/icons/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\tevent.persist();\r\n\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'}\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\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 '@material-ui/styles';\r\nimport { Paper, IconButton, Typography, Collapse, colors } from '@material-ui/core';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircleOutlined';\r\nimport CloseIcon from '@material-ui/icons/CloseOutlined';\r\nimport ErrorIcon from '@material-ui/icons/ErrorOutlined';\r\nimport InfoIcon from '@material-ui/icons/InfoOutlined';\r\nimport WarningIcon from '@material-ui/icons/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 '@material-ui/core';\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 += '\\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 '@material-ui/styles';\r\nimport { Paper, Typography, Link, Button } from '@material-ui/core';\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 \"Cookies\"\r\n
*/}\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tWe use Cookies to ensure that we give you the best\r\n\t\t\t\t\texperience on our website. Read our\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPrivacy Policy\r\n\t\t\t\t\t\r\n\t\t\t\t\t.\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tI Agree\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default CookiesNotification;\r\n","import React, { Fragment, useState, useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport uuid from 'uuid/v1'\r\nimport { useDropzone } from 'react-dropzone'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport {\r\n Button,\r\n IconButton,\r\n Link,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Typography,\r\n Tooltip,\r\n colors,\r\n} from '@material-ui/core'\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\r\nimport MoreIcon from '@material-ui/icons/MoreVert'\r\n\r\nimport bytesToSize from 'utils/bytesToSize'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n dropZone: {\r\n border: `1px dashed ${theme.palette.divider}`,\r\n padding: theme.spacing(6),\r\n outline: 'none',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n '&:hover': {\r\n backgroundColor: colors.grey[50],\r\n opacity: 0.5,\r\n cursor: 'pointer',\r\n },\r\n },\r\n dragActive: {\r\n backgroundColor: colors.grey[50],\r\n opacity: 0.5,\r\n },\r\n image: {\r\n width: 130,\r\n },\r\n info: {\r\n marginTop: theme.spacing(1),\r\n },\r\n list: {\r\n maxHeight: 320,\r\n },\r\n actions: {\r\n marginTop: theme.spacing(2),\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n '& > * + *': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n },\r\n}))\r\n\r\nconst FilesDropzone = (props) => {\r\n const { multiple, acceptedTypes, upload, maxSize, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const [files, setFiles] = useState([])\r\n\r\n const handleDrop = useCallback((acceptedFiles) => {\r\n if (multiple) {\r\n setFiles((files) => [...files].concat(acceptedFiles))\r\n } else {\r\n setFiles([...acceptedFiles]);\r\n }\r\n }, [])\r\n\r\n const handleRemoveAll = () => {\r\n setFiles([])\r\n }\r\n\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n multiple: multiple,\r\n accept: acceptedTypes,\r\n maxSize: maxSize,\r\n onDrop: handleDrop,\r\n })\r\n\r\n const _upload = () => {\r\n if(upload){\r\n upload(files);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Select files\r\n \r\n \r\n Drop files here or click{' '}\r\n browse thorough your\r\n machine\r\n \r\n
\r\n
\r\n {files.length > 0 && (\r\n \r\n \r\n \r\n {files.map((file, i) => (\r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n \r\n Upload\r\n \r\n
\r\n
\r\n )}\r\n
\r\n )\r\n}\r\n\r\nFilesDropzone.propTypes = {\r\n className: PropTypes.string,\r\n multiple: PropTypes.bool,\r\n acceptedTypes: PropTypes.string,\r\n maxSize: PropTypes.number,\r\n upload: 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 '@material-ui/styles'\r\nimport {\r\n ListItemIcon,\r\n ListItemText,\r\n Tooltip,\r\n IconButton,\r\n Menu,\r\n MenuItem,\r\n} from '@material-ui/core'\r\nimport MoreIcon from '@material-ui/icons/MoreVert'\r\nimport GetAppIcon from '@material-ui/icons/GetApp'\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\r\nimport PrintIcon from '@material-ui/icons/Print'\r\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf'\r\nimport AchiveIcon from '@material-ui/icons/ArchiveOutlined'\r\n\r\nconst useStyles = makeStyles(() => ({}))\r\n\r\nconst GenericMoreButton = (props) => {\r\n const classes = useStyles()\r\n const moreRef = useRef(null)\r\n const [openMenu, setOpenMenu] = useState(false)\r\n\r\n const handleMenuOpen = () => {\r\n setOpenMenu(true)\r\n }\r\n\r\n const handleMenuClose = () => {\r\n setOpenMenu(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nGenericMoreButton.propTypes = {\r\n className: 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 return (\r\n \r\n \r\n \r\n \r\n )\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 '@material-ui/styles';\r\nimport { colors } from '@material-ui/core';\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 '@material-ui/styles'\r\nimport { ListItem, Button, Collapse, colors } from '@material-ui/core'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\n\r\nconst CustomRouterLink = forwardRef((props, ref) => (\r\n
\r\n \r\n
\r\n))\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n item: {\r\n display: 'block',\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n itemLeaf: {\r\n display: 'flex',\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n button: {\r\n color: colors.blueGrey[800],\r\n padding: '10px 8px',\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n letterSpacing: 0,\r\n width: '100%',\r\n },\r\n buttonLeaf: {\r\n color: colors.blueGrey[800],\r\n padding: '10px 8px',\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n letterSpacing: 0,\r\n width: '100%',\r\n fontWeight: theme.typography.fontWeightRegular,\r\n '&.depth-0': {\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n },\r\n icon: {\r\n color: theme.palette.icon,\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginRight: theme.spacing(1),\r\n },\r\n expandIcon: {\r\n marginLeft: 'auto',\r\n height: 16,\r\n width: 16,\r\n },\r\n label: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginLeft: 'auto',\r\n },\r\n active: {\r\n color: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n '& $icon': {\r\n color: theme.palette.primary.main,\r\n },\r\n },\r\n}))\r\n\r\nconst NavigationListItem = (props) => {\r\n const {\r\n title,\r\n href,\r\n depth,\r\n children,\r\n icon: Icon,\r\n className,\r\n open: openProp,\r\n label: Label,\r\n target,\r\n ...rest\r\n } = props\r\n\r\n const classes = useStyles()\r\n const [open, setOpen] = useState(openProp)\r\n\r\n const handleToggle = () => {\r\n setOpen((open) => !open)\r\n }\r\n\r\n let paddingLeft = 8\r\n\r\n if (depth > 0) {\r\n paddingLeft = 32 + 8 * depth\r\n }\r\n\r\n const style = {\r\n paddingLeft,\r\n }\r\n\r\n if (children) {\r\n return (\r\n \r\n \r\n {Icon && }\r\n {title}\r\n {open ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {children}\r\n \r\n )\r\n } else if (target) {\r\n return (\r\n \r\n window.open(href, target)}\r\n >\r\n {Icon && }\r\n {title}\r\n {Label && (\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n } else {\r\n return (\r\n \r\n \r\n {Icon && }\r\n {title}\r\n {Label && (\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nNavigationListItem.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n depth: PropTypes.number.isRequired,\r\n href: PropTypes.string,\r\n icon: PropTypes.any,\r\n label: PropTypes.any,\r\n open: PropTypes.bool,\r\n title: PropTypes.string.isRequired,\r\n}\r\n\r\nNavigationListItem.defaultProps = {\r\n depth: 0,\r\n open: 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 '@material-ui/styles';\r\nimport { List, Typography } from '@material-ui/core';\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 '@material-ui/styles';\r\nimport {\r\n\tAvatar,\r\n\tList,\r\n\tListItem,\r\n\tListItemAvatar,\r\n\tListItemText,\r\n} from '@material-ui/core';\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward'\r\nimport AnnouncementIcon from '@material-ui/icons/Announcement'\r\nimport WarningIcon from '@material-ui/icons/Warning'\r\nimport ErrorIcon from '@material-ui/icons/Error'\r\nimport CheckIcon from '@material-ui/icons/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 '@material-ui/styles'\r\nimport { Typography } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n textAlign: 'center',\r\n padding: theme.spacing(3),\r\n },\r\n image: {\r\n height: 240,\r\n backgroundImage: 'url(\"/images/undraw_empty_xct9.svg\")',\r\n backgroundPositionX: 'right',\r\n backgroundPositionY: 'center',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundSize: 'cover',\r\n },\r\n}))\r\n\r\nconst EmptyList = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n
\r\n There's nothing here...\r\n
\r\n )\r\n}\r\n\r\nEmptyList.propTypes = {\r\n className: 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 '@material-ui/styles'\r\nimport {\r\n Popover,\r\n CardHeader,\r\n CardActions,\r\n Divider,\r\n Button,\r\n colors,\r\n} from '@material-ui/core'\r\n\r\nimport { NotificationList, EmptyList } from './components'\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n width: 350,\r\n maxWidth: '100%',\r\n },\r\n actions: {\r\n backgroundColor: colors.grey[50],\r\n justifyContent: 'center',\r\n },\r\n}))\r\n\r\nconst NotificationsPopover = (props) => {\r\n const { notifications, anchorEl, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {notifications.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nNotificationsPopover.propTypes = {\r\n anchorEl: PropTypes.any,\r\n className: PropTypes.string,\r\n notifications: PropTypes.array.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n open: 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.NODE_ENV\r\nconst GA_MEASUREMENT_ID = process.env.REACT_APP_GA_MEASUREMENT_ID\r\n\r\nconst Page = (props) => {\r\n const { title, children, ...rest } = props\r\n\r\n const router = useRouter()\r\n\r\n useEffect(() => {\r\n if (NODE_ENV !== 'production') {\r\n return\r\n }\r\n\r\n if (window.gtag) {\r\n window.gtag('config', GA_MEASUREMENT_ID, {\r\n page_path: router.location.pathname,\r\n page_name: title,\r\n })\r\n }\r\n }, [title, router])\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n {children}\r\n
\r\n )\r\n}\r\n\r\nPage.propTypes = {\r\n children: PropTypes.node,\r\n title: 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 '@material-ui/styles'\r\nimport { colors } from '@material-ui/core'\r\nimport ReactPaginate from 'react-paginate'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n ...theme.typography.button,\r\n listStyle: 'none',\r\n userSelect: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n active: {},\r\n activeLink: {},\r\n break: {},\r\n breakLink: {},\r\n disabled: {},\r\n next: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n nextLink: {\r\n padding: '6px 16px',\r\n outline: 'none',\r\n cursor: 'pointer',\r\n borderRadius: 4,\r\n '&:hover': {\r\n backgroundColor: colors.blueGrey[50],\r\n },\r\n },\r\n page: {},\r\n pageLink: {\r\n color: theme.palette.text.secondary,\r\n padding: theme.spacing(1),\r\n outline: 'none',\r\n cursor: 'pointer',\r\n width: 40,\r\n height: 40,\r\n borderRadius: '50%',\r\n display: 'block',\r\n textAlign: 'center',\r\n '&:hover': {\r\n backgroundColor: colors.blueGrey[50],\r\n color: theme.palette.text.primary,\r\n },\r\n '&$activeLink': {\r\n backgroundColor: colors.blueGrey[50],\r\n color: theme.palette.text.primary,\r\n },\r\n },\r\n previous: {\r\n marginRight: theme.spacing(1),\r\n },\r\n previousLink: {\r\n padding: '6px 16px',\r\n outline: 'none',\r\n cursor: 'pointer',\r\n borderRadius: 4,\r\n '&:hover': {\r\n backgroundColor: colors.blueGrey[50],\r\n },\r\n },\r\n}))\r\n\r\nconst Paginate = (props) => {\r\n const {\r\n pageCount,\r\n pageRangeDisplayed,\r\n onPageChange,\r\n className,\r\n ...rest\r\n } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPaginate.propTypes = {\r\n className: PropTypes.string,\r\n onPageChange: PropTypes.func.isRequired,\r\n pageCount: PropTypes.number.isRequired,\r\n pageRangeDisplayed: PropTypes.number.isRequired,\r\n}\r\n\r\nPaginate.defaultProps = {\r\n onPageChange: () => {},\r\n pageRangeDisplayed: 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 '@material-ui/styles'\r\nimport { Avatar, Link, Typography } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n marginBottom: theme.spacing(2),\r\n },\r\n bubble: {\r\n flexGrow: 1,\r\n padding: theme.spacing(1),\r\n marginLeft: theme.spacing(2),\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.default,\r\n },\r\n header: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n time: {\r\n marginLeft: 'auto',\r\n },\r\n message: {\r\n marginTop: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst CommentBubble = (props) => {\r\n const { comment, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n {comment.author.name}\r\n \r\n \r\n {moment(comment.created_at).fromNow()}\r\n \r\n
\r\n \r\n {comment.message}\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nCommentBubble.propTypes = {\r\n className: PropTypes.string,\r\n comment: 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 '@material-ui/styles'\r\nimport {\r\n Avatar,\r\n Divider,\r\n IconButton,\r\n Input,\r\n Paper,\r\n Tooltip,\r\n} from '@material-ui/core'\r\nimport SendIcon from '@material-ui/icons/Send'\r\nimport AddPhotoIcon from '@material-ui/icons/AddPhotoAlternate'\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n paper: {\r\n flexGrow: 1,\r\n marginLeft: theme.spacing(2),\r\n padding: theme.spacing(0.5, 2),\r\n },\r\n input: {\r\n width: '100%',\r\n },\r\n divider: {\r\n width: 1,\r\n height: 24,\r\n },\r\n fileInput: {\r\n display: 'none',\r\n },\r\n}))\r\n\r\nconst CommentForm = (props) => {\r\n const { className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const fileInputRef = useRef(null)\r\n\r\n const [value, setValue] = useState('')\r\n\r\n const sender = {\r\n avatar: '/images/avatars/avatar_11.png',\r\n }\r\n\r\n const handleChange = (event) => {\r\n event.persist()\r\n\r\n setValue(event.target.value)\r\n }\r\n\r\n const handleAttach = () => {\r\n fileInputRef.current.click()\r\n }\r\n\r\n return (\r\n
\r\n {' '}\r\n \r\n \r\n \r\n \r\n 0 ? 'primary' : 'default'}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nCommentForm.propTypes = {\r\n className: 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 '@material-ui/styles'\r\nimport {\r\n Typography,\r\n Button,\r\n IconButton,\r\n Tooltip,\r\n colors,\r\n} from '@material-ui/core'\r\nimport FavoriteIcon from '@material-ui/icons/Favorite'\r\nimport FavoriteBorderIcon from '@material-ui/icons/FavoriteBorder'\r\nimport ShareIcon from '@material-ui/icons/Share'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n likeButton: {},\r\n likedButton: {\r\n color: colors.red[600],\r\n },\r\n shareButton: {\r\n marginLeft: 'auto',\r\n },\r\n shareIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst Reactions = (props) => {\r\n const { post, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const [liked, setLiked] = useState(post.liked)\r\n const [likes, setLikes] = useState(post.likes)\r\n\r\n const handleLike = () => {\r\n setLiked(true)\r\n setLikes((likes) => likes + 1)\r\n }\r\n\r\n const handleUnlike = () => {\r\n setLiked(false)\r\n setLikes((likes) => likes - 1)\r\n }\r\n\r\n return (\r\n
\r\n {liked ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {likes}\r\n \r\n \r\n \r\n Share\r\n \r\n
\r\n )\r\n}\r\n\r\nReactions.propTypes = {\r\n className: PropTypes.string,\r\n post: 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 '@material-ui/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 '@material-ui/core';\r\nimport AccessTimeIcon from '@material-ui/icons/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 '@material-ui/styles'\r\nimport {\r\n Button,\r\n Dialog,\r\n Divider,\r\n Grid,\r\n Link,\r\n Paper,\r\n Typography,\r\n colors,\r\n} from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: 960,\r\n },\r\n header: {\r\n maxWidth: 600,\r\n margin: '0 auto',\r\n padding: theme.spacing(3),\r\n },\r\n content: {\r\n marginTop: theme.spacing(5),\r\n padding: theme.spacing(2),\r\n maxWidth: 720,\r\n margin: '0 auto',\r\n },\r\n product: {\r\n overflow: 'unset',\r\n position: 'relative',\r\n padding: theme.spacing(5, 3),\r\n cursor: 'pointer',\r\n transition: theme.transitions.create('transform', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n '&:hover': {\r\n transform: 'scale(1.1)',\r\n },\r\n },\r\n image: {\r\n borderRadius: theme.shape.borderRadius,\r\n position: 'absolute',\r\n top: -24,\r\n left: theme.spacing(3),\r\n height: 48,\r\n width: 48,\r\n fontSize: 24,\r\n },\r\n divider: {\r\n margin: theme.spacing(2, 0),\r\n },\r\n options: {\r\n lineHeight: '26px',\r\n },\r\n recommended: {\r\n backgroundColor: theme.palette.primary.main,\r\n '& *': {\r\n color: `${theme.palette.white} !important`,\r\n },\r\n },\r\n contact: {\r\n margin: theme.spacing(3, 0),\r\n },\r\n actions: {\r\n backgroundColor: colors.grey[100],\r\n padding: theme.spacing(2),\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n startButton: {\r\n color: theme.palette.white,\r\n backgroundColor: colors.green[600],\r\n '&:hover': {\r\n backgroundColor: colors.green[900],\r\n },\r\n },\r\n}))\r\n\r\nconst PricingModal = (props) => {\r\n const { open, onClose, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n Start with Freelancer today. Boost up your services!\r\n \r\n \r\n Welcome to the first platform created for freelancers\r\n and agencies for showcasing and finding the best clients\r\n in the market. 30% of our income goes into Whale Charity\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Freelancer\r\n \r\n
\r\n \r\n $5\r\n \r\n \r\n /month\r\n \r\n
\r\n \r\n Max 1 user\r\n \r\n \r\n \r\n 20 proposals/month
\r\n 10 templates
\r\n Analytics dashboard
\r\n Email alerts\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Agency\r\n \r\n
\r\n \r\n $29\r\n \r\n \r\n /month\r\n \r\n
\r\n \r\n Max 3 user\r\n \r\n \r\n \r\n 20 proposals/month
\r\n 10 templates
\r\n Analytics dashboard
\r\n Email alerts\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Enterprise\r\n \r\n
\r\n \r\n $259\r\n \r\n \r\n /month\r\n \r\n
\r\n \r\n Unlimited\r\n \r\n \r\n \r\n All from above
\r\n Unlimited 24/7 support
\r\n Personalised Page
\r\n Advertise your profile\r\n \r\n \r\n
\r\n
\r\n \r\n Have a larger team?{' '}\r\n \r\n Contact us\r\n {' '}\r\n for information about more enterprise options.\r\n \r\n
\r\n
\r\n \r\n Start with freelancer\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nPricingModal.propTypes = {\r\n className: PropTypes.string,\r\n onClose: PropTypes.func,\r\n open: 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 '@material-ui/styles'\r\nimport {\r\n Avatar,\r\n Button,\r\n Card,\r\n CardContent,\r\n CardHeader,\r\n Divider,\r\n Grid,\r\n IconButton,\r\n Link,\r\n Tooltip,\r\n Typography,\r\n colors,\r\n} from '@material-ui/core'\r\nimport ShareIcon from '@material-ui/icons/Share'\r\nimport FavoriteIcon from '@material-ui/icons/Favorite'\r\nimport FavoriteBorderIcon from '@material-ui/icons/FavoriteBorder'\r\n\r\nimport getInitials from 'utils/getInitials'\r\nimport { Label } from '../../components'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n header: {\r\n paddingBottom: 0,\r\n },\r\n content: {\r\n padding: 0,\r\n '&:last-child': {\r\n paddingBottom: 0,\r\n },\r\n },\r\n description: {\r\n padding: theme.spacing(2, 3, 1, 3),\r\n },\r\n tags: {\r\n padding: theme.spacing(0, 3, 1, 3),\r\n '& > * + *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n },\r\n learnMoreButton: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n likedButton: {\r\n color: colors.red[600],\r\n },\r\n shareButton: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n details: {\r\n padding: theme.spacing(1, 3),\r\n },\r\n}))\r\n\r\nconst ProjectCard = (props) => {\r\n const { project, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const [liked, setLiked] = useState(project.liked)\r\n\r\n const handleLike = () => {\r\n setLiked(true)\r\n }\r\n\r\n const handleUnlike = () => {\r\n setLiked(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n {getInitials(project.author.name)}\r\n \r\n }\r\n className={classes.header}\r\n disableTypography\r\n subheader={\r\n \r\n by{' '}\r\n \r\n {project.author.name}\r\n {' '}\r\n | Updated: {moment(project.updated_at).fromNow()}\r\n \r\n }\r\n title={\r\n \r\n {project.title}\r\n \r\n }\r\n />\r\n \r\n
\r\n \r\n We're looking for experienced Developers and Product\r\n Designers to come aboard and help us build succesful\r\n businesses through softare.\r\n \r\n
\r\n
\r\n {project.tags.map((tag) => (\r\n \r\n ))}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n ${project.price}\r\n \r\n Per Project\r\n \r\n \r\n \r\n {project.location}\r\n \r\n Location\r\n \r\n \r\n {project.type}\r\n Type\r\n \r\n \r\n {liked ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Learn more\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nProjectCard.propTypes = {\r\n className: PropTypes.string,\r\n project: 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 '@material-ui/styles'\r\nimport { colors } from '@material-ui/core'\r\nimport StarIcon from '@material-ui/icons/Star'\r\nimport StarBorderIcon from '@material-ui/icons/StarBorder'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n },\r\n starIcon: {\r\n fontSize: 18,\r\n height: 18,\r\n width: 18,\r\n },\r\n starFilledIcon: {\r\n color: colors.amber[400],\r\n },\r\n starBorderIcon: {\r\n color: theme.palette.icon,\r\n },\r\n}))\r\n\r\nconst ReviewStars = (props) => {\r\n const { value, starCount, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n const starNodes = []\r\n\r\n for (let i = 1; i <= starCount; i++) {\r\n const key = uuid()\r\n\r\n const starNode =\r\n i <= value ? (\r\n \r\n ) : (\r\n \r\n )\r\n\r\n starNodes.push(starNode)\r\n }\r\n\r\n return (\r\n
\r\n {starNodes}\r\n
\r\n )\r\n}\r\n\r\nReviewStars.propTypes = {\r\n className: PropTypes.string,\r\n starCount: PropTypes.number.isRequired,\r\n value: PropTypes.number.isRequired,\r\n}\r\n\r\nReviewStars.defaultProps = {\r\n value: 0,\r\n starCount: 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 '@material-ui/styles'\r\nimport { Tooltip, Button } from '@material-ui/core'\r\nimport { fade } from '@material-ui/core/styles/colorManipulator'\r\nimport CodeIcon from '@material-ui/icons/Code'\r\nimport FormatListBulletedIcon from '@material-ui/icons/FormatListBulleted'\r\nimport FormatListNumberedIcon from '@material-ui/icons/FormatListNumbered'\r\nimport FormatItalicIcon from '@material-ui/icons/FormatItalic'\r\nimport FormatBoldIcon from '@material-ui/icons/FormatBold'\r\nimport FormatUnderlined from '@material-ui/icons/FormatUnderlined'\r\nimport FormatQuoteIcon from '@material-ui/icons/FormatQuote'\r\nimport FormatAlignLeftIcon from '@material-ui/icons/FormatAlignLeft'\r\nimport FormatAlignCenterIcon from '@material-ui/icons/FormatAlignCenter'\r\nimport FormatAlignRightIcon from '@material-ui/icons/FormatAlignRight'\r\nimport FormatAlignJustifyIcon from '@material-ui/icons/FormatAlignJustify'\r\n\r\nconst useStyles1 = makeStyles((theme) => ({\r\n root: {},\r\n inner: {\r\n padding: theme.spacing(1),\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n}))\r\n\r\nconst useStyles2 = makeStyles((theme) => ({\r\n button: {\r\n padding: 0,\r\n width: 32,\r\n height: 32,\r\n minWidth: 32,\r\n color: theme.palette.icon,\r\n '& + &': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n },\r\n activeButton: {\r\n backgroundColor: fade(theme.palette.primary.main, 0.1),\r\n color: theme.palette.primary.main,\r\n },\r\n}))\r\n\r\nconst BLOCK_TYPES = [\r\n {\r\n blockType: 'header-one',\r\n tooltip: 'Heading 1',\r\n text: 'H1',\r\n },\r\n {\r\n blockType: 'header-two',\r\n tooltip: 'Heading 2',\r\n text: 'H2',\r\n },\r\n {\r\n blockType: 'header-three',\r\n tooltip: 'Heading 3',\r\n text: 'H3',\r\n },\r\n {\r\n blockType: 'header-four',\r\n tooltip: 'Heading 4',\r\n text: 'H4',\r\n },\r\n {\r\n blockType: 'header-five',\r\n tooltip: 'Heading 5',\r\n text: 'H5',\r\n },\r\n {\r\n blockType: 'header-six',\r\n tooltip: 'Heading 6',\r\n text: 'H6',\r\n },\r\n {\r\n blockType: 'blockquote',\r\n tooltip: 'Blockquote',\r\n icon: FormatQuoteIcon,\r\n },\r\n {\r\n blockType: 'unordered-list-item',\r\n tooltip: 'Unordered list',\r\n icon: FormatListBulletedIcon,\r\n },\r\n {\r\n blockType: 'ordered-list-item',\r\n tooltip: 'Ordered list',\r\n icon: FormatListNumberedIcon,\r\n },\r\n {\r\n blockType: 'code-block',\r\n tooltip: 'Code Block',\r\n icon: CodeIcon,\r\n },\r\n {\r\n blockType: 'left',\r\n tooltip: 'Align left',\r\n icon: FormatAlignLeftIcon,\r\n },\r\n {\r\n blockType: 'center',\r\n tooltip: 'Align center',\r\n icon: FormatAlignCenterIcon,\r\n },\r\n {\r\n blockType: 'right',\r\n tooltip: 'Align right',\r\n icon: FormatAlignRightIcon,\r\n },\r\n {\r\n blockType: 'justify',\r\n tooltip: 'Justify',\r\n icon: FormatAlignJustifyIcon,\r\n },\r\n]\r\n\r\nconst INLINE_STYLES = [\r\n {\r\n inlineStyle: 'BOLD',\r\n tooltip: 'Bold',\r\n icon: FormatBoldIcon,\r\n },\r\n {\r\n inlineStyle: 'ITALIC',\r\n tooltip: 'Italic',\r\n icon: FormatItalicIcon,\r\n },\r\n {\r\n inlineStyle: 'UNDERLINE',\r\n tooltip: 'Underline',\r\n icon: FormatUnderlined,\r\n },\r\n {\r\n inlineStyle: 'CODE',\r\n tooltip: 'Monospace',\r\n icon: CodeIcon,\r\n },\r\n]\r\n\r\nconst ButtonBase = (props) => {\r\n const { active, tooltip, children, ...rest } = props\r\n\r\n const classes = useStyles2()\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nButtonBase.propTypes = {\r\n active: PropTypes.bool,\r\n children: PropTypes.node,\r\n onClick: PropTypes.func,\r\n tooltip: PropTypes.string,\r\n}\r\n\r\nconst BlockTypeButtons = (props) => {\r\n const { editorState, onToggle } = props\r\n\r\n const handleClick = (event, blockType) => {\r\n event.preventDefault()\r\n\r\n onToggle('blockType', blockType)\r\n }\r\n\r\n const selection = editorState.getSelection()\r\n const blockType = editorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey())\r\n .getType()\r\n const blockData = editorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey())\r\n .getData()\r\n\r\n return (\r\n \r\n {BLOCK_TYPES.map((button) => {\r\n let active = false\r\n\r\n if (\r\n ['left', 'center', 'right', 'justify'].includes(\r\n button.blockType\r\n )\r\n ) {\r\n active = blockData.get('text-align') === button.blockType\r\n } else {\r\n active = button.blockType === blockType\r\n }\r\n\r\n return (\r\n \r\n handleClick(event, button.blockType)\r\n }\r\n tooltip={button.tooltip}>\r\n {button.icon ? : button.text}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nBlockTypeButtons.propTypes = {\r\n editorState: PropTypes.any.isRequired,\r\n onToggle: PropTypes.func,\r\n}\r\n\r\nconst InlineStyleButtons = (props) => {\r\n const { editorState, onToggle } = props\r\n\r\n const handleClick = (event, inlineStyle) => {\r\n event.preventDefault()\r\n onToggle('inlineStyle', inlineStyle)\r\n }\r\n\r\n const currentStyle = editorState.getCurrentInlineStyle()\r\n\r\n return (\r\n \r\n {INLINE_STYLES.map((button) => (\r\n handleClick(event, button.inlineStyle)}\r\n tooltip={button.tooltip}>\r\n {button.icon ? : button.text}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nInlineStyleButtons.propTypes = {\r\n editorState: PropTypes.any.isRequired,\r\n onToggle: PropTypes.func,\r\n}\r\n\r\nconst EditorToolbar = (props) => {\r\n const { editorState, onToggle, className, ...rest } = props\r\n\r\n const classes = useStyles1()\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nEditorToolbar.propTypes = {\r\n className: PropTypes.string,\r\n editorState: PropTypes.any.isRequired,\r\n onToggle: 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 const newContentState = Modifier.setBlockData(\r\n editorState.getCurrentContent(),\r\n editorState.getSelection(),\r\n data\r\n )\r\n\r\n return EditorState.push(editorState, newContentState, 'change-block-data')\r\n}\r\n\r\nconst newBlockRenderMap = Map({\r\n unstyled: {\r\n element: 'p',\r\n },\r\n paragraph: {\r\n element: 'p',\r\n },\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 newBlockRenderMap\r\n)\r\n","import React, { useState, useRef } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport {\r\n Editor,\r\n EditorState,\r\n RichUtils,\r\n Modifier,\r\n getDefaultKeyBinding,\r\n} from 'draft-js'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Paper, Divider } from '@material-ui/core'\r\n\r\nimport { EditorToolbar } from './components'\r\nimport { blockRenderMap } from './utils'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n editorContainer: {\r\n padding: theme.spacing(2),\r\n minHeight: 400,\r\n '& .public-DraftEditorPlaceholder-root': {\r\n ...theme.typography.body2,\r\n },\r\n '& .public-DraftEditorPlaceholder-hasFocus': {\r\n display: 'none',\r\n },\r\n '& .public-DraftEditor-content': {\r\n '& p': {\r\n ...theme.typography.body1,\r\n },\r\n '& h1': {\r\n ...theme.typography.h1,\r\n },\r\n '& h2': {\r\n ...theme.typography.h2,\r\n },\r\n '& h3': {\r\n ...theme.typography.h3,\r\n },\r\n '& h4': {\r\n ...theme.typography.h4,\r\n },\r\n '& h5': {\r\n ...theme.typography.h5,\r\n },\r\n '& h6': {\r\n ...theme.typography.h6,\r\n },\r\n '& blockquote': {\r\n ...theme.typography.subtitle1,\r\n },\r\n '& ul': {\r\n ...theme.typography.body1,\r\n marginLeft: theme.spacing(4),\r\n },\r\n '& ol': {\r\n ...theme.typography.body1,\r\n marginLeft: theme.spacing(4),\r\n },\r\n '& pre': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\r\n fontFamily: '\"Inconsolata\", \"Menlo\", \"Consolas\", monospace',\r\n fontSize: 16,\r\n padding: 2,\r\n },\r\n },\r\n },\r\n textAlignLeft: {\r\n textAlign: 'left',\r\n },\r\n textAlignCenter: {\r\n textAlign: 'center',\r\n },\r\n textAlignRight: {\r\n textAlign: 'right',\r\n },\r\n textAlignJustify: {\r\n textAlign: 'justify',\r\n },\r\n}))\r\n\r\nconst capitalize = (string) => string.charAt(0).toUpperCase() + string.slice(1)\r\n\r\nconst RichEditor = (props) => {\r\n const { placeholder, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const editorRef = useRef(null)\r\n\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty())\r\n\r\n const handleContainerClick = () => {\r\n editorRef.current.focus()\r\n }\r\n\r\n const handleToolbarToggle = (type, value) => {\r\n if (type === 'blockType') {\r\n if (['left', 'center', 'right', 'justify'].includes(value)) {\r\n const newContentState = Modifier.setBlockData(\r\n editorState.getCurrentContent(),\r\n editorState.getSelection(),\r\n { 'text-align': value }\r\n )\r\n\r\n const newEditorState = EditorState.push(\r\n editorState,\r\n newContentState,\r\n 'change-block-data'\r\n )\r\n\r\n setEditorState(newEditorState)\r\n return\r\n }\r\n\r\n setEditorState(RichUtils.toggleBlockType(editorState, value))\r\n } else {\r\n setEditorState(RichUtils.toggleInlineStyle(editorState, value))\r\n }\r\n }\r\n\r\n const handleEditorChange = (editorState) => {\r\n setEditorState(editorState)\r\n }\r\n\r\n const handleKeyCommand = (command, editorState) => {\r\n const newState = RichUtils.handleKeyCommand(editorState, command)\r\n\r\n if (newState) {\r\n handleEditorChange(newState)\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n const mapKeyToEditorCommand = (event) => {\r\n if (event.keyCode === 9) {\r\n const newEditorState = RichUtils.onTab(event, editorState, 4)\r\n\r\n if (newEditorState !== editorState) {\r\n handleEditorChange(newEditorState)\r\n }\r\n\r\n return\r\n }\r\n\r\n return getDefaultKeyBinding(event)\r\n }\r\n\r\n function blockStyleFn(contentBlock) {\r\n const textAlign = contentBlock.getData().get('text-align')\r\n\r\n if (textAlign) {\r\n const className = `textAlign${capitalize(textAlign)}`\r\n\r\n return classes[className]\r\n }\r\n\r\n return ''\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nRichEditor.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nexport default RichEditor\r\n","import { useEffect } from 'react'\r\n\r\nimport useRouter from 'utils/useRouter'\r\n\r\nconst ScrollReset = () => {\r\n const router = useRouter()\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [router.location.pathname])\r\n\r\n return null\r\n}\r\n\r\nexport default ScrollReset\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/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} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup } from '@material-ui/lab';\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport DeleteIcon from '@material-ui/icons/DeleteOutlined';\r\nimport AddIcon from '@material-ui/icons/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\tevent.persist && event.persist();\r\n\t\tsetValues((values) => ({\r\n\t\t\t...values,\r\n\t\t\t[field]: value,\r\n\t\t}));\r\n\t};\r\n\r\n\tconst handleTagAdd = () => {\r\n\t\tsetValues((values) => {\r\n\t\t\tconst newValues = { ...values };\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((values) => {\r\n\t\t\tconst newValues = { ...values };\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((expandProject) => !expandProject);\r\n\t};\r\n\r\n\tconst handleToggleCustomer = () => {\r\n\t\tsetExpandCustomer((expandCustomer) => !expandCustomer);\r\n\t};\r\n\r\n\tconst handleSubmit = (event) => {\r\n\t\tevent.preventDefault();\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 && handleFieldChange(\r\n \tevent,\r\n \t'customerType',\r\n \tvalue\r\n )}\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 '@material-ui/styles'\r\nimport { Paper, Button, Input } from '@material-ui/core'\r\nimport SearchIcon from '@material-ui/icons/Search'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n search: {\r\n flexGrow: 1,\r\n height: 42,\r\n padding: theme.spacing(0, 2),\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n searchIcon: {\r\n marginRight: theme.spacing(2),\r\n color: theme.palette.icon,\r\n },\r\n searchInput: {\r\n flexGrow: 1,\r\n },\r\n searchButton: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n}))\r\n\r\nconst Search = (props) => {\r\n const { onSearch, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Search\r\n \r\n
\r\n )\r\n}\r\n\r\nSearch.propTypes = {\r\n className: PropTypes.string,\r\n onSearch: 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 '@material-ui/styles';\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport FilterListIcon from '@material-ui/icons/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 '@material-ui/styles'\r\nimport { Tooltip, Avatar } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n paddingLeft: 20,\r\n },\r\n avatar: {\r\n border: `3px solid ${theme.palette.white}`,\r\n marginLeft: -20,\r\n '&:hover': {\r\n zIndex: 2,\r\n },\r\n },\r\n more: {\r\n backgroundColor: theme.palette.error.main,\r\n color: theme.palette.error.contrastText,\r\n fontSize: 14,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n}))\r\n\r\nconst StackAvatars = (props) => {\r\n const { avatars, limit, className, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const avatarNodes = avatars.slice(0, limit).map((item) => (\r\n \r\n \r\n \r\n ))\r\n\r\n if (avatars.length > limit) {\r\n avatarNodes.push(\r\n \r\n \r\n +{avatars.length - limit}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n {avatarNodes}\r\n
\r\n )\r\n}\r\n\r\nStackAvatars.propTypes = {\r\n avatars: PropTypes.array.isRequired,\r\n className: PropTypes.string,\r\n limit: PropTypes.number.isRequired,\r\n}\r\n\r\nStackAvatars.defaultProps = {\r\n limit: 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 '@material-ui/styles'\r\nimport { colors } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'inline-block',\r\n borderRadius: '50%',\r\n flexGrow: 0,\r\n flexShrink: 0,\r\n },\r\n small: {\r\n height: theme.spacing(1),\r\n width: theme.spacing(1),\r\n },\r\n medium: {\r\n height: theme.spacing(2),\r\n width: theme.spacing(2),\r\n },\r\n large: {\r\n height: theme.spacing(3),\r\n width: theme.spacing(3),\r\n },\r\n default: {\r\n backgroundColor: colors.grey[50],\r\n },\r\n primary: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n info: {\r\n backgroundColor: colors.lightBlue[600],\r\n },\r\n warning: {\r\n backgroundColor: colors.orange[900],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.main,\r\n },\r\n success: {\r\n backgroundColor: colors.green[600],\r\n },\r\n}))\r\n\r\nconst StatusBullet = (props) => {\r\n const { className, size, color, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const rootClassName = clsx(\r\n {\r\n [classes.root]: true,\r\n [classes[size]]: size,\r\n [classes[color]]: color,\r\n },\r\n className\r\n )\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nStatusBullet.propTypes = {\r\n className: PropTypes.string,\r\n color: PropTypes.oneOf([\r\n 'default',\r\n 'primary',\r\n 'info',\r\n 'success',\r\n 'warning',\r\n 'error',\r\n ]),\r\n size: PropTypes.oneOf(['small', 'medium', 'large']),\r\n}\r\n\r\nStatusBullet.defaultProps = {\r\n size: 'medium',\r\n color: '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 '@material-ui/styles'\r\nimport { Drawer, Grid, Typography, Button, Hidden } from '@material-ui/core'\r\nimport CheckIcon from '@material-ui/icons/Check'\r\nimport CloseIcon from '@material-ui/icons/Close'\r\nimport DeleteIcon from '@material-ui/icons/DeleteOutline'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n },\r\n actions: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n flexWrap: 'wrap',\r\n '& > * + *': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n },\r\n buttonIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst TableEditBar = (props) => {\r\n const {\r\n selected,\r\n className,\r\n onMarkPaid,\r\n onMarkUnpaid,\r\n onDelete,\r\n ...rest\r\n } = props\r\n\r\n const classes = useStyles()\r\n const open = selected.length > 0\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {selected.length} selected\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nTableEditBar.propTypes = {\r\n className: PropTypes.string,\r\n onDelete: PropTypes.func,\r\n onMarkPaid: PropTypes.func,\r\n onMarkUnpaid: PropTypes.func,\r\n selected: 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 '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\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 '@material-ui/styles'\r\nimport { Grid, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {},\r\n dates: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n },\r\n startDateButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n endDateButton: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n calendarTodayIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n}))\r\n\r\nconst Header = (props) => {\r\n const { module, view, actions, className, ...rest } = props\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {module}\r\n \r\n \r\n {view}\r\n \r\n \r\n {actions &&\r\n \r\n {actions}\r\n \r\n }\r\n \r\n
\r\n )\r\n}\r\n\r\nHeader.propTypes = {\r\n className: PropTypes.string,\r\n module: PropTypes.string,\r\n view: PropTypes.string,\r\n}\r\n\r\nHeader.defaultProps = {}\r\n\r\nexport default Header;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles, Paper } from '@material-ui/core';\r\nimport { Calendar as MuiPickersCalendar, usePickerState } from '@material-ui/pickers';\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] = usePickerState({\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 '@material-ui/styles';\r\nimport { Button, Card, CardContent, CardActions, Grid, Divider, colors, Paper, Tooltip, IconButton, InputBase } from '@material-ui/core';\r\nimport AttachFileIcon from '@material-ui/icons/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 { placeholder, 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\tplaceholder: PropTypes.string,\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 '@material-ui/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, { Component } from 'react';\r\nimport './Map.scss';\r\nimport L from 'leaflet';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport _ from 'underscore';\r\n\r\nimport * as MapActions from './actions/MapActions.js';\r\n\r\nimport 'leaflet-groupedlayercontrol';\r\nimport './SemiCircle.js';\r\n\r\nconst style = {\r\n\twidth: '100%',\r\n\theight: '60vh',\r\n\tzIndex: 1\r\n};\r\n\r\nclass Map extends Component {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.mapContext = {\r\n\t\t\tid: null,\r\n\t\t\t_self: null,\r\n\t\t\tmap: null,\r\n\t\t\tLayer2G: null,\r\n\t\t\tLayer3G: null,\r\n\t\t\tLayer4G: null,\r\n\t\t\t// added overlays\r\n\t\t\toverlays: [],\r\n\r\n\t\t\t// active layers\r\n\t\t\tactiveLayers: [],\r\n\r\n\t\t\t// map layercontrol\r\n\t\t\tlayerControl: null,\r\n\t\t\ttopology: { '2G': [], '3G': [], '4G': [] },\r\n\r\n\t\t\tlegend: { LegendElements: [], Title: '' },\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.initMap();\r\n\t}\r\n\r\n\tcomponentDidUpdate() {\r\n\t\tconst { id, mapUpdated, maps, zoomToUpdate } = this.props;\r\n\t\t// check if data has changed\r\n\t\tif (this.mapContext.id === mapUpdated) {\r\n\t\t\tthis.mapContext.activeLayers = this.getActiveOverlays();\r\n\t\t\tthis.mapContext.activePopup = this.getActivePopup();\r\n\t\t\tthis.mapContext.topology = maps.length !== 0 && !_.isUndefined(mapUpdated) ? maps.filter(item => item.id === mapUpdated)[0].topology : { '2G': [], '3G': [], '4G': [] };\r\n\t\t\tif (this.mapContext.map.getZoom() > zoomToUpdate) {\r\n\t\t\t\t// this.updateTopology(this.mapContext.topology);\r\n\t\t\t} else {\r\n\t\t\t\tthis.RemoveLayerById('2G');\r\n\t\t\t\tthis.RemoveLayerById('3G');\r\n\t\t\t\tthis.RemoveLayerById('4G');\r\n\t\t\t}\r\n\t\t\tconst legend = maps.length !== 0 && !_.isUndefined(mapUpdated) ? maps.filter(item => item.id === mapUpdated)[0].legend : { LegendElements: [], Title: '' };\r\n\t\t\tthis.AddLegend(legend.legendElements, legend.title);\r\n\t\t}\r\n\t}\r\n\r\n\tinitMap() {\r\n\t\tconst { id, zoomToUpdate, onUpdateCoordinates, onAddMap, scale, lat, lon, zoom } = this.props;\r\n\t\tthis.mapContext.id = id;\r\n\t\tthis.mapContext._self = this;\r\n\t\t// added overlays\r\n\t\tthis.mapContext.overlays = [];\r\n\r\n\t\t// active layers\r\n\t\tthis.mapContext.activeLayers = [];\r\n\r\n\t\t// initialize the map on the \"map\" div with a given center and zoom\r\n\t\tconst osmBase = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}');\r\n\t\tconst osmSatellite = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}');\r\n\r\n\t\tconst baseMaps = {\r\n\t\t\tMap: osmBase,\r\n\t\t\tSatellite: osmSatellite\r\n\t\t};\r\n\r\n\t\tthis.mapContext.map = L.map(id, {\r\n\t\t\tcenter: [lat, lon],\r\n\t\t\tzoom,\r\n\t\t\tattributionControl: false,\r\n\t\t\tpreferCanvas: true\r\n\t\t});\r\n\t\t// now you can add the basemap\r\n\t\tosmBase.addTo(this.mapContext.map);\r\n\r\n\t\tthis.mapContext.layerControl = L.control.groupedLayers(baseMaps).addTo(this.mapContext.map);\r\n\r\n\t\tif (scale) {\r\n\t\t\tL.control.scale().addTo(this.mapContext.map);\r\n\t\t}\r\n\r\n\t\tconst that = this;\r\n\t\tthis.mapContext.map.on('moveend', (e) => {\r\n\t\t\tconst coordinates = that.GetMapDataBounds();\r\n\t\t\tconst value = { id, newCoordinates: coordinates };\r\n\t\t\tif (this.mapContext.map.getZoom() > zoomToUpdate) {\r\n\t\t\t\tonUpdateCoordinates(value);\r\n\t\t\t}\r\n\t\t\t// if (that.props.driveTestData !== undefined) {\r\n\t\t\t// \tthat.props.driveTestData(that);\r\n\t\t\t// }\r\n\t\t});\r\n\r\n\t\tonAddMap({ id, coordinates: this.GetMapDataBounds(), instance: this.mapContext.map, control: this });\r\n\r\n\t\tsetTimeout(() => { this.mapContext.map.invalidateSize(); }, 500);\r\n\t}\r\n\r\n\taddTopologyLabels(topology, layerName) {\r\n\t\tthis.RemoveLayerById(layerName);\r\n\t\tthis.Markers = [];\r\n\t\ttopology.forEach(item => {\r\n\t\t\t// Offset\r\n\t\t\tconst lat = item.latitude + 0.0001;\r\n\t\t\tconst lon = item.longitude + 0.002;\r\n\t\t\tconst coords = L.latLng(lat, lon);\r\n\t\t\t// const markerLable = L.marker(coords).addTo(this.mapContext.map);\r\n\t\t\tconst textMarker = L.marker(coords, {\r\n\t\t\t\ticon: L.divIcon({\r\n\t\t\t\t\t// html: ``,\r\n\t\t\t\t\thtml: ``,\r\n\t\t\t\t\tclassName: 'text-below-marker',\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t\tthis.Markers.push(textMarker);\r\n\t\t});\r\n\r\n\t\tconst layer = L.layerGroup(this.Markers, { id: layerName });\r\n\t\tlayer.addTo(this.mapContext.map);\r\n\t}\r\n\r\n\tupdateTopology2g(topology, layerName) {\r\n\t\tthis.RemoveLayerById(layerName);\r\n\t\tthis.Markers2G = [];\r\n\r\n\t\tconst currentZoom = this.mapContext.map.getZoom();\r\n\t\tconst radius = this.GetRadius(currentZoom);\r\n\r\n\t\ttopology.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\t\t\t// const code = item.code === undefined ? '' : item.code.split(' ')[0];\r\n\r\n\t\t\t// let cellColor = '#B80000';\r\n\t\t\t// if (_.isUndefined(item.code)) {\r\n\t\t\t// \tcolor = '#B80000';\r\n\t\t\t// } else if (item.code % 2 === 0) {\r\n\t\t\t// \tcolor = this.intToRGB(item.code * 10000);\r\n\t\t\t// } else {\r\n\t\t\t// \tcolor = this.invertColor(this.intToRGB(item.code * 10000));\r\n\t\t\t// }\r\n\r\n\t\t\tlet cellColor = '#B80000';\r\n\t\t\tlet cellRadius = 300;\r\n\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\tcase 900:\r\n\t\t\t\t\t\t\t\tcellColor = '#49bbf1';\r\n\t\t\t\t\t\t\t\tcellRadius = 300;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 1800:\r\n\t\t\t\t\t\t\t\tcellColor = '#92d6f7';\r\n\t\t\t\t\t\t\t\tcellRadius = 275;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tcellColor = '#00000';\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\t// radius: 100 + radius,\r\n\t\t\t\t// radius: 200,\r\n\t\t\t\tradius: cellRadius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: '#0e86be',\r\n\t\t\t\tweight: 2,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: cellColor,\r\n\t\t\t\tfillOpacity: 0.75\r\n\t\t\t});\r\n\t\t\tthis.Markers2G.push(marker.bindPopup(`
${this.makeDetailsTableTopologySeparated(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\tconst layer = L.layerGroup(this.Markers2G, { id: layerName });\r\n\t\tlayer.addTo(this.mapContext.map);\r\n\t}\r\n\r\n\tupdateTopology3g(topology, layerName) {\r\n\t\tthis.RemoveLayerById(layerName);\r\n\t\tthis.Markers3G = [];\r\n\r\n\t\tconst currentZoom = this.mapContext.map.getZoom();\r\n\t\tconst radius = this.GetRadius(currentZoom);\r\n\r\n\t\t// 3G\r\n\t\ttopology.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\r\n\t\t\t// let color = '#008000';\r\n\t\t\t// if (_.isUndefined(item.code)) {\r\n\t\t\t// \tcolor = '#008000';\r\n\t\t\t// } else if (item.code % 2 === 0) {\r\n\t\t\t// \tcolor = this.intToRGB(item.code * 10000);\r\n\t\t\t// } else {\r\n\t\t\t// \tcolor = this.invertColor(this.intToRGB(item.code * 10000));\r\n\t\t\t// }\r\n\r\n\t\t\tlet cellColor = '#008000';\r\n\t\t\tlet cellRadius = 250;\r\n\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\tcase 900:\r\n\t\t\t\t\t\t\t\tcellColor = '#fdb233';\r\n\t\t\t\t\t\t\t\tcellRadius = 250;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 2100:\r\n\t\t\t\t\t\t\t\tcellColor = '#ffd085';\r\n\t\t\t\t\t\t\t\tcellRadius = 225;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tcellColor = '#00000';\r\n\t\t\t\t\t\t\t\tcellRadius = 200;\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\t// radius: 80 + radius,\r\n\t\t\t\t// radius: 150,\r\n\t\t\t\tradius: cellRadius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: '#fca103',\r\n\t\t\t\tweight: 2,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: cellColor,\r\n\t\t\t\tfillOpacity: 0.75\r\n\t\t\t});\r\n\t\t\tthis.Markers3G.push(marker.bindPopup(`
${this.makeDetailsTableTopologySeparated(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\tconst layer = L.layerGroup(this.Markers3G, { id: layerName });\r\n\t\tlayer.addTo(this.mapContext.map);\r\n\t}\r\n\r\n\tupdateTopology4g(topology, layerName) {\r\n\t\tthis.RemoveLayerById(layerName);\r\n\t\tthis.Markers4G = [];\r\n\r\n\t\tconst currentZoom = this.mapContext.map.getZoom();\r\n\t\tconst radius = this.GetRadius(currentZoom);\r\n\r\n\t\t// 4G\r\n\t\ttopology.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\r\n\t\t\t// let color = '#0033CC';\r\n\t\t\t// if (_.isUndefined(item.code)) {\r\n\t\t\t// \tcolor = '#0033CC';\r\n\t\t\t// } else if (item.code % 2 === 0) {\r\n\t\t\t// \tcolor = this.intToRGB(item.code * 10000);\r\n\t\t\t// } else {\r\n\t\t\t// \tcolor = this.invertColor(this.intToRGB(item.code * 10000));\r\n\t\t\t// }\r\n\r\n\t\t\tlet cellColor = '#0033CC';\r\n\t\t\tlet cellRadius = 175;\r\n\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\tcase 800:\r\n\t\t\t\t\t\t\t\tcellColor = '#eb2427';\r\n\t\t\t\t\t\t\t\tcellRadius = 175;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 2100:\r\n\t\t\t\t\t\t\t\tcellColor = '#f37c7d';\r\n\t\t\t\t\t\t\t\tcellRadius = 150;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 2600:\r\n\t\t\t\t\t\t\t\tcellColor = '#fbd3d4';\r\n\t\t\t\t\t\t\t\tcellRadius = 125;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tcellColor = '#00000';\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\t// radius: 70 + radius,\r\n\t\t\t\t// radius: 100,\r\n\t\t\t\tradius: cellRadius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: '#e91619',\r\n\t\t\t\tweight: 2,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: cellColor,\r\n\t\t\t\tfillOpacity: 0.75\r\n\t\t\t});\r\n\t\t\tthis.Markers4G.push(marker.bindPopup(`
${this.makeDetailsTableTopologySeparated(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\tconst layer = L.layerGroup(this.Markers4G, { id: layerName });\r\n\t\tlayer.addTo(this.mapContext.map);\r\n\t}\r\n\r\n\tupdateTopology5g(topology, layerName) {\r\n\t\tthis.RemoveLayerById(layerName);\r\n\t\tthis.Markers5G = [];\r\n\r\n\t\tconst currentZoom = this.mapContext.map.getZoom();\r\n\t\tconst radius = this.GetRadius(currentZoom);\r\n\r\n\t\t// 5G\r\n\t\ttopology.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\r\n\t\t\t// let color = '#0033CC';\r\n\t\t\t// if (_.isUndefined(item.code)) {\r\n\t\t\t// \tcolor = '#0033CC';\r\n\t\t\t// } else if (item.code % 2 === 0) {\r\n\t\t\t// \tcolor = this.intToRGB(item.code * 10000);\r\n\t\t\t// } else {\r\n\t\t\t// \tcolor = this.invertColor(this.intToRGB(item.code * 10000));\r\n\t\t\t// }\r\n\r\n\t\t\tlet cellColor = '#0c9e35';\r\n\t\t\tlet cellRadius = 175;\r\n\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\tcase 78:\r\n\t\t\t\t\t\t\t\tcellColor = '#0c9e35';\r\n\t\t\t\t\t\t\t\tcellRadius = 100;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tcellColor = '#00000';\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\t// radius: 70 + radius,\r\n\t\t\t\t// radius: 100,\r\n\t\t\t\tradius: cellRadius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: '#0c9e35',\r\n\t\t\t\tweight: 2,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: cellColor,\r\n\t\t\t\tfillOpacity: 0.75\r\n\t\t\t});\r\n\t\t\tthis.Markers5G.push(marker.bindPopup(`
${this.makeDetailsTableTopologySeparated(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\tconst layer = L.layerGroup(this.Markers5G, { id: layerName });\r\n\t\tlayer.addTo(this.mapContext.map);\r\n\t}\r\n\r\n\tupdateTopologyCarriersColors(topology, layerName) {\r\n\t\tthis.RemoveLayerById(layerName);\r\n\t\tthis.Markers4G = [];\r\n\r\n\t\tconst currentZoom = this.mapContext.map.getZoom();\r\n\t\tconst radius = this.GetRadius(currentZoom);\r\n\r\n\t\ttopology.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\r\n\t\t\tlet cellRadius = 175;\r\n\t\t\tlet borderColor = '#e91619';\r\n\t\t\tif (item.technology === '2G') {\r\n\t\t\t\tborderColor = '#0e86be';\r\n\t\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\t\tcase 900:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 300;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 1800:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 275;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t}\r\n\t\t\t} else if (item.technology === '3G') {\r\n\t\t\t\tborderColor = '#fca103';\r\n\t\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\t\tcase 900:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 250;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 2100:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 225;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 200;\r\n\t\t\t\t}\r\n\t\t\t} else if (item.technology === '4G') {\r\n\t\t\t\tborderColor = '#e91619';\r\n\t\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\t\tcase 800:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 175;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 2100:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 150;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase 2600:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 125;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t}\r\n\t\t\t} else if (item.technology === '5G') {\r\n\t\t\t\tborderColor = '#0c9e35';\r\n\t\t\t\tswitch (item.band) {\r\n\t\t\t\t\t\t\t\tcase 78:\r\n\t\t\t\t\t\t\t\t\tcellRadius = 100;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\t// radius: 70 + radius,\r\n\t\t\t\t// radius: 100,\r\n\t\t\t\tradius: cellRadius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: borderColor,\r\n\t\t\t\tweight: 1,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: item.colorCode,\r\n\t\t\t\tfillOpacity: 0.75\r\n\t\t\t});\r\n\t\t\tthis.Markers4G.push(marker.bindPopup(`
${this.makeDetailsTableTopologySeparated(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\tconst layer = L.layerGroup(this.Markers4G, { id: layerName });\r\n\t\tlayer.addTo(this.mapContext.map);\r\n\t}\r\n\r\n\tupdateTopology(topology) {\r\n\t\tthis.Markers2G = [];\r\n\t\tthis.Markers3G = [];\r\n\t\tthis.Markers4G = [];\r\n\r\n\t\tconst currentZoom = this.mapContext.map.getZoom();\r\n\t\tconst radius = this.GetRadius(currentZoom);\r\n\r\n\t\tthis.RemoveLayer(this.mapContext.Layer2G);\r\n\t\tthis.RemoveLayer(this.mapContext.Layer3G);\r\n\t\tthis.RemoveLayer(this.mapContext.Layer4G);\r\n\r\n\t\ttopology.twoG.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\t\t\t// const code = item.code === undefined ? '' : item.code.split(' ')[0];\r\n\r\n\t\t\tlet color = '#B80000';\r\n\t\t\tif (_.isUndefined(item.code)) {\r\n\t\t\t\tcolor = '#B80000';\r\n\t\t\t} else if (item.code % 2 === 0) {\r\n\t\t\t\tcolor = this.intToRGB(item.code * 10000);\r\n\t\t\t} else {\r\n\t\t\t\tcolor = this.invertColor(this.intToRGB(item.code * 10000));\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\tradius: 100 + radius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: '#B80000',\r\n\t\t\t\tweight: 2,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: color,\r\n\t\t\t\tfillOpacity: 0.3\r\n\t\t\t});\r\n\t\t\tthis.Markers2G.push(marker.bindPopup(`
${this.makeDetailsTableTopology(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\t// this.mapContext.Layer2G = L.layerGroup(this.Markers2G, { id: '2G' });\r\n\r\n\t\t// // double check remove layers to avoid zoom bug\r\n\t\t// // RemoveLayer(Layer2G);\r\n\t\t// this.mapContext.overlays.push(this.mapContext.Layer2G);\r\n\r\n\t\t// this.mapContext.layerControl.addOverlay(this.mapContext.Layer2G, '2G', 'Topology');\r\n\r\n\t\t// this.mapContext.activeLayers.forEach(item => {\r\n\t\t// \tswitch (item) {\r\n\t\t// \t\t\t\t\tcase '2G':\r\n\t\t// \t\t\t\t\t\tthis.mapContext.Layer2G.addTo(this.mapContext.map);\r\n\t\t// \t\t\t\t\t\tbreak;\r\n\t\t// \t\t\t\t\tdefault:\r\n\t\t// \t\t\t\t\t\tbreak;\r\n\t\t// \t}\r\n\t\t// });\r\n\r\n\t\t// 3G\r\n\t\ttopology.threeG.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\r\n\t\t\tlet color = '#008000';\r\n\t\t\tif (_.isUndefined(item.code)) {\r\n\t\t\t\tcolor = '#008000';\r\n\t\t\t} else if (item.code % 2 === 0) {\r\n\t\t\t\tcolor = this.intToRGB(item.code * 10000);\r\n\t\t\t} else {\r\n\t\t\t\tcolor = this.invertColor(this.intToRGB(item.code * 10000));\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\tradius: 91 - item.cell.substr(item.cell.length - 1) * 5 + radius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: '#008000',\r\n\t\t\t\tweight: 2,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: color,\r\n\t\t\t\tfillOpacity: 0.3\r\n\t\t\t});\r\n\t\t\tthis.Markers3G.push(marker.bindPopup(`
${this.makeDetailsTableTopology(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\t// this.mapContext.Layer3G = L.layerGroup(this.Markers3G, { id: '3G' });\r\n\r\n\t\t// // double check remove layers to avoid zoom bug\r\n\t\t// // RemoveLayer(Layer3G);\r\n\t\t// this.mapContext.overlays.push(this.mapContext.Layer3G);\r\n\r\n\t\t// this.mapContext.layerControl.addOverlay(this.mapContext.Layer3G, '3G', 'Topology');\r\n\r\n\t\t// this.mapContext.activeLayers.forEach(item => {\r\n\t\t// \tswitch (item) {\r\n\t\t// \t\t\t\t\tcase '3G':\r\n\t\t// \t\t\t\t\t\tthis.mapContext.Layer3G.addTo(this.mapContext.map);\r\n\t\t// \t\t\t\t\t\tbreak;\r\n\t\t// \t\t\t\t\tdefault:\r\n\t\t// \t\t\t\t\t\tbreak;\r\n\t\t// \t}\r\n\t\t// });\r\n\r\n\t\t// 4G\r\n\t\ttopology.fourG.forEach(item => {\r\n\t\t\tconst start = item.azimuth - item.beamWidth / 2;\r\n\t\t\tconst end = item.azimuth + item.beamWidth / 2;\r\n\r\n\t\t\tlet color = '#0033CC';\r\n\t\t\tif (_.isUndefined(item.code)) {\r\n\t\t\t\tcolor = '#0033CC';\r\n\t\t\t} else if (item.code % 2 === 0) {\r\n\t\t\t\tcolor = this.intToRGB(item.code * 10000);\r\n\t\t\t} else {\r\n\t\t\t\tcolor = this.invertColor(this.intToRGB(item.code * 10000));\r\n\t\t\t}\r\n\r\n\t\t\tconst marker = L.semiCircle([item.latitude, item.longitude], {\r\n\t\t\t\tradius: 81 - item.cell.substr(item.cell.length - 1) + radius,\r\n\t\t\t\tstartAngle: start,\r\n\t\t\t\tstopAngle: end,\r\n\t\t\t\tcolor: '#0033CC',\r\n\t\t\t\tweight: 2,\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tfillColor: color,\r\n\t\t\t\tfillOpacity: 0.3\r\n\t\t\t});\r\n\t\t\tthis.Markers4G.push(marker.bindPopup(`
${this.makeDetailsTableTopology(item)}
`, { autoPan: false }));\r\n\t\t});\r\n\r\n\t\t// this.mapContext.Layer4G = L.layerGroup(this.Markers4G, { id: '4G' });\r\n\r\n\t\t// double check remove layers to avoid zoom bug\r\n\t\t// RemoveLayer(Layer4G);\r\n\t\t// this.mapContext.overlays.push(this.mapContext.Layer4G);\r\n\r\n\t\t// this.mapContext.layerControl.addOverlay(this.mapContext.Layer4G, '4G', 'Topology');\r\n\r\n\t\t// this.mapContext.activeLayers.forEach(item => {\r\n\t\t// \tswitch (item) {\r\n\t\t// \t\t\t\t\tcase '4G':\r\n\t\t// \t\t\t\t\t\tthis.mapContext.Layer4G.addTo(this.mapContext.map);\r\n\t\t// \t\t\t\t\t\tbreak;\r\n\t\t// \t\t\t\t\tdefault:\r\n\t\t// \t\t\t\t\t\tbreak;\r\n\t\t// \t}\r\n\t\t// });\r\n\r\n\t\tconst layer = L.layerGroup(this.Markers4G, { id: 'topo4g' });\r\n\t\tlayer.addTo(this.mapContext.map);\r\n\t\tconst group = new L.featureGroup(this.Markers4G);\r\n\t}\r\n\r\n\tmakeDetailsTableTopology(item) {\r\n\t\tconst table = `\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
Latitude: ${item.latitude}
Longitude: ${item.longitude}
Cell Name: ${item.cell}
Technology: ${item.tech}
Azimuth: ${item.azimuth}
Code: ${item.code}
`;\r\n\t\treturn table;\r\n\t}\r\n\r\n\tmakeDetailsTableTopologySeparated(item) {\r\n\t\tconst table = `\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t
Tech: ${item.technology}
SiteId: ${item.siteId}
Cell Name: ${item.cellName}
Band: ${item.band}
Code: ${item.code}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
Azimuth: ${item.azimuth}
Height: ${item.height}
M. Tilt: ${item.mechanicalTilt}
E. Tilt: ${item.electricalTilt}
`;\r\n\t\treturn table;\r\n\t}\r\n\r\n\tGetRadius(currentZoom) {\r\n\t\tlet radius = 0;\r\n\t\tif (currentZoom === 7) {\r\n\t\t\tradius = 10000;\r\n\t\t} else if (currentZoom === 8) {\r\n\t\t\tradius = 5000;\r\n\t\t} else if (currentZoom === 9) {\r\n\t\t\tradius = 2000;\r\n\t\t} else if (currentZoom === 10) {\r\n\t\t\tradius = 1000;\r\n\t\t} else if (currentZoom === 11) {\r\n\t\t\tradius = 500;\r\n\t\t} else if (currentZoom === 12) {\r\n\t\t\tradius = 300;\r\n\t\t} else if (currentZoom === 13) {\r\n\t\t\tradius = 100;\r\n\t\t} else if (currentZoom === 14) {\r\n\t\t\tradius = 50;\r\n\t\t} else if (currentZoom === 15) {\r\n\t\t\tradius = 30;\r\n\t\t} else if (currentZoom === 16) {\r\n\t\t\tradius = 20;\r\n\t\t} else if (currentZoom === 17) {\r\n\t\t\tradius = 10;\r\n\t\t} else if (currentZoom === 18) {\r\n\t\t\tradius = 5;\r\n\t\t}\r\n\t\treturn radius;\r\n\t}\r\n\r\n\tGetMapDataBounds() {\r\n\t\tconst { map } = this.mapContext;\r\n\t\treturn {\r\n\t\t\tTopRightCornerLatitude: map.getBounds().getNorth(),\r\n\t\t\tTopRightCornerLongitude: map.getBounds().getEast(),\r\n\t\t\tBottomLeftCornerLatitude: map.getBounds().getSouth(),\r\n\t\t\tBottomLeftCornerLongitude: map.getBounds().getWest(),\r\n\t\t\tCenterLatitude: map.getCenter().lat,\r\n\t\t\tCenterLongitude: map.getCenter().lng,\r\n\t\t\tzoom: map.getZoom(),\r\n\t\t};\r\n\t}\r\n\r\n\tRemoveLayer(layer) {\r\n\t\tconst thatState = this.mapContext;\r\n\t\tif (layer !== undefined && layer !== null) {\r\n\t\t\tthatState.layerControl._layers.forEach((obj, index) => {\r\n\t\t\t\tif (obj.layer.options !== undefined) {\r\n\t\t\t\t\tif (obj.layer.options.id === layer.options.id) {\r\n\t\t\t\t\t\tthatState.layerControl._layers.splice(index, 1);\r\n\t\t\t\t\t\tthatState.layerControl._update();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthatState.map.eachLayer((obj) => {\r\n\t\t\t\t// Check if it's an overlay and added to the map\r\n\t\t\t\tif (obj.options.id === layer.options.id) {\r\n\t\t\t\t\tthatState.map.removeLayer(obj);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tRemoveLayerById(layerId) {\r\n\t\tconst thatState = this.mapContext;\r\n\t\tif (layerId !== undefined && layerId !== null) {\r\n\t\t\tthatState.layerControl._layers.forEach((obj, index) => {\r\n\t\t\t\tif (obj.layer.options !== undefined) {\r\n\t\t\t\t\tif (obj.layer.options.id === layerId) {\r\n\t\t\t\t\t\tthatState.layerControl._layers.splice(index, 1);\r\n\t\t\t\t\t\tthatState.layerControl._update();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthatState.map.eachLayer((obj) => {\r\n\t\t\t\t// Check if it's an overlay and added to the map\r\n\t\t\t\tif (obj.options.id === layerId) {\r\n\t\t\t\t\tthatState.map.removeLayer(obj);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tgetActiveOverlays() {\r\n\t\tconst { map } = this.mapContext;\r\n\t\t// Create array for holding active layers\r\n\t\tconst active = [];\r\n\t\tconst thatState = this.mapContext;\r\n\t\t// Iterate all layers in control\r\n\t\tmap.eachLayer((obj) => {\r\n\t\t\t// Check if it's an overlay and added to the map\r\n\t\t\tif (thatState.map.hasLayer(obj) && obj.options.pane === 'overlayPane') {\r\n\t\t\t\t// Push layer to active array\r\n\t\t\t\tactive.push(obj.options.id);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Return array\r\n\t\treturn active;\r\n\t}\r\n\r\n\tgetActivePopup() {\r\n\t\t// Create array for holding active layers\r\n\t\tthis.activePopup = undefined;\r\n\t\tconst thatState = this.mapContext;\r\n\t\tif (this.activePopup === undefined) {\r\n\t\t\t// Iterate all layers in control\r\n\t\t\tthatState.map.eachLayer((obj) => {\r\n\t\t\t\t// Check if it's an overlay and added to the map\r\n\t\t\t\tif (obj.options.pane === 'markerPane') {\r\n\t\t\t\t\t// Verificação adicionada, dava erro a mover mapa\r\n\t\t\t\t\tif (obj.getPopup() !== undefined) {\r\n\t\t\t\t\t\tif (obj.getPopup().isOpen()) {\r\n\t\t\t\t\t\t\t// Push layer to active array\r\n\t\t\t\t\t\t\tthis.activePopup = obj.options.title;\r\n\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// Return array\r\n\t\treturn this.activePopup;\r\n\t}\r\n\r\n\tAddLegend(legendElements, title) {\r\n\t\tconst thatState = this.mapContext;\r\n\t\tif (thatState.legend instanceof L.Control) { thatState.map.removeControl(thatState.legend); }\r\n\r\n\t\tconst legend = L.control({ id: 'legend', position: 'bottomright' });\r\n\r\n\t\tlegend.onAdd = (map) => {\r\n\t\t\tconst div = L.DomUtil.create('div', 'leaflet-info leaflet-legend');\r\n\t\t\tdiv.innerHTML += `${title}:
`;\r\n\t\t\t// loop through our density intervals and generate a label with a colored square for each interval\r\n\t\t\tfor (let i = 0; i < legendElements.length; i++) {\r\n\t\t\t\tdiv.innerHTML += `${legendElements[i].legendValue}
`;\r\n\t\t\t}\r\n\r\n\t\t\treturn div;\r\n\t\t};\r\n\r\n\t\tif (!_.isEmpty(legendElements)) {\r\n\t\t\tthatState.legend = legend;\r\n\t\t\tlegend.addTo(thatState.map);\r\n\t\t}\r\n\t}\r\n\r\n\tintToRGB(i) {\r\n\t\tconst c = (i && 0x00FFFFFF)\r\n\t\t\t.toString(16)\r\n\t\t\t.toUpperCase();\r\n\r\n\t\treturn '#fff000'.substring(0, 7 - c.length) + c;\r\n\t}\r\n\r\n\tinvertColor(hex) {\r\n\t\tlet _hex = hex;\r\n\t\tif (_hex.indexOf('#') === 0) {\r\n\t\t\t_hex = hex.slice(1);\r\n\t\t}\r\n\t\t// convert 3-digit hex to 6-digits.\r\n\t\tif (_hex.length === 3) {\r\n\t\t\t_hex = _hex[0] + _hex[0] + _hex[1] + _hex[1] + _hex[2] + _hex[2];\r\n\t\t}\r\n\t\tif (_hex.length !== 6) {\r\n\t\t\tthrow new Error('Invalid HEX color.');\r\n\t\t}\r\n\t\t// invert color components\r\n\t\tconst r = (255 - parseInt(hex.slice(0, 2), 16)).toString(16);\r\n\t\tconst g = (255 - parseInt(hex.slice(2, 4), 16)).toString(16);\r\n\t\tconst b = (255 - parseInt(hex.slice(4, 6), 16)).toString(16);\r\n\t\t// pad each with zeros and return\r\n\t\treturn `#${this.padZero(r)}${this.padZero(g)}${this.padZero(b)}`;\r\n\t}\r\n\r\n\tpadZero(str, len) {\r\n\t\tconst _len = len || 2;\r\n\t\tconst zeros = new Array(_len).join('0');\r\n\t\treturn (zeros + str).slice(-_len);\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { id, height } = this.props;\r\n\r\n\t\treturn
;\r\n\t}\r\n}\r\n\r\nMap.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\tscale: PropTypes.bool.isRequired,\r\n\tmapUpdated: PropTypes.string,\r\n\tmaps: PropTypes.array,\r\n\tzoomToUpdate: PropTypes.number,\r\n\tonUpdateCoordinates: PropTypes.func,\r\n\tonAddMap: PropTypes.func,\r\n\tlat: PropTypes.number,\r\n\tlon: PropTypes.number,\r\n\tzoom: PropTypes.number,\r\n\theight: PropTypes.string\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n\tlat: state.mapReducer.lat,\r\n\tlon: state.mapReducer.lon,\r\n\tzoom: state.mapReducer.zoom,\r\n\tmapUpdated: state.mapReducer.mapUpdated,\r\n\tmaps: state.mapReducer.maps,\r\n\tzoomToUpdate: state.mapReducer.zoomToUpdate\r\n\t// topologyData: { \"2G\": [], \"3G\": [], \"4G\": [] }\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => bindActionCreators(MapActions, dispatch);\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Map);\r\n// export default Map;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/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} from '@material-ui/core';\r\nimport { ToggleButton, ToggleButtonGroup } from '@material-ui/lab';\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport DeleteIcon from '@material-ui/icons/DeleteOutlined';\r\nimport AddIcon from '@material-ui/icons/Add';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tdrawer: {\r\n\t\twidth: 420,\r\n\t\tmaxWidth: '100%',\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(2, 1),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tbuttonIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 3),\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tcontentSection: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tcontentSectionHeader: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tcursor: 'pointer',\r\n\t},\r\n\tcontentSectionContent: {},\r\n\tformGroup: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tfieldGroup: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tfield: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: 0,\r\n\t},\r\n\tflexGrow: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\taddButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\ttags: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tminAmount: {\r\n\t\tmarginRight: theme.spacing(3),\r\n\t},\r\n\tmaxAmount: {\r\n\t\tmarginLeft: theme.spacing(3),\r\n\t},\r\n\tradioGroup: {},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginTop: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst FiltersDrawer = (props) => {\r\n\tconst { open, onClose, onFilter, className, children, filterDisabled, onClear, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{children}\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{onClear && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tApply filters\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nFiltersDrawer.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\tonFilter: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\tchildren: PropTypes.object,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func\r\n};\r\n\r\nexport default FiltersDrawer;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ChartJs from 'chart.js';\r\n\r\nconst propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\ttype: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\tdata: PropTypes.array,\r\n\tdataLabels: PropTypes.array,\r\n\tlegendPosition: PropTypes.string,\r\n\toptions: PropTypes.object,\r\n\tcanvasHeight: PropTypes.number,\r\n\tcanvasWidth: PropTypes.number,\r\n};\r\n\r\nclass Chart extends Component {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis._chart = null;\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._createChart();\r\n\t}\r\n\r\n\tcomponentDidUpdate() {\r\n\t\tthis._updateChart();\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this._chart) {\r\n\t\t\tthis._chart.destroy();\r\n\t\t}\r\n\t}\r\n\r\n\t_getChartOptions = () => {\r\n\t\tconst { type, title, data, dataLabels, legendPosition, options } = this.props;\r\n\t\treturn {\r\n\t\t\ttype: type || 'line',\r\n\t\t\tdata: {\r\n\t\t\t\tdatasets: data,\r\n\t\t\t\tlabels: dataLabels,\r\n\t\t\t},\r\n\t\t\toptions: {\r\n\t\t\t\telements: {\r\n\t\t\t\t\tline: {\r\n\t\t\t\t\t\ttension: 0\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresponsive: true,\r\n\t\t\t\tlegend: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tposition: legendPosition || 'bottom',\r\n\t\t\t\t},\r\n\t\t\t\ttitle: {\r\n\t\t\t\t\tdisplay: !!title,\r\n\t\t\t\t\ttext: title || ''\r\n\t\t\t\t},\r\n\t\t\t\tscales: {\r\n\t\t\t\t\tyAxes: [{\r\n\t\t\t\t\t\tticks: {\r\n\t\t\t\t\t\t\tcallback: (value, index, values) => this._getScaleValue(value)\r\n\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...options\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\t_getScaleValue = (value) => {\r\n\t\tlet i = 0;\r\n\t\tconst sufixes = ['', 'K', 'M', 'B'];\r\n\t\tlet newValue = value;\r\n\r\n\t\twhile (newValue >= 1000) {\r\n\t\t\tnewValue = parseFloat(newValue / 1000, 10);\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\tconst decimal = String(newValue).indexOf('.') > -1 ? String(newValue).indexOf('.') : null;\r\n\t\tconst difference = decimal !== null ? String(newValue).length - decimal : null;\r\n\t\tconst finalValue = difference !== null && difference > 4 ? newValue.toFixed(4) : newValue;\r\n\t\treturn `${finalValue} ${sufixes[i]}`;\r\n\t}\r\n\r\n\t_createChart = () => {\r\n\t\tconst { id } = this.props;\r\n\r\n\t\tconst elem = document.getElementById(id);\r\n\t\tif (elem) {\r\n\t\t\tthis._chart = new ChartJs(elem, this._getChartOptions());\r\n\t\t}\r\n\t}\r\n\r\n\t_updateChart() {\r\n\t\tconst { type, data, options } = this._getChartOptions();\r\n\t\tthis._chart.type = type;\r\n\t\tthis._chart.data = data;\r\n\t\tthis._chart.options = options;\r\n\r\n\t\tthis._chart.update();\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { id, canvasHeight = null, canvasWidth = null } = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nChart.propTypes = propTypes;\r\n\r\nexport default Chart;\r\n","import React, { useState } from 'react';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport { Button, Grid, Box } from '@material-ui/core';\r\nimport ZoomInIcon from '@material-ui/icons/ZoomIn';\r\nimport ZoomOutIcon from '@material-ui/icons/ZoomOut';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\r\nimport AspectRatioIcon from '@material-ui/icons/AspectRatio';\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nexport default function PdfModalForm(props) {\r\n\tconst [numPages, setNumPages] = useState(null);\r\n\tconst [pageNumber, setPageNumber] = useState(1); // setting 1 to show fisrt page\r\n\tconst [scale, setScale] = useState(1.5);\r\n\tconst [zoomOutLimit, setZoomOutLimit] = useState(false);\r\n\tconst [zoomInLimit, setZoomInLimit] = useState(false);\r\n\r\n\tfunction onDocumentLoadSuccess({ numPages }) {\r\n\t\tsetNumPages(numPages);\r\n\t\tsetPageNumber(1);\r\n\t}\r\n\r\n\tfunction changePage(offset) {\r\n\t\tsetPageNumber(prevPageNumber => prevPageNumber + offset);\r\n\t}\r\n\r\n\tfunction previousPage() {\r\n\t\tchangePage(-1);\r\n\t}\r\n\r\n\tfunction nextPage() {\r\n\t\tchangePage(1);\r\n\t}\r\n\r\n\tfunction _zoomOut() {\r\n\t\tif (scale <= 0.8) {\r\n\t\t\tsetZoomOutLimit(true);\r\n\t\t} else {\r\n\t\t\tsetScale(scale - 0.1);\r\n\t\t\tsetZoomInLimit(false);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction _zoomIn() {\r\n\t\tif (scale >= 4) {\r\n\t\t\tsetZoomInLimit(true);\r\n\t\t} else {\r\n\t\t\tsetScale(scale + 0.1);\r\n\t\t\tsetZoomOutLimit(false);\r\n\t\t}\r\n\t}\r\n\r\n\tconst { pdf } = props;\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\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t= numPages}\r\n\t\t\t\t\t\t\tonClick={nextPage}\r\n\t\t\t\t\t\t\tvariant=\"contained\"\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\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\tPage\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{pageNumber || (numPages ? 1 : '--')}\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\tof\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{numPages || '--'}\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= numPages}\r\n\t\t\t\t\tonClick={nextPage}\r\n\t\t\t\t\tvariant=\"contained\"\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","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PdfModalForm from './PdfModalForm';\r\n\r\nimport ModalDialog from '../../ModalDialog/ModalDialog';\r\n\r\nconst PdfModal = (props) => {\r\n\tconst { author, open, onClose, onApply, className, pdf, filename, ...rest } = props;\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\nPdfModal.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\tpdf: PropTypes.string,\r\n\tfilename: PropTypes.string\r\n};\r\n\r\nexport default PdfModal;\r\n","import React, { useState } from 'react';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport { Button, Grid, Box } from '@material-ui/core';\r\nimport ZoomInIcon from '@material-ui/icons/ZoomIn';\r\nimport ZoomOutIcon from '@material-ui/icons/ZoomOut';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\r\nimport AspectRatioIcon from '@material-ui/icons/AspectRatio';\r\nimport PdfModal from './Components/PdfModal';\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nexport default function SinglePage(props) {\r\n\tconst [numPages, setNumPages] = useState(null);\r\n\tconst [pageNumber, setPageNumber] = useState(1); // setting 1 to show fisrt page\r\n\tconst [scale, setScale] = useState(0.9);\r\n\tconst [zoomOutLimit, setZoomOutLimit] = useState(false);\r\n\tconst [zoomInLimit, setZoomInLimit] = useState(false);\r\n\tconst [PdfModalVisibility, setPdfModalVisibility] = useState(false);\r\n\r\n\tfunction onDocumentLoadSuccess({ numPages }) {\r\n\t\tsetNumPages(numPages);\r\n\t\tsetPageNumber(1);\r\n\t}\r\n\r\n\tfunction changePage(offset) {\r\n\t\tsetPageNumber(prevPageNumber => prevPageNumber + offset);\r\n\t}\r\n\r\n\tfunction previousPage() {\r\n\t\tchangePage(-1);\r\n\t}\r\n\r\n\tfunction nextPage() {\r\n\t\tchangePage(1);\r\n\t}\r\n\r\n\tfunction _zoomOut() {\r\n\t\tif (scale <= 0.7) {\r\n\t\t\tsetZoomOutLimit(true);\r\n\t\t} else {\r\n\t\t\tsetScale(scale - 0.1);\r\n\t\t\tsetZoomInLimit(false);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction _zoomIn() {\r\n\t\tif (scale >= 4) {\r\n\t\t\tsetZoomInLimit(true);\r\n\t\t} else {\r\n\t\t\tsetScale(scale + 0.1);\r\n\t\t\tsetZoomOutLimit(false);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction _expandPdf() {\r\n\t\tsetPdfModalVisibility(true);\r\n\t}\r\n\r\n\tfunction _cLoseExpandPdf() {\r\n\t\tsetPdfModalVisibility(false);\r\n\t}\r\n\r\n\tconst { pdf, filename } = props;\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\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t= numPages}\r\n\t\t\t\t\t\t\tonClick={nextPage}\r\n\t\t\t\t\t\t\tvariant=\"contained\"\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\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 */}\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\tPage\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{pageNumber || (numPages ? 1 : '--')}\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\tof\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t{numPages || '--'}\r\n\t\t\t\t

\r\n\t\t\t\t{/* \r\n\t\t\t\t= numPages}\r\n\t\t\t\t\tonClick={nextPage}\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{PdfModalVisibility && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nexport default function AllPages(props) {\r\n\tconst [numPages, setNumPages] = useState(null);\r\n\r\n\tfunction onDocumentLoadSuccess({ numPages }) {\r\n\t\tsetNumPages(numPages);\r\n\t}\r\n\r\n\tconst { pdf } = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{Array.from(new Array(numPages), (el, index) => (\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 PropTypes from 'prop-types'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Typography, colors } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexGrow: 0,\r\n flexShrink: 0,\r\n borderRadius: theme.shape.borderRadius,\r\n lineHeight: '10px',\r\n fontSize: '10px',\r\n height: 20,\r\n minWidth: 20,\r\n whiteSpace: 'nowrap',\r\n padding: theme.spacing(0.5, 1),\r\n },\r\n rounded: {\r\n borderRadius: 10,\r\n padding: theme.spacing(0.5),\r\n },\r\n}))\r\n\r\nconst Label = (props) => {\r\n const { className, variant, color, shape, children, style, ...rest } = props\r\n\r\n const classes = useStyles()\r\n\r\n const rootClassName = clsx(\r\n {\r\n [classes.root]: true,\r\n [classes.rounded]: shape === 'rounded',\r\n },\r\n className\r\n )\r\n\r\n const finalStyle = { ...style }\r\n\r\n if (variant === 'contained') {\r\n finalStyle.backgroundColor = color\r\n finalStyle.color = '#FFF'\r\n } else {\r\n finalStyle.border = `1px solid ${color}`\r\n finalStyle.color = color\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nLabel.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n color: PropTypes.string,\r\n shape: PropTypes.oneOf(['square', 'rounded']),\r\n style: PropTypes.object,\r\n variant: PropTypes.oneOf(['contained', 'outlined']),\r\n}\r\n\r\nLabel.defaultProps = {\r\n style: {},\r\n color: colors.grey[600],\r\n variant: 'contained',\r\n shape: 'square',\r\n}\r\n\r\nexport default Label\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\n\r\nconst styles = theme => ({\r\n\tformControl: {\r\n\t\twidth: '100%',\r\n\t},\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, classes, isMultiSelect = false, customRenderValue, formControlStyle, ...rest } = props;\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\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 withStyles(styles)(SelectField);\r\n","const config = {\r\n\tAPI_URL: process.env.REACT_APP_API_URL,\r\n\tTOKEN_KEY: process.env.REACT_APP_TOKEN_KEY,\r\n};\r\n\r\nexport default config;\r\n","import _ from 'underscore';\r\nimport axios from 'axios';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport { SetLoading, RedirectToError } from 'actions/sessionActions';\r\n\r\nexport const interceptor = (store) => {\r\n\t// Add a request interceptor\r\n\taxios.interceptors.request.use((configuration) => {\r\n\t\t// Do something before request is sent\r\n\t\tif (!configuration.headers.Authorization) {\r\n\t\t\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\t\t\tif (token) {\r\n\t\t\t\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\tmessage: error.response ? (_.isString(error.response.data) ? error.response.data : 'Something went wrong!') : 'Network error!',\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","export { default } from './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 '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/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 from 'react';\r\n\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nconst DialogTitle = withStyles(theme => ({\r\n\troot: {\r\n\t\tborderBottom: `1px solid ${theme.palette.divider}`,\r\n margin: 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 '@material-ui/core/styles';\r\nimport MuiDialogContent from '@material-ui/core/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;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog, DialogActions, Typography, Button } from '@material-ui/core';\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","import { useContext } from 'react'\r\nimport { __RouterContext } from 'react-router'\r\n\r\nexport default () => useContext(__RouterContext)\r\n","export default (bytes, decimals = 2) => {\r\n if (bytes === 0) return '0 Bytes'\r\n\r\n const k = 1024\r\n const dm = decimals < 0 ? 0 : decimals\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(k))\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]\r\n}\r\n","import axios from 'axios'\r\n\r\nconst instance = axios.create()\r\n\r\nexport default instance\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\r\n\r\nclass DataTable extends Component {\r\n\tgetMuiTheme = (outerTheme) => {\r\n\t\tconst {\r\n\t\t\ttableBodyCellMaxWidth,\r\n\t\t\tactionColumnWidth\r\n\t\t} = this.props;\r\n\r\n\t\treturn createMuiTheme({\r\n\t\t\t...outerTheme,\r\n\t\t\toverrides: {\r\n\t\t\t\tMUIDataTable: {\r\n\r\n\t\t\t\t},\r\n\t\t\t\tMUIDataTableHead: {\r\n\t\t\t\t\thead: {\r\n\t\t\t\t\t\tbackgroundColor: '#FF0000'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMUIDataTableHeadCell: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\t// '&:nth-child(2)': {\r\n\t\t\t\t\t\t// \t width: 'auto',\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMUIDataTableHeadRow: {},\r\n\t\t\t\tMUIDataTableBody: {\r\n\t\t\t\t},\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\tMUIDataTableBodyCell: {\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\tpadding: 3\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\t_onRowSelection = (currentRowsSelected, allRowsSelected, rowsSelected) => {\r\n\t\tconst { onRowSelection, data } = this.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\trender() {\r\n\t\tconst {\r\n\t\t\tid,\r\n\t\t\ttitle = '',\r\n\t\t\tdata = [],\r\n\t\t\tcolumns = [],\r\n\t\t\toptions,\r\n\t\t\t// pagination = true,\r\n\t\t\tshowDownload = false, // show download icon button\r\n\t\t\tshowPrint = false, // show print icon button\r\n\t\t\tselectableRows = 'none', // multiple, single, none\r\n\t\t\trowsPerPage = 20, // number of rows displayed by page\r\n\t\t\tfilterType = 'multiselect', // filter type can be multiselect, texfield, etc.,\r\n\t\t\ttableBodyMaxHeight = '40em',\r\n\t\t\t...rest\r\n\t\t} = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t ({ ...this.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","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 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 AxiosRequest from 'utils/AxiosRequest';\r\nimport config from '../configuration/configuration.js';\r\n\r\nexport const SESSION_LOGIN = 'SESSION_LOGIN';\r\nexport const SESSION_LOGOUT = 'SESSION_LOGOUT';\r\nexport const SET_NOTIFICATIONS = 'SET_NOTIFICATIONS';\r\nexport const USER_INFO = 'USER_INFO';\r\nexport const SET_LOADING = 'SET_LOADING';\r\nexport const REDIRECT_TO_ERROR = 'REDIRECT_TO_ERROR';\r\n\r\nconst onSetNotifications = (value) => ({\r\n\ttype: SET_NOTIFICATIONS,\r\n\tnotifications: value\r\n});\r\n\r\nconst onLogin = () => ({\r\n\ttype: SESSION_LOGIN,\r\n});\r\n\r\nconst onGetUserInfo = (value) => ({\r\n\ttype: USER_INFO,\r\n\tuser: value\r\n});\r\n\r\nconst onSetLoading = (value) => ({\r\n\ttype: SET_LOADING,\r\n\tisLoading: value\r\n});\r\n\r\nconst onRedirectToError = (value) => ({\r\n\ttype: REDIRECT_TO_ERROR,\r\n\tlink: value\r\n});\r\n\r\nexport const getUserInfo = (token) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\turl: `${config.API_URL}account/GetUserInfo`,\r\n\t\t\t\theaders: { Authorization: `Bearer ${token}` }\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(onGetUserInfo(response.data));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const login = (email, password) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/login`,\r\n\t\t\tdata: { email, password }\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onRedirectToError());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t\tdispatch(onLogin());\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const logout = () => (dispatch) => {\r\n\tlocalStorage.removeItem(config.TOKEN_KEY);\r\n\tdispatch({\r\n\t\ttype: SESSION_LOGOUT,\r\n\t});\r\n};\r\n\r\nexport const RedirectToError = (link) => (dispatch) => {\r\n\tdispatch(onRedirectToError(link));\r\n};\r\n\r\nexport const recover = (email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/recover`,\r\n\t\t\tdata: {\r\n\t\t\t\temail\r\n\t\t\t}\r\n\t\t}).then(response => response);\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const CompleteRegistration = (password, rpassword, token, email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/completeRegistration`,\r\n\t\t\tdata: {\r\n\t\t\t\tpassword,\r\n\t\t\t\trpassword,\r\n\t\t\t\ttoken,\r\n\t\t\t\tuser: email\r\n\t\t\t}\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onLogin());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const ResetPassword = (password, rpassword, token, email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/recoverconfirmation`,\r\n\t\t\tdata: {\r\n\t\t\t\tpassword,\r\n\t\t\t\trpassword,\r\n\t\t\t\ttoken,\r\n\t\t\t\tuser: email\r\n\t\t\t}\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onLogin());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const FetchNotifications = () => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: `${config.API_URL}Notification/Notifications`,\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(onSetNotifications(response.data));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const NotificationMarkAsRead = (id) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'PUT',\r\n\t\t\t\turl: `${config.API_URL}Notification/MarkAsRead/${id}`,\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(FetchNotifications());\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const SetLoading = (isLoading) => dispatch => {\r\n\tdispatch(onSetLoading(isLoading));\r\n};\r\n\r\nexport const UploadFile = (file) => {\r\n\tconst formData = new FormData();\r\n\tformData.append('file', file);\r\n\treturn AxiosRequest({\r\n\t\tmethod: 'POST',\r\n\t\turl: `${config.API_URL}File/Upload`,\r\n\t\tdata: formData,\r\n\t\theaders: {\r\n\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst ShowFile = (response) => {\r\n\tconst blob = response.data;\r\n\tconst filename = decodeURIComponent(response.headers['content-disposition'].split('\\'')[2]);\r\n\t// It is necessary to create a new blob object with mime-type\r\n\t// explicitly set otherwise only Chrome works like it should\r\n\tconst newBlob = new Blob([blob], { type: 'application/force-download' });\r\n\r\n\t// IE doesn't allow using a blob object directly as link href\r\n\t// instead it is necessary to use msSaveOrOpenBlob\r\n\tif (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n\t\twindow.navigator.msSaveOrOpenBlob(newBlob);\r\n\t\treturn;\r\n\t}\r\n\r\n\t// For other browsers:\r\n\t// Create a link pointing to the ObjectURL containing the blob.\r\n\tconst data = window.URL.createObjectURL(newBlob);\r\n\tconst link = document.createElement('a');\r\n\tlink.href = data;\r\n\tlink.download = filename;\r\n\tdocument.body.appendChild(link);\r\n\tlink.click();\r\n\tsetTimeout(() => {\r\n\t\t// For Firefox it is necessary to delay revoking the ObjectURL\r\n\t\tdocument.body.removeChild(link);\r\n\t\twindow.URL.revokeObjectURL(data);\r\n\t}, 100);\r\n};\r\n\r\nexport const DownloadFile = (filePath) => async dispatch => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: `${config.API_URL}File/Download?file=${filePath}`,\r\n\t\t\t\tresponseType: 'blob'\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tShowFile(response);\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n","import { colors } from '@material-ui/core'\r\n\r\nconst buildGradient = (start, end) =>\r\n `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 grey,\r\n blue,\r\n indigo,\r\n green,\r\n orange,\r\n red,\r\n}\r\n"],"sourceRoot":""}