{"version":3,"sources":["actions/notifierActions.js","actions/sessionActions.js","components/Map/SemiCircle.js","theme/palette.js","theme/typography.js","theme/overrides/MuiChip.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiInputBase.js","theme/overrides/MuiLinearProgress.js","theme/overrides/MuiListItemIcon.js","theme/overrides/MuiTableHead.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiCardActions.js","theme/overrides/MuiCardContent.js","theme/overrides/MuiCardHeader.js","theme/overrides/MuiOutlinedInput.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableRow.js","theme/overrides/MuiToggleButton.js","theme/overrides/MuiTypography.js","theme/index.js","reducers/sessionReducer.js","reducers/notifierReducer.js","views/Management/requests/UsersRequests.js","views/Management/actions/UsersActions.js","views/Management/reducers/UsersReducer.js","views/Management/requests/OperatorsRequests.js","views/Management/actions/OperatorsActions.js","views/Management/reducers/OperatorsReducer.js","views/Management/requests/SettingsRequests.js","views/Management/actions/SettingsActions.js","views/Management/reducers/SettingsReducer.js","views/Dashboard/requests/DashboardInspectRequests.js","views/Dashboard/actions/DashboardInspectActions.js","views/Dashboard/reducers/DashboardInspectReducer.js","components/Map/reducers/MapReducer.js","views/DualMap/requests/DualMapRequests.js","views/DualMap/actions/DualMapActions.js","views/DualMap/reducers/DualMapReducer.js","views/FailuresTracker/requests/VoiceRequest.js","views/FailuresTracker/actions/VoiceActions.js","views/FailuresTracker/reducers/VoiceReducer.js","views/FailuresTracker/requests/PacketRequest.js","views/FailuresTracker/actions/PacketActions.js","views/FailuresTracker/reducers/PacketReducer.js","views/FailuresTracker/requests/FailuresRequest.js","views/FailuresTracker/actions/FailuresActions.js","views/FailuresTracker/reducers/FailuresReducer.js","views/SiteOptimizationsTracker/requests/SiteOptRequests.js","views/SiteOptimizationsTracker/actions/SiteOptActions.js","views/SiteOptimizationsTracker/reducers/SiteOptReducer.js","views/RepositoryPdf/requests/RepositoryPdfRequests.js","views/RepositoryPdf/actions/RepositoryPdfActions.js","views/RepositoryPdf/reducers/RepositoryPdfReducer.js","views/RepositoryExcel/requests/RepositoryExcelRequests.js","views/RepositoryExcel/actions/RepositoryExcelActions.js","views/RepositoryExcel/reducers/RepositoryExcelReducer.js","views/DriveTestUpload/requests/DriveTestUploadRequests.js","views/DriveTestUpload/actions/DriveTestUploadActions.js","views/DriveTestUpload/reducers/DriveTestUploadReducer.js","reducers/index.js","layouts/Auth/components/Topbar/Topbar.js","layouts/Auth/Auth.js","layouts/Error/Error.js","components/NotificationHub/NotificationHub.js","layouts/Dashboard/components/NavBar/navigationConfig.js","layouts/Dashboard/components/NavBar/NavBar.js","layouts/Dashboard/components/TopBar/TopBar.js","utils/axios.js","layouts/Dashboard/Dashboard.js","layouts/Dashboard/components/ChatBar/ChatBar.js","views/Home/Home.js","views/Management/components/Users/components/Card/Card.js","views/Management/components/Users/components/UsersDataTable/UsersDataTable.js","views/Management/components/Users/components/AddEditUserDialog/components/AddEditUserForm/AddEditUserForm.js","views/Management/components/Users/components/AddEditUserDialog/AddEditUserDialog.js","views/Management/components/Users/components/AddPendingUsersDialog/components/AddPendingUserForm/AddPendingUsersForm.js","views/Management/components/Users/components/AddPendingUsersDialog/AddPendingUsersDialog.js","views/Management/components/Users/components/DeleteUserDialog/DeleteUserDialog.js","views/Management/components/Users/Users.js","views/Management/components/Operators/components/OperatorCard/OperatorCard.js","views/Management/components/Operators/components/OperatorsList/OperatorsList.js","views/Management/components/Operators/components/AddOperatorDialog/components/AddOperatorForm/AddOperatorForm.js","views/Management/components/Operators/components/AddOperatorDialog/AddOperatorDialog.js","views/Management/components/Operators/Operators.js","views/Management/components/OperatorDetails/components/Overview/components/Details/Details.js","views/Management/components/OperatorDetails/components/Overview/components/Picture/Picture.js","views/Management/components/OperatorDetails/components/Overview/Overview.js","views/Management/components/OperatorDetails/components/Projects/components/ProjectsDataTable/components/ActionsButton/ActionsButton.js","views/Management/components/OperatorDetails/components/Projects/components/ProjectsDataTable/ProjectsDataTable.js","views/Management/components/OperatorDetails/components/Projects/components/AddProjectDialog/components/AddProjectForm/AddProjectForm.js","views/Management/components/OperatorDetails/components/Projects/components/AddProjectDialog/AddProjectDialog.js","views/Management/components/OperatorDetails/components/Projects/Projects.js","views/Management/components/OperatorDetails/components/Users/components/UsersDataTable/UsersDataTable.js","views/Management/components/OperatorDetails/components/Users/Users.js","views/Management/components/OperatorDetails/OperatorDetails.js","views/Management/components/Settings/components/General/components/GeneralForm/GeneralForm.js","views/Management/components/Settings/components/General/General.js","views/Management/components/Settings/components/Notifications/Notifications.js","views/Management/components/Settings/components/Security/Security.js","views/Management/components/Settings/Settings.js","views/Management/components/Settings/components/Subscription/Subscription.js","views/Dashboard/components/Inspect/components/OptionsButton/OptionsButton.js","views/Dashboard/components/Inspect/DashboardInspect.js","views/FailuresTracker/components/components/Voice/components/VoiceDataTable.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/components/VoiceMocMtcDataTable.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/components/VoiceComments.js","components/DataTable/DataTableRaw.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3DataTables.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3Charts.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3Map.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/components/Layer3Dialog/Layer3Form.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/components/Layer3/Layer3Dialog.js","views/FailuresTracker/components/components/FailuresHelixDialog.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/components/VoiceEditFailureDialogForm.js","views/FailuresTracker/components/components/Voice/components/VoiceEditFailureDialog/VoiceEditFailureDialog.js","views/FailuresTracker/components/components/Voice/Voice.js","views/FailuresTracker/components/components/Packet/components/PacketDataTable.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/components/components/PacketMocMtcDataTable.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/components/components/PacketComments.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3DataTables.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3Charts.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/components/components/Layer3/components/Layer3Dialog/components/Layer3Map.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/components/components/Layer3/Layer3Dialog.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/components/PacketEditFailureDialogForm.js","views/FailuresTracker/components/components/Packet/components/PacketEditFailureDialog/PacketEditFailureDialog.js","views/FailuresTracker/components/components/Packet/Packet.js","views/FailuresTracker/components/components/FailuresTrackerOptionsForm.js","views/FailuresTracker/components/components/FailuresTrackerOptionsDialog.js","views/FailuresTracker/components/FailuresTracker.js","views/DualMap/components/components/CompareBox.js","views/DualMap/components/components/FiltersTop.js","views/DualMap/components/components/FiltersTopCompare.js","views/DualMap/components/components/FiltersSide.js","views/DualMap/components/components/FiltersSideCompare.js","views/DualMap/components/components/Components/DrivetestChart.js","views/DualMap/components/components/AdditionalInfo.js","views/DualMap/components/components/Components/Components/CarriersColorsDialogForm.js","views/DualMap/components/components/Components/CarriersColorsDialog.js","views/DualMap/components/components/Components/CarriersColorsPickerDialog.js","views/DualMap/components/components/Components/CustomLayerDialog.js","views/DualMap/components/components/XcapToolFilesUploadDialog.js","views/DualMap/components/DualMap.js","views/SiteOptimizationsTracker/components/components/SiteOptDatatable.js","views/SiteOptimizationsTracker/components/components/SiteOptDialog/components/SiteOptDialogForm.js","views/SiteOptimizationsTracker/components/components/SiteOptDialog/SiteOptDialog.js","views/SiteOptimizationsTracker/components/components/SiteOptDialog/SiteOptDeleteDialog.js","views/SiteOptimizationsTracker/components/components/SiteOptDialog/components/components/SiteOptAddFileDialog.js","views/SiteOptimizationsTracker/components/components/SiteOptDialog/components/components/SiteOptDeleteFileDialog.js","views/SiteOptimizationsTracker/components/SiteOptTracker.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/DriveTestUpload/components/components/UploadSelectedFilesTable.js","views/DriveTestUpload/components/components/KpisUploadDialog.js","views/DriveTestUpload/components/components/KpiUploadProcessTable.js","views/DriveTestUpload/components/DriveTestUpload.js","routes.js","components/Notifier/Notifier.js","mixins/chartjs.js","mixins/moment.js","mixins/validate.js","utils/mock.js","mock/accountMock.js","mock/calendarMock.js","mock/chatMock.js","mock/customerMock.js","mock/mailMock.js","mock/projectMock.js","mock/socialFeedMock.js","mock/userMock.js","mock/invoiceMock.js","mock/kanbanMock.js","mock/taskMock.js","mock/orderMock.js","mock/dashboardMock.js","App.js","store/configureStore.js","serviceWorker.js","index.js","components/SelectField/SelectField.js","utils/getInitials.js","components/AddPost/AddPost.js","components/Alert/Alert.js","components/CodeBlock/CodeBlock.js","components/CookiesNotification/CookiesNotification.js","utils/bytesToSize.js","components/FilesDropzone/FilesDropzone.js","components/FilesDropzoneMix/FilesDropzoneMix.js","components/GenericMoreButton/GenericMoreButton.js","components/GoogleAnalytics/GoogleAnalytics.js","components/Markdown/Markdown.js","components/Navigation/components/NavigationListItem/NavigationListItem.js","components/Navigation/Navigation.js","components/NotificationsPopover/components/NotificationList/NotificationList.js","components/NotificationsPopover/components/EmptyList/EmptyList.js","components/NotificationsPopover/NotificationsPopover.js","components/Page/Page.js","components/Paginate/Paginate.js","components/PostCard/components/CommentBubble/CommentBubble.js","components/PostCard/components/CommentForm/CommentForm.js","components/PostCard/components/Reactions/Reactions.js","components/PostCard/PostCard.js","components/PricingModal/PricingModal.js","components/ProjectCard/ProjectCard.js","components/ReviewStars/ReviewStars.js","components/RichEditor/components/EditorToolbar/EditorToolbar.js","components/RichEditor/utils/block.js","components/ScrollReset/ScrollReset.js","components/RichEditor/RichEditor.js","components/SearchBar/components/Filter/Filter.js","components/SearchBar/components/Search/Search.js","components/SearchBar/SearchBar.js","components/StackAvatars/StackAvatars.js","components/StatusBullet/StatusBullet.js","components/TableEditBar/TableEditBar.js","components/Loading/Loading.js","components/Header/Header.js","components/DatePicker/Calendar.js","components/FilePicker/FilePicker.js","components/PowerBIDashboard/PowerBIDashboard.js","components/FiltersDrawer/FiltersDrawer.js","components/Map/Map.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","utils/gradients.js","configuration/configuration.js","components/Label/Label.js","utils/AxiosRequest.js","components/DatePicker/DatePicker.js","components/TableauDashboard/TableauDashboard.js","components/Label/index.js","components/Checkbox/Checkbox.js","components/ModalDialog/components/DialogTitle.js","components/ModalDialog/components/DialogContent.js","components/ModalDialog/ModalDialog.js","utils/useRouter.js","components/AuthGuard/AuthGuard.js","components/DataTable/DataTable.js","components/Map/actions/MapActions.js"],"names":["ENQUEUE_SNACKBAR","CLOSE_SNACKBAR","REMOVE_SNACKBAR","enqueueSnackbar","notification","key","options","type","Date","getTime","Math","random","closeSnackbar","dismissAll","removeSnackbar","SESSION_LOGIN","SESSION_LOGOUT","SET_NOTIFICATIONS","USER_INFO","SET_LOADING","REDIRECT_TO_ERROR","onLogin","onRedirectToError","value","link","getUserInfo","token","dispatch","a","AxiosRequest","method","url","config","API_URL","headers","Authorization","then","response","data","user","login","email","password","localStorage","setItem","TOKEN_KEY","Error","message","logout","removeItem","RedirectToError","recover","requestAccess","firstname","lastname","CompleteRegistration","rpassword","ResetPassword","FetchNotifications","hasLoading","notifications","NotificationMarkAsRead","id","SetLoading","isLoading","UploadFile","file","formData","FormData","append","UploadFiles","files","forEach","UploadMultipleFiles","size","ShowFile","blob","filename","decodeURIComponent","split","newBlob","Blob","window","navigator","msSaveOrOpenBlob","URL","createObjectURL","document","createElement","href","download","body","appendChild","click","setTimeout","removeChild","revokeObjectURL","DownloadFile","filePath","responseType","define","L","DEG_TO_RAD","PI","fixAngle","angle","rotated","p","r","add","point","cos","sin","multiplyBy","Point","prototype","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","c","sqrt","white","black","primary","contrastText","dark","colors","blue","main","light","secondary","A400","error","red","text","blueGrey","icon","background","default","paper","divider","grey","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","styleOverrides","root","backgroundColor","deletable","input","opacity","borderRadius","overflow","colorPrimary","minWidth","MuiButton","contained","boxShadow","MuiCardActions","padding","MuiCardContent","MuiCardHeader","MuiChip","MuiIconButton","MuiInputBase","MuiLinearProgress","MuiListItemIcon","MuiOutlinedInput","notchedOutline","borderColor","MuiPaper","elevation1","MuiTableHead","MuiTableCell","typography","borderBottom","MuiTableRow","MuiToggleButton","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","MuiTypography","gutterBottom","marginBottom","theme","createTheme","components","overrides","getItem","initialState","loggedIn","loadingCount","decoded","jwt","currentDate","exp","sessionReducer","state","action","actionTypes","role","defaultState","GetUsersRequest","params","DeletePendingUserRequest","userEmail","GetRolesRequest","GetOperatorProjectsRequest","operatorIds","GetUserRequest","userId","ResendConfirmationEmailRequest","DeactivateUserRequest","DeleteUserRequest","SET_FORM_STATE","SET_INITIAL_STATE","GET_USERS","GET_PENDING_USERS","GET_USERS_STATS","TOGGLE_ADD_EDIT_USER_DIALOG","TOGGLE_ADD_PENDING_USERS_DIALOG","TOGGLE_DELETE_USER_DIALOG","GET_ROLES","GET_OPERATORS","GET_OPERATOR_PROJECTS","GET_USER","SetFormState","formState","onSetFormState","SetInitialState","onSetInitialState","GetUsers","users","catch","variant","GetPendingUsers","pendingUsers","GetUsersStats","usersStats","ToggleAddEditUserDialog","openAddEditUserDialog","openAddEditUserDialogId","onToggleAddEditUserDialog","ToggleAddPendingUsersDialog","openAddPendingUsersDialog","onToggleAddPendingUsersDialog","ToggleDeleteUserDialog","openDeleteUserDialog","openDeleteUserDialogId","onToggleDeleteUserDialog","roles","operators","operatorProjects","isValid","values","touched","errors","usersReducer","GetOperatorRequest","operatorId","UpdateImageRequest","operator","DeleteProjectRequest","projectId","UpdateOperatorRequest","TOGGLE_ADD_OPERATOR_DIALOG","NAVIGATE_DETAILS","GET_OPERATOR","TOGGLE_ADD_PROJECT_DIALOG","GetOperators","ToggleAddOperatorDialog","openAddEditOperatorDialog","openAddOperatorDialog","NavigateDetails","detailsOperatorId","onNavigateDetails","GetOperator","UpdateImage","ToggleAddProjectDialog","openAddEditProjectDialog","openAddProjectDialog","operatorsReducer","GetOperatorsRequest","UpdateSettingsRequest","ChangePasswordRequest","settingsReducer","DashboardInspectRequest","dashboardId","DASHBOARD_INSPECT","dashboard","reportsReducer","lon","maps","mapUpdated","zoomToUpdate","AddNewMap","mapAlreadyExists","find","el","newAddMaps","slice","filter","push","coordinates","CenterLatitude","CenterLongitude","topology","twoG","threeG","fourG","legend","legendElements","title","updateEnd","UpdateCoordinates","newUpdateMaps","item","newCoordinates","UpdateTopology","newTopologyMaps","newTopology","UpdateLegend","newLegendMaps","newLegend","UpdatePopup","newMaps","control","activePopup","UpdateOverlays","activeLayers","MapReducer","GetFailuresFiltersRequest","GetFailuresPointsVoiceRequest","city","dates","logs","failureType","cfn1Level","GetFailuresPointsPacketRequest","GetDriveTestsCitiesRequest","userOperator","GetDriveTestsDrivesRequest","GetDriveTestsDatesRequest","drive","GetDriveTestsLogsRequest","GetDriveTestRequest","tech","kpi","GetUeRouteRequest","GetDriveTestScannerFrequenciesRequest","freq","GetDriveTestScannerCodesRequest","GetDriveTestScannerRequest","code","GetCrowdsourcingRequest","GetTopologyRequest","bands","GetScannerRouteRequest","GetSiteIdLocationRequest","siteId","SaveCarrierColorRequest","tableId","colorCode","UploadCustomLayerRequest","folder","GetCustomLayerRequest","RunXcapToolRequest","folderPath","RESET_FIELDS","GET_FAILURES_FILTERS","GET_FAILURES_VOICE","GET_FAILURES_PACKET","SET_SELECTED_DATES","SET_SELECTED_LOGS","GET_DRIVETESTS_CITIES","GET_DRIVETESTS_DRIVES","GET_DRIVETESTS_DATES","GET_DRIVETESTS_LOGS","GET_DRIVETEST","GET_DRIVETESTS_TECH_BAND","GET_UE_ROUTE","GET_DRIVETEST_SCANNER_FREQUENCIES_2G","GET_DRIVETEST_SCANNER_FREQUENCIES_3G","GET_DRIVETEST_SCANNER_FREQUENCIES_4G","GET_DRIVETEST_SCANNER_FREQUENCIES_5G","GET_DRIVETEST_SCANNER_CODES_2G","GET_DRIVETEST_SCANNER_CODES_3G","GET_DRIVETEST_SCANNER_CODES_4G","GET_DRIVETEST_SCANNER_CODES_5G","GET_DRIVETEST_SCANNER","GET_SCANNER_ROUTE","GET_CROWDSOURCING","GET_TOPOLOGY_2G","GET_TOPOLOGY_3G","GET_TOPOLOGY_4G","GET_TOPOLOGY_5G","GET_SITES_IDS","GET_SITE_ID_LOCATION","GET_CUSTOM_LAYER","GET_FAILURES_FILTERS_COMPARE","GET_FAILURES_VOICE_COMPARE","GET_FAILURES_PACKET_COMPARE","SET_SELECTED_DATES_COMPARE","GET_DRIVETESTS_CITIES_COMPARE","GET_DRIVETESTS_DRIVES_COMPARE","GET_DRIVETESTS_DATES_COMPARE","GET_DRIVETEST_COMPARE","GET_DRIVETEST_SCANNER_FREQUENCIES_2G_COMPARE","GET_DRIVETEST_SCANNER_FREQUENCIES_3G_COMPARE","GET_DRIVETEST_SCANNER_FREQUENCIES_4G_COMPARE","GET_DRIVETEST_SCANNER_FREQUENCIES_5G_COMPARE","GET_DRIVETEST_SCANNER_CODES_2G_COMPARE","GET_DRIVETEST_SCANNER_CODES_3G_COMPARE","GET_DRIVETEST_SCANNER_CODES_4G_COMPARE","GET_DRIVETEST_SCANNER_CODES_5G_COMPARE","GET_DRIVETEST_SCANNER_COMPARE","GET_SCANNER_ROUTE_COMPARE","GET_CROWDSOURCING_COMPARE","GET_TOPOLOGY_2G_COMPARE","GET_TOPOLOGY_3G_COMPARE","GET_TOPOLOGY_4G_COMPARE","GET_TOPOLOGY_5G_COMPARE","TOGGLE_FILTERS","CLEAR_FORM","TOGGLE_CARRIERS_COLORS_DIALOG","TOGGLE_CUSTOM_LAYER_DIALOG","GET_CARRIERS_COLORS","TOGGLE_CARRIERS_COLORS_PICKER_DIALOG","TOGGLE_XCAP_TOOL_DIALOG","onGetCustomLayer","customLayer","onToggleCustomLayerDialog","visible","GetFailuresPointsVoice","failuresVoice","GetFailuresPointsPacket","failuresPacket","GetDriveTestsDrives","drives","SetSelectedDates","selectedDates","SetSelectedLogs","selectedLogs","GetDriveTest","driveTest","GetDriveTestScannerCodes2g","driveTestScannerCodes2g","GetDriveTestScannerCodes3g","driveTestScannerCodes3g","GetDriveTestScannerCodes4g","driveTestScannerCodes4g","GetDriveTestScannerCodes5g","driveTestScannerCodes5g","GetDriveTestScanner","driveTestScanner","GetTopology2g","topology2gData","GetTopology3g","topology3gData","GetTopology4g","topology4gData","GetTopology5g","topology5gData","ToggleCarriersColorsDialog","onToggleCarriersColorsDialog","ToggleCustomLayerDialog","ToggleCarriersColorsPickerDialog","tableIdColorCode","currentColorCode","onToggleCarriersColorsPickerDialog","GetFailuresPointsVoiceCompare","failuresVoiceCompare","GetFailuresPointsPacketCompare","failuresPacketCompare","SetSelectedDatesCompare","selectedDatesCompare","GetDriveTestCompare","driveTestCompare","GetDriveTestScannerCodes2gCompare","driveTestScannerCodes2gCompare","GetDriveTestScannerCodes3gCompare","driveTestScannerCodes3gCompare","GetDriveTestScannerCodes4gCompare","driveTestScannerCodes4gCompare","GetDriveTestScannerCodes5gCompare","driveTestScannerCodes5gCompare","GetDriveTestScannerCompare","driveTestScannerCompare","GetCrowdsourcingCompare","crowdsourcingCompare","GetTopology2gCompare","topology2gDataCompare","GetTopology3gCompare","topology3gDataCompare","GetTopology4gCompare","topology4gDataCompare","GetTopology5gCompare","topology5gDataCompare","GetCarriersColors","carriersColors","UploadCustomLayer","ToggleXcapToolDialog","onToggleXcapToolDialog","RunXcapTool","failuresFilters","cities","driveTestScannerFrequencies2g","driveTestScannerFrequencies3g","driveTestScannerFrequencies4g","driveTestScannerFrequencies5g","crowdsourcing","topologyLabelsData","techBand","failuresFiltersCompare","drivesCompare","datesCompare","driveTestScannerFrequencies2gCompare","driveTestScannerFrequencies3gCompare","driveTestScannerFrequencies4gCompare","driveTestScannerFrequencies5gCompare","topologyLabelsDataCompare","techBandVoiceCompare","techBandPacketCompare","kpiFilesTree","openFilters","carriersColorsDialogVisibility","customLayerDialogVisibility","carriersColorsPickerDialogVisibility","xcapToolDialogVisibility","sitesIds","siteIdLocation","mapAutoZoom","mapCompare","mapFrameSize","mapSync","mapFilters","mapSize","selectedCity","selectedDrive","voiceActive","packetActive","failureTypeVoice","failureTypePacket","cfn1LevelVoice","cfn1LevelPacket","freq2g","freq3g","freq4g","freq5g","top2g","top3g","top4g","top5g","selectedCityCompare","selectedDriveCompare","voiceActiveCompare","packetActiveCompare","techBandVoiceActiveCompare","techBandPacketActiveCompare","failureTypeVoiceCompare","failureTypePacketCompare","cfn1LevelVoiceCompare","cfn1LevelPacketCompare","freq2gCompare","freq3gCompare","freq4gCompare","freq5gCompare","top2gCompare","top3gCompare","top4gCompare","top5gCompare","dualMapReducer","ueRoute","scannerRoute","topologyLabelsDto","citiesCompare","scannerRouteCompare","GetFailuresVoiceRequest","SetFailureVoiceValidInvalidRequest","GetFailureVoiceDetailsRequest","GetFailureVoiceCommentsRequest","SetFailureVoiceDetailsRequest","trackerVoiceDetailsDto","AddVoiceCommentRequest","comment","ExportFailuresVoiceRequest","GetVoiceLevelsRequest","level","GetLayer3Request","filenameMoc","filenameMtc","initialTimestamp","GetLayer3MessageMoRequest","date","side","GetLayer3MessageMtRequest","GetLayer3FailureRequest","GetLayer3DriveTestRequest","failureSide","eventTime","GetLayer3KpisRequest","TOGGLE_VOICE_EDIT_FAILURE_DIALOG","GET_FAILURE_VOICE_DETAILS","GET_FAILURE_VOICE_COMMENTS","EXPORT_FAILURES_VOICE","TOGGLE_LAYER_3_DIALOG","GET_VOICE_CFN_2_LEVELS","GET_VOICE_CFN_3_LEVELS","GET_LAYER_3","GET_LAYER_3_MESSAGE_MO","GET_LAYER_3_MESSAGE_MT","GET_LAYER_3_FAILURE","GET_LAYER_3_DRIVETEST","GET_LAYER_3_KPIS","onGetLayer3","layer3","ToggleOptionsFailuresTrackerDialog","onToggleOptionsFailuresTrackerDialog","GetFailuresVoice","failures","ToggleVoiceEditFailureDialog","onToggleVoiceEditFailureDialog","GetFailureVoiceDetails","failure","GetFailureVoiceComments","comments","GetVoiceCfn2Levels","voiceCfn2Levels","GetVoiceCfn3Levels","voiceCfn3Levels","ToggleLayer3Dialog","onToggleLayer3Dialog","GetLayer3","GetLayer3MessageMo","layer3MessageMo","GetLayer3MessageMt","layer3MessageMt","GetLayer3Failure","layer3Failure","GetLayer3DriveTest","layer3DriveTest","GetLayer3Kpis","layer3Kpis","voiceEditFailureDialogVisibility","failureSource","layer3Kpi","layer3Message","failuresVoiceFilePath","voiceReducer","layer3DialogVisibility","GetFailuresPacketRequest","SetFailurePacketValidInvalidRequest","GetFailurePacketDetailsRequest","GetFailurePacketCommentsRequest","SetFailurePacketDetailsRequest","trackerPacketDetailsDto","AddPacketCommentRequest","ExportFailuresPacketRequest","GetPacketLevelsRequest","TOGGLE_PACKET_EDIT_FAILURE_DIALOG","GET_FAILURE_PACKET_DETAILS","GET_FAILURE_PACKET_COMMENTS","EXPORT_FAILURES_PACKET","GET_PACKET_CFN_2_LEVELS","GET_PACKET_CFN_3_LEVELS","GetFailuresPacket","TogglePacketEditFailureDialog","onTogglePacketEditFailureDialog","GetFailurePacketDetails","GetFailurePacketComments","GetPacketCfn2Levels","packetCfn2Levels","GetPacketCfn3Levels","packetCfn3Levels","packetEditFailureDialogVisibility","failuresPacketFilePath","packetReducer","GetFailureDropdownsRequest","AddDropdownFieldRequest","name","relations","RemoveDropdownFieldRequest","TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG","TOGGLE_OPTIONS_FAILURES_TRACKER_FORM","GET_FAILURES_DROPDOWNS","ADD_DROPDOWN_FIELD","onAddDropdownField","newDropdownField","ToggleOptionsFailuresTrackerForm","dropdownLabel","dropdownName","dropdownValue","dropdownId","onToggleOptionsFailuresTrackerForm","GetFailureDropdowns","dropdowns","optionsFailuresTrackerDialogVisibility","optionsFailuresTrackerFormVisibility","failuresReducer","optionsfailuresTrackerFormVisibility","GetSitesOptIncidentsRequest","GetSiteOptIncidentDetailsRequest","EditSiteOptIncidentDetailsRequest","siteOptimizationsDto","CreateSiteOptIncidentRequest","DeleteSiteOptIncidentRequest","ExportSitesOptIncidentsRequest","GetAutocompleteFieldsRequest","GetFailuresRequest","AddAttachmentRequest","incidentId","tempFilePath","DownloadAttachmentRequest","RemoveAttachmentRequest","GET_OPT_SITE_TRACKER","TOGGLE_OPT_SITE_DIALOG","GET_OPT_SITE_TRACKER_DETAILS","GET_OPT_SITE_TRACKER_DROPDOWNS","TOGGLE_DELETE_OPT_SITE_DIALOG","GET_OPT_SITE_AUTOCOMPLETE","GET_FAILURES","SET_SELECTED_FAILURES","TOGGLE_ATTACH_FILE_OPT_SITE_DIALOG","TOGGLE_REMOVE_FILE_OPT_SITE_DIALOG","ResetFields","GetSitesOptIncidents","incidents","ToggleSiteOptDialog","onToggleSiteOptDialog","GetSiteOptIncidentDetails","incidentDetails","ToggleDeleteSiteOptDialog","onToggleDeleteSiteOptDialog","ExportSitesOptIncidents","GetDriveTestsDates","SetSelectedFailures","selectedFailures","AddAttachment","ToggleAttachFileSiteOptDialog","onToggleAttachFileSiteOptDialog","ToggleRemoveFileSiteOptDialog","onToggleRemoveFileSiteOptDialog","SiteOptDialogVisibility","deleteSiteOptDialogVisibility","attachFileSiteOptDialogVisibility","removeFileSiteOptDialogVisibility","autocompleteFields","inputFilePath","stream","globalStatus","siteOptReducer","SavePdfFileRequest","GetRepositoryFilesRequest","DownloadRepositoryFileRequest","RemoveRepositoryFileRequest","GetPdfInformationRequest","GET_REPOSITORY_FILES","TOGGLE_REMOVE_REPOSITORY_FILE_DIALOG","GET_PDF_IMFORMATION","GetRepositoryFiles","filesInfo","SavePdfFile","ToggleRemoveRepositoryFileDialog","onToggleRemoveRepositoryFileDialog","removeRepoFileDialogVisibility","pdfInformationBase64","repositoryPdfInputFilePath","repositoryPdfReducer","SaveExcelFileRequest","SaveExcelFile","repositoryExcelInputFilePath","repositoryExcelReducer","GetKpiFilesTreeRequest","SyncFtpTreeRequest","RunKpiFilesParserRequest","selectedFiles","SearchFTPDirectoryRequest","searchPath","TOGGLE_KPIS_UPLOAD_DIALOG","GET_KPI_FILES_TREE","GET_TREE_LAST_UPDATE","GET_KPI_PROCESS_TABLE","SET_SELECT_FILES","SetSelectedFiles","onSetSelectedFiles","ToggleKpisUploadDialog","onToggleKpisUploadDialog","onGetKpiFilesTree","directory","ftpFileInfo","kpiProcessTable","kpisUploadDialogVisibility","treeLastUpdate","driveTestUploadReducer","rootReducer","combineReducers","session","notifierReducer","dismissed","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","startSignalRConnection","connection","origin","err","NotificationHub","useRef","useDispatch","NotificationRecieved","info","actions","useEffect","current","urlRoot","connectionHub","HubConnectionBuilder","withUrl","build","on","onclose","stop","pages","HomeIcon","AssignmentIcon","MapIcon","BrandingWatermarkIcon","FileCopyIcon","AddRoadIcon","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","replace","hangfireindex","findIndex","splice","managementIndex","navbarContent","Avatar","component","RouterLink","getInitials","Typography","Divider","list","includes","_","intersection","userRole","userProjects","Hidden","lgUp","Drawer","anchor","onClose","open","lgDown","Paper","elevation","square","flexGrow","search","flexBasis","searchIcon","marginRight","searchInput","searchPopper","zIndex","appBar","searchPopperContent","trialButton","marginLeft","green","trialIcon","notificationsButton","notificationsBadge","orange","logoutButton","logoutIcon","TopBar","onOpenNavBarMobile","history","notificationsRef","useState","pricingModalOpen","setPricingModalOpen","openNotifications","setOpenNotifications","shallowEqual","fontFamily","IconButton","onClick","ref","Badge","badgeContent","readed","badge","Button","anchorEl","instance","axios","create","drawer","listItemText","lastActivity","whiteSpace","fab","position","right","topBar","container","flex","navBar","Dashboard","openNavBarMobile","setOpenNavBarMobile","md","maxWidth","margin","justifyContent","details","flexWrap","label","backgroundImage","gradients","TodaysMoney","Card","inner","nameCell","primaryButton","errorButton","UsersDataTable","_resendConfirmationEmail","ResendConfirmationEmail","_deactivateUser","DeactivateUser","_renderActions","tableMeta","rowData","Tooltip","edge","columns","viewColumns","filterType","customBodyRender","sortBy","val","index","Label","sort","empty","updateValue","rowsPerPage","tableBodyMaxHeight","tableBodyCellMaxWidth","expandableRows","schema","presence","allowEmpty","roleId","fields","submitButton","AddEditUserForm","isEdit","setFormState","hasOperatorIdsChanged","usePrevious","validate","handleChange","event","checked","hasError","field","Grid","xs","TextField","fullWidth","helperText","onChange","disabled","SelectField","hintText","menuItems","isMultiSelect","projectIds","AddEditUserDialog","header","textAlign","author","alignContent","applyButton","onApply","getData","useCallback","ModalDialog","confirmLabel","onConfirmClicked","userData","CreateUser","AddPendingUsersForm","React","setOpen","handleClose","_deleteUser","deleteUserEmail","Dialog","DialogTitle","deleteUser","DialogContent","DialogContentText","DialogActions","autoFocus","AddPendingUsersDialog","hasConfirm","cancelLabel","DeleteUserDialog","Users","_addUser","_addPendingUsers","module","view","lg","sm","online","active","client","registered","results","paddingBottom","description","tags","detailsButton","deleteButton","OperatorCard","deleteOperator","navigateDetails","CardHeader","disableTypography","CardContent","left","gridList","Projects","AddOperatorForm","AddOperatorDialog","Operators","_addOperator","OperatorsList","saveButton","Details","CardActions","UpdateOperator","textAlgin","removeButton","addButton","Picture","inputFile","updateOperator","accept","reader","FileReader","addEventListener","result","readAsDataURL","deliverables","members","Overview","xl","ActionsButton","moreRef","openMenu","setOpenMenu","anchorOrigin","vertical","horizontal","menu","transformOrigin","MenuItem","ListItemIcon","ListItemText","memo","ProjectsDataTable","_deleteProject","DeleteProject","AddProjectForm","AddProjectDialog","projectList","tabs","alert","OperatorDetails","tab","setTab","t","Tabs","scrollButtons","Tab","userList","GeneralForm","General","oldpassword","newpassword","confirmnewpassword","equality","Security","overview","down","product","productImage","notice","Settings","OptionsButton","exportPdf","fullScreen","DashboardInspect","match","pageTitle","headerHidden","handle","useFullScreenHandle","_getDashboard","_fullScreen","enter","hidden","ShowExportPDFDialog","TableauDashboard","reportId","serverId","accessToken","infoButton","BlueRedSwitch","withStyles","switchBase","common","thumb","track","border","Switch","VoiceDataTable","_editValid","SetFailureVoiceValidInvalid","_getTableColumns","FormControlLabel","_renderValid","componentMapping","Skeleton","element","parsed","JSON","parse","novo","updatedData","updatedItem","Object","keys","componentString","Component","renderComponentCell","VoiceMocMtcDataTable","pagination","generate","VoiceComments","commentValue","setCommentValue","List","ListItem","userName","moment","creationTimestamp","format","toString","disableUnderline","trim","placeholder","DataTable","showDownload","showPrint","selectableRows","StyledEngineProvider","injectFirst","ThemeProvider","outerTheme","actionColumnWidth","adaptV4Theme","MUIDataTable","MUIDataTableHead","MUIDataTableHeadCell","MUIDataTableHeadRow","MUIDataTableBody","MUIDataTableBodyRow","head","paddingRight","MUIDataTablePagination","MUIDataTableViewCol","MUIDataTableSearch","MUIDataTableToolbar","MUIDataTableFilter","MUIDataTableFilterList","getMuiTheme","rowsPerPageOptions","print","responsive","onRowSelectionChange","currentRowsSelected","allRowsSelected","rowsSelected","onRowSelection","dt","indexOf","tableRow","cursor","Layer3DataTables","dataMo","setDataMo","dataMt","setDataMt","setTableSide","moPage","setMoPage","mtPage","setMtPage","upHidden","downHidden","_onRowClick","rowMeta","useMemo","layer3TableMoc","layer3TableMtc","layer3MessageMoc","decodedMessage","layer3MessageMtc","layer3TableMessageOtherSide","mtId","tableBodyMt","getElementById","querySelector","trs","querySelectorAll","mtLine","tr","td","tdIndex","textContent","rowHeight","clientHeight","parentNode","scrollTop","scrollToRowMt","mtIndex","trunc","moId","moLine","scrollToRowMo","moIndex","DataTableRaw","onRowClick","jumpToPage","textLabels","page","onTableChange","tableState","setRowProps","row","dataIndex","rowIndex","Box","sx","InputProps","readOnly","multiline","Layer3Charts","verticalLineData","graphLineTime","fill","pointRadius","borderWidth","graphWithLine","datasets","dataLabels","labels","maintainAspectRatio","Layer3Map","mapOne","failureLockOn","makeDetailsTable","failureId","latitude","longitude","layerData","fitBounds","RemoveLayerById","markers","voiceIconBlocked","iconUrl","iconSize","iconAnchor","popupAnchor","voiceIconBlockedQoe","voiceIconDropped","voiceIconDroppedQoe","packetIcondrop","isEmpty","marker","bindPopup","autoPan","layerGroup","addTo","mapContext","group","featureGroup","getBounds","_addLayerFailures","circle","fillColor","fillOpacity","makeDetailsTableKpis","onUpdateLegend","_addLayerKpi","driveTestPoints","DriveTestLegend","eventData","layerName","flyTo","_addLayerKpiEvent","driveTestEventTime","styles","selectField","defaultValue","Layer3Form","Layer3Dialog","FailuresHelixDialog","VoiceEditFailureDialogForm","hideFields","setHideFields","trackerVoiceCommentsDto","failuresHelixDialogVisibility","_handleChange","_handleChangeLevels","_hasError","cfn2Level","openModal","setOpenModal","failureTypeHeader","failureSideHeader","mobilityScenario","testType","initialClassification","week","trackerVoiceMocMtcDto","Accordion","defaultExpanded","AccordionSummary","expandIcon","AccordionDetails","cfn3Level","status","solution","solutionDescription","VoiceEditFailureDialog","_getData","SetFailureVoiceDetails","Voice","PacketDataTable","SetFailurePacketValidInvalid","PacketMocMtcDataTable","PacketComments","PacketEditFailureDialogForm","trackerPacketCommentsDto","packetIconBlocked","packetIconBlockedQoe","packetIconDropped","packetIconDroppedQoe","trackerPacketMocMtcDto","PacketEditFailureDialog","SetFailurePacketDetails","Packet","FailuresTrackerOptionsForm","dropdownValueAdded","setdropdownValueAdded","_handleClose","cfn1LevelId","cfn2LevelId","cfn2LevelVoice","cfn3LevelId","cfn3LevelVoice","m","noValidate","autoComplete","AddDropdownField","RemoveDropdownField","FailuresTrackerOptionsDialog","expanded","setExpanded","panel","isExpanded","_handleChangeDropDown","_addField","cfnLevelsRelationVoice","cfn2LevelsVoice","cfn2LevelName","Map","cfn3LevelsVoice","cfn3LevelName","_deleteField","console","flexShrink","solutionOwner","e","Failures","useParams","_handleSpeedDialClick","ExportFailuresVoice","ExportFailuresPacket","SpeedDial","ariaLabel","SpeedDialIcon","SpeedDialAction","tooltipTitle","buttonIcon","contentSection","contentSectionHeader","contentSectionContent","formGroup","fieldGroup","minAmount","maxAmount","radioGroup","CompareBox","onFilter","filterDisabled","onClear","mapTwo","_addSiteLocation","_autoZoom","_onSiteIdChange","filterOptions","createFilterOptions","limit","labelPlacement","selectedKpiTech","kpi4g","kpi3g","kpi2g","techBandActive","driveTestTechBand","selectedKpiTechCompare","kpi4gCompare","kpi3gCompare","kpi2gCompare","align","Autocomplete","getOptionLabel","option","renderInput","agreeButton","startIcon","FiltersTop","_handleCloseDates","optionDates","GetDriveTestsLogs","selectedKpiScannerTech","kpi4gScanner","scannerPci","kpi3gScanner","scannerSc","kpi2gScanner","scannerBsic","kpi5gScanner","scannerNrPci","_handleCloseLogs","optionLogs","kpi5g","kpiCommon","multiple","disableCloseOnSelect","limitTags","reason","_handleChangeDates","renderOption","renderProps","selected","Checkbox","checkedIcon","_handleChangeLogs","FiltersTopCompare","kpi5gCompare","selectedKpiScannerTechCompare","kpi4gScannerCompare","scannerPciCompare","kpi3gScannerCompare","scannerScCompare","kpi2gScannerCompare","scannerBsicCompare","kpi5gScannerCompare","selectedKpiCrowdsourcingTech","kpiCrowdsourcing4g","kpiCrowdsourcing3g","kpiCrowdsourcing2g","nested","paddingLeft","nestedTwo","bands2g","bands3g","bands4g","bands5g","FiltersSide","useHistory","baseURL","openTopology","setOpenTopology","openTopology5g","setOpenTopology5g","openTopology4g","setOpenTopology4g","openTopology3g","setOpenTopology3g","openTopology2g","setOpenTopology2g","techBandSelection","voice","packet","topologyLabels","topology2g900","topology2g1800","topology3g900","topology3g2100","topology4g800","topology4g2100","topology4g2600","topology5g78","setState","openUe","setOpenUe","open5g","setOpen5g","open4g","setOpen4g","open3g","setOpen3g","open2g","setOpen2g","commonMenu","setCommonMenu","openEvents","setOpenEvents","openEventsVoice","setOpenEventsVoice","openEventsPacket","setOpenEventsPacket","value5g","setValue5g","value4g","setValue4g","value3g","setValue3g","value2g","setValue2g","valueCommon","setValueCommon","openScanner","setOpenScanner","openScanner4g","setOpenScanner4g","setOpenScanner5g","openScanner3g","setOpenScanner3g","openScanner2g","setOpenScanner2g","commonScannerMenu","setCommonScannerMenu","valueScanner4g","setValueScanner4g","setValueScanner5g","valueScanner3g","setValueScanner3g","valueScanner2g","setValueScanner2g","_removeLayerById","handleChangeType","handleChangeTopology2g","mapBounds","mapBoundsPoints","northEast","_northEast","southWest","_southWest","handleChangeTopology3g","handleChangeTopology4g","getZoom","buttonValue","getAttribute","updateTopology2g","topology2gDto","updateTopology3g","topology3gDto","updateTopology4g","topology4gDto","updateTopology5g","topology5gDto","addTopologyLabels","band","makeDetailsTechBandKpi","_addLayerTechBandKpi","driveTestTechBandLegend","_handleChangeFailuresFilters","_voiceFilter","_packetFilter","cardStyle","topList","Collapse","in","timeout","unmountOnExit","disablePadding","FormGroup","RadioGroup","Radio","GetUeRoute","GetDriveTestScannerFrequencies2g","GetDriveTestScannerFrequencies3g","GetDriveTestScannerFrequencies4g","GetScannerRoute","FiltersSideCompare","techBandVoice","techBandPacket","techBandVoiceSelection","techBandPacketSelection","openScanner5g","valueScanner5g","GetDriveTestScannerFrequencies2gCompare","GetDriveTestScannerFrequencies3gCompare","GetDriveTestScannerFrequencies4gCompare","GetDriveTestScannerFrequencies5gCompare","scannerNrPciCompare","GetScannerRouteCompare","DrivetestChart","scales","yAxes","ticks","beginAtZero","stepSize","AdditionalInfo","dataCompare","measures","average","maximum","minimum","CarriersColorsDialogForm","_editColor","_renderActionsColor","CarriersColorsDialog","CarriersColorsPickerDialog","setColor","SaveCarrierColor","justify","onChangeComplete","selectedColor","hex","CustomLayerDialog","acceptedTypes","upload","totalSize","allowedFormats","mapInfoFiles","fileNameWithoutExtension","lastIndexOf","fileExtension","count","some","object","UploadCustomLayerFiles","XcapToolFilesUploadDialog","XcapToolAttachmentsUpload","DualMap","GetDriveTestsCities","GetFailuresFilters","GetCustomLayer","GetFailuresFiltersCompare","_addLayerKpiScanner","_addLayerKpiScannerRoute","makeDetailsTableKpisScannerRoute","_addCustomLayer","geoJSON","pointToLayer","feature","geometry","circleMarker","onEachFeature","labelContent","properties","prop","bindTooltip","sticky","driveTestLegend","topologyColors","updateTopologyCarriersColors","makeDetailsTableKpisUeRoute","_addLayerKpiUeRoute","invalidateSize","sync","chartData","SiteOptDatatable","jvcoId","SiteOptDialogForm","statusClosedDate","setStatusClosedDate","closedDate","_handleDateChange","uniqueData","arr","unique","removeDuplicates","GetFailures","driveTestCity","newTouched","submit","each","fullMessages","polygon","driveTestDrive","driveTestDatesList","failuresList","InputLabelProps","shrink","DatePicker","minutesStep","area","renderTags","tagValue","getTagProps","Chip","numberOfFailures","source","issueDescription","solutionType","cfnOwner","cfnProposals","cell","incNumber","requested","incTefNumber","executionDate","operatorComments","hasAttachment","DownloadAttachment","SiteOptDialog","CreateSiteOptIncident","SiteOptDeleteDialog","DeleteSiteOptIncident","InputBase","inputProps","SiteOptAddFileDialog","UploadAttachment","SiteOptDeleteFileDialog","RemoveAttachment","SiteOptTracker","_onCreateSiteIncidentClick","popover","pointerEvents","ExcelUpload","UploadExcelFile","ExcelTable","_downloadFile","DownloadRepositoryFile","RepositoryForm","RepositoryFileRemoveDialog","RemoveRepositoryFile","Repository","PdfUpload","UploadPdfFile","PdfTable","_handleRowClick","rowState","GetPdfInformation","PdfViewer","pdf","pdfInformationBase64Complete","pdfSelected","UploadSelectedFilesTable","handleFileTypeChange","newFileType","fileType","fileTypeOptions","Select","rowHover","tableBodyHeight","toolbar","hideHeader","KpisUploadDialog","setSearchPath","setSelectedFiles","selectedFilesHelper","setSelectedFilesHelper","GetKpiFilesTree","getFileType","handleToggle","node","stopPropagation","fullPath","join","isDirectory","prevSelected","newSelectedFiles","updatedFilesObject","existingFileObject","obj","fileDirectory","renderTree","TreeItem","nodeId","Array","isArray","childNode","RunKpiFilesParser","ml","SearchFTPDirectory","TreeView","defaultCollapseIcon","defaultExpandIcon","overflowX","treeItem","KpiUploadProcessTable","Sync","DriveTestUpload","SyncFtpTree","isUndefined","exact","AuthGuard","DashboardLayout","FailuresTracker","RepositoryPdf","RepositoryExcel","AuthLayout","lazy","ErrorLayout","displayed","Notifier","store","useSnackbar","myKey","onExited","Chart","helpers","elements","Rectangle","draw","signX","signY","borderSkipped","_chart","vm","_view","cornerRadius","base","barSize","abs","halfStroke","borderLeft","borderRight","borderTop","fillStyle","strokeStyle","lineWidth","corners","startCorner","cornerAt","corner","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","quadraticCurveTo","stroke","updateLocale","relativeTime","future","past","ss","mm","h","hh","dd","M","MM","yy","validators","regex","RegExp","pattern","test","AxiosMockAdapter","delayResponse","mock","onGet","reply","canHire","country","firstName","isPublic","lastName","phone","timezone","statistics","payout","visitors","watching","uuid","price","currency","updated_at","todos","deadline","done","created_at","subscription","proposalsLeft","templatesLeft","invitesLeft","adsLeft","hasAnalytics","hasEmailAlerts","settings","draft","events","desc","allDay","conversations","otherUser","messages","sender","authUser","contentType","unread","groups","connections","customers","spent","rating","summary","zipCode","address1","address2","iban","autoCC","verified","invoices","vat","balance","emails","paymentMethod","IP","seen","favorited","subject","receiver","start_date","end_date","indigo","bio","brief","mimeType","activities","subject_type","action_type","action_desc","subscribers","cover","common_connections","posts","liked","likes","media","reviews","reviewer","pricePerHour","hours","invoice","due_date","issue_date","customer","company","nzbn","address","products","subtotal","taxes","total","lists","tasks","progress","orders","payment","order","promoCode","items","cuantity","billing","referrals","initials","cyan","image","subscriptions","earnings","createBrowserHistory","basename","process","preloadedState","middlewares","thunkMiddleware","middlewareEnhancer","composeWithDevTools","applyMiddleware","enhancers","composedEnhancers","compose","createStore","configureStore","interceptor","App","maxSnack","autoHideDuration","LocalizationProvider","dateAdapter","DateAdapter","Boolean","hostname","ReactDOM","render","serviceWorker","ready","registration","unregister","chips","chip","formControlStyle","customRenderValue","setLabelWidth","InputLabelRef","offsetWidth","htmlFor","renderValue","v","toUpperCase","fileInput","shape","success","lightBlue","warning","icons","Alert","forwardRef","displayName","defaultProps","trimCode","codeLines","shift","pop","indexOfFirstChar","output","line","substr","CodeBlock","async","language","Prism","outline","CookiesNotification","Cookies","get","Link","underline","set","bytes","decimals","k","dm","sizes","parseFloat","toFixed","dropZone","dragActive","FilesDropzone","maxSize","setFiles","handleDrop","acceptedFiles","f","concat","useDropzone","onDrop","getRootProps","getInputProps","isDragActive","suppressScrollX","primaryTypographyProps","bytesToSize","dropZonePaste","REACT_APP_GA_MEASUREMENT_ID","textDecoration","CustomRouterLink","itemLeaf","buttonLeaf","fontWeightRegular","fontWeightMedium","NavigationListItem","depth","Icon","openProp","disableGutters","o","activeClassName","NavigationList","reduce","matchPath","reduceChildRoutes","Navigation","listItem","avatarBlue","avatarGreen","avatarOrange","avatarRed","arrowForwardIcon","NotificationList","avatars","ListItemAvatar","addedDate","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","EmptyList","NotificationsPopover","Popover","GA_MEASUREMENT_ID","Page","gtag","page_path","page_name","Helmet","listStyle","userSelect","activeLink","break","breakLink","next","nextLink","pageLink","previous","previousLink","Paginate","pageCount","pageRangeDisplayed","onPageChange","activeLinkClassName","breakClassName","breakLabel","breakLinkClassName","containerClassName","disabledClassName","marginPagesDisplayed","nextClassName","nextLabel","nextLinkClassName","pageClassName","pageLinkClassName","previousClassName","previousLabel","previousLinkClassName","subContainerClassName","bubble","time","likeButton","likedButton","shareButton","shareIcon","subheader","accessTimeIcon","mediaArea","backgroundPosition","transition","transitions","easing","sharp","duration","leavingScreen","recommended","contact","startButton","PricingModal","subtitle","learnMoreButton","starIcon","starFilledIcon","amber","starBorderIcon","ReviewStars","starCount","starNodes","starNode","activeButton","alpha","FormatQuoteIcon","FormatListBulletedIcon","FormatListNumberedIcon","CodeIcon","FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon","FormatBoldIcon","FormatItalicIcon","FormatUnderlined","newBlockRenderMap","unstyled","paragraph","ScrollReset","DefaultDraftBlockRenderMap","merge","editorContainer","textAlignLeft","textAlignCenter","textAlignRight","textAlignJustify","scrollTo","searchButton","filterButton","filterIcon","more","StackAvatars","avatarNodes","small","medium","large","StatusBullet","rootClassName","backdrop","Loading","Backdrop","CircularProgress","Header","iconButton","selectedDate","handleDateChange","useSate","selectedStateDate","setSelectedDate","CalendarPicker","FilePicker","orientation","PowerBIDashboard","embedConfig","embedUrl","tokenType","models","TokenType","Aad","panes","filters","BackgroundType","Default","cssClassName","getEmbeddedComponent","embeddedReport","report","_self","Layer2G","Layer3G","Layer4G","overlays","layerControl","LegendElements","Title","initMap","getActiveOverlays","getActivePopup","AddLegend","onUpdateCoordinates","onAddMap","osmBase","tileLayer","baseMaps","Satellite","attributionControl","preferCanvas","groupedLayers","that","GetMapDataBounds","currentZoom","setZoom","Markers","coords","latLng","textMarker","divIcon","html","Markers2G","GetRadius","azimuth","beamWidth","cellColor","cellRadius","weight","makeDetailsTableTopologySeparated","Markers3G","Markers4G","Markers5G","technology","RemoveLayer","intToRGB","invertColor","makeDetailsTableTopology","addOverlay","cellName","mechanicalTilt","electricalTilt","TopRightCornerLatitude","getNorth","TopRightCornerLongitude","getEast","BottomLeftCornerLatitude","getSouth","BottomLeftCornerLongitude","getWest","thatState","_layers","_update","eachLayer","removeLayer","layerId","hasLayer","pane","getPopup","isOpen","Control","removeControl","onAdd","div","DomUtil","innerHTML","legendColor","legendValue","substring","_hex","parseInt","g","padZero","str","_len","connect","bindActionCreators","MapActions","_getChartOptions","legendPosition","tension","callback","_getScaleValue","newValue","decimal","String","difference","finalValue","_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","buildGradient","rounded","finalStyle","interceptors","request","use","configuration","Promise","reject","statusCode","errorObject","isString","onOpen","inputFormat","inputVariant","emptyLabel","viz","showExportPDFDialog","dispose","containerDiv","hideToolbar","onFirstVizSizeKnown","innerHeight","setAttribute","tableau","Viz","_initViz","MaterialCheckbox","onCheck","labelStyle","muiName","closeButton","MuiDialogContent","isDisabled","modal","autoScrollBodyContent","dialogProps","disableEscapeKeyDown","useContext","__RouterContext","propTypes","PropTypes","array","isRequired","UPDATE_COORDINATES","ADD_MAP","UPDATE_TOPOLOGY","UPDATE_LEGEND","UPDATE_POPUP","UPDATE_OVERLAYS","onUpdateTopology","onUpdatePopup","onUpdateOverlays"],"mappings":"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AM,WACNtkB,MAAO,uBACPkoD,KACC,8FACDh2B,QAAS,CACR,+BACA,+BACA,gCAEDlrC,MAAO,EACPysB,SAAU,EACV04C,SAAU,EACV9E,SAAU9uB,OAASjvC,IAAI,EAAG,SAE3B,CACC/C,GAAIygE,OACJ1/B,IAAK,KACLhD,KAAM,cACNtkB,MAAO,uCACPkoD,KACC,8FACDh2B,QAAS,CAAC,iCACVlrC,MAAO,EACPysB,SAAU,EACV04C,SAAU,GACV9E,SAAU9uB,OAASjvC,IAAI,EAAG,UAE3B,CACC/C,GAAIygE,OACJ1/B,IAAK,KACLhD,KAAM,cACNtkB,MAAO,4BACPkoD,KACC,8FACDh2B,QAAS,CACR,gCACA,iCAEDlrC,MAAO,EACPysB,SAAU,EACV04C,SAAU,GACV9E,SAAU9uB,OAASjvC,IAAI,EAAG,UAE3B,CACC/C,GAAIygE,OACJ1/B,IAAK,KACLhD,KAAM,YACNtkB,MACC,+DACDkoD,KACC,8FACDh2B,QAAS,CACR,+BACA,+BACA,gCAEDlrC,MAAO,EACPysB,SAAU,EACV04C,SAAU,GACV9E,SAAU9uB,OAAShqC,SAAS,EAAG,SAEhC,CACChI,GAAIygE,OACJ1/B,IAAK,KACLhD,KAAM,YACNtkB,MAAO,uBACPkoD,KACC,8FACDh2B,QAAS,CACR,+BACA,+BACA,+BACA,gCAEDlrC,MAAO,EACPysB,SAAU,EACV04C,SAAU,GACV9E,SAAU9uB,OAAShqC,SAAS,EAAG,SAEhC,CACChI,GAAIygE,OACJ1/B,IAAK,KACLhD,KAAM,YACNtkB,MAAO,kCACPkoD,KACC,+DACDh2B,QAAS,CACR,+BACA,+BACA,gCAEDlrC,MAAO,EACPysB,SAAU,EACV04C,SAAU,IACV9E,SAAU9uB,OAAShqC,SAAS,EAAG,SAEhC,CACChI,GAAIygE,OACJ1/B,IAAK,KACLhD,KAAM,YACNtkB,MAAO,0BACPkoD,KACC,8FACDh2B,QAAS,CACR,+BACA,+BACA,+BACA,+BACA,gCAEDlrC,MAAO,EACPysB,SAAU,EACV04C,SAAU,IACV9E,SAAU9uB,OAAShqC,SAAS,EAAG,YCvL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","file":"static/js/main.a7d23afd.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\tconst key = notification.options && notification.options.key;\r\n\r\n\treturn {\r\n\t\ttype: ENQUEUE_SNACKBAR,\r\n\t\tnotification: {\r\n\t\t\t...notification,\r\n\t\t\tkey: key || new Date().getTime() + Math.random(),\r\n\t\t},\r\n\t};\r\n};\r\n\r\nexport const closeSnackbar = key => ({\r\n\ttype: CLOSE_SNACKBAR,\r\n\tdismissAll: !key, // dismiss all if no key has been defined\r\n\tkey,\r\n});\r\n\r\nexport const removeSnackbar = key => ({\r\n\ttype: REMOVE_SNACKBAR,\r\n\tkey,\r\n});\r\n","import 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 requestAccess = (firstname, lastname, 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/requestAccess`,\r\n\t\t\tdata: {\r\n\t\t\t\tfirstname,\r\n\t\t\t\tlastname,\r\n\t\t\t\temail\r\n\t\t\t}\r\n\t\t}).then(response => response);\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const CompleteRegistration = (password, rpassword, token, email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/completeRegistration`,\r\n\t\t\tdata: {\r\n\t\t\t\tpassword,\r\n\t\t\t\trpassword,\r\n\t\t\t\ttoken,\r\n\t\t\t\tuser: email\r\n\t\t\t}\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onLogin());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const ResetPassword = (password, rpassword, token, email) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest({\r\n\t\t\tmethod: 'POST',\r\n\t\t\turl: `${config.API_URL}auth/recoverconfirmation`,\r\n\t\t\tdata: {\r\n\t\t\t\tpassword,\r\n\t\t\t\trpassword,\r\n\t\t\t\ttoken,\r\n\t\t\t\tuser: email\r\n\t\t\t}\r\n\t\t}).then(response => {\r\n\t\t\tlocalStorage.setItem(config.TOKEN_KEY, response.data.token);\r\n\t\t\tdispatch(onLogin());\r\n\t\t\tdispatch(getUserInfo(response.data.token));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tthrow new Error(error ? error.message : 'Network error!');\r\n\t}\r\n};\r\n\r\nexport const FetchNotifications = () => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: `${config.API_URL}Notification/Notifications`,\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(onSetNotifications(response.data));\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const NotificationMarkAsRead = (id) => async (dispatch) => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'PUT',\r\n\t\t\t\turl: `${config.API_URL}Notification/MarkAsRead/${id}`,\r\n\t\t\t\thasLoading: false\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tdispatch(FetchNotifications());\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n\r\nexport const SetLoading = (isLoading) => dispatch => {\r\n\tdispatch(onSetLoading(isLoading));\r\n};\r\n\r\nexport const UploadFile = (file) => {\r\n\tconst formData = new FormData();\r\n\tformData.append('file', file);\r\n\treturn AxiosRequest({\r\n\t\tmethod: 'POST',\r\n\t\turl: `${config.API_URL}File/Upload`,\r\n\t\tdata: formData,\r\n\t\theaders: {\r\n\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UploadFiles = (files) => {\r\n\tconst formData = new FormData();\r\n\tfiles.forEach(file => {\r\n\t\tformData.append('file', file);\r\n\t});\r\n\treturn AxiosRequest({\r\n\t\tmethod: 'POST',\r\n\t\turl: `${config.API_URL}File/UploadFiles`,\r\n\t\tdata: formData,\r\n\t\theaders: {\r\n\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UploadMultipleFiles = (files) => {\r\n\tconst formData = new FormData();\r\n\tfiles.forEach(file => {\r\n\t\tif (!file.size < 10000000) {\r\n\t\t\tformData.append('file', file);\r\n\t\t}\r\n\t});\r\n\treturn AxiosRequest({\r\n\t\tmethod: 'POST',\r\n\t\turl: `${config.API_URL}File/UploadMultiple`,\r\n\t\tdata: formData,\r\n\t\theaders: {\r\n\t\t\t'Content-Type': 'multipart/form-data'\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst ShowFile = (response) => {\r\n\tconst blob = response.data;\r\n\tconst filename = decodeURIComponent(response.headers['content-disposition'].split('\\'')[2]);\r\n\t// It is necessary to create a new blob object with mime-type\r\n\t// explicitly set otherwise only Chrome works like it should\r\n\tconst newBlob = new Blob([blob], { type: 'application/force-download' });\r\n\r\n\t// IE doesn't allow using a blob object directly as link href\r\n\t// instead it is necessary to use msSaveOrOpenBlob\r\n\tif (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n\t\twindow.navigator.msSaveOrOpenBlob(newBlob);\r\n\t\treturn;\r\n\t}\r\n\r\n\t// For other browsers:\r\n\t// Create a link pointing to the ObjectURL containing the blob.\r\n\tconst data = window.URL.createObjectURL(newBlob);\r\n\tconst link = document.createElement('a');\r\n\tlink.href = data;\r\n\tlink.download = filename;\r\n\tdocument.body.appendChild(link);\r\n\tlink.click();\r\n\tsetTimeout(() => {\r\n\t\t// For Firefox it is necessary to delay revoking the ObjectURL\r\n\t\tdocument.body.removeChild(link);\r\n\t\twindow.URL.revokeObjectURL(data);\r\n\t}, 100);\r\n};\r\n\r\nexport const DownloadFile = (filePath) => async dispatch => {\r\n\ttry {\r\n\t\tawait AxiosRequest(\r\n\t\t\t{\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\turl: `${config.API_URL}File/Download?file=${filePath}`,\r\n\t\t\t\tresponseType: 'blob'\r\n\t\t\t}\r\n\t\t).then(response => {\r\n\t\t\tShowFile(response);\r\n\t\t});\r\n\t} catch (error) {\r\n\t\t// do nothing\r\n\t}\r\n};\r\n","/* 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\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","import { colors } from '@mui/material';\r\n\r\nconst white = '#FFFFFF';\r\nconst black = '#000000';\r\n\r\nexport default {\r\n\tblack,\r\n\twhite,\r\n\tprimary: {\r\n\t\tcontrastText: white,\r\n\t\tdark: colors.blue[900],\r\n\t\tmain: colors.blue[800],\r\n\t\tlight: colors.blue[100],\r\n\t},\r\n\tsecondary: {\r\n\t\tcontrastText: white,\r\n\t\tdark: colors.blue[900],\r\n\t\tmain: colors.blue.A400,\r\n\t\tlight: colors.blue.A400,\r\n\t},\r\n\terror: {\r\n\t\tcontrastText: white,\r\n\t\tdark: colors.red[900],\r\n\t\tmain: colors.red[600],\r\n\t\tlight: colors.red[400],\r\n\t},\r\n\ttext: {\r\n\t\tprimary: colors.blueGrey[900],\r\n\t\tsecondary: colors.blueGrey[600],\r\n\t\tlink: colors.blue[600],\r\n\t},\r\n\tlink: colors.blue[800],\r\n\ticon: colors.blueGrey[600],\r\n\tbackground: {\r\n\t\tdefault: '#F4F6F8',\r\n\t\tpaper: white,\r\n\t},\r\n\tdivider: colors.grey[200],\r\n};\r\n","import palette from './palette';\r\n\r\nexport default {\r\n\th1: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '35px',\r\n\t\tletterSpacing: '-0.24px',\r\n\t\tlineHeight: '40px',\r\n\t},\r\n\th2: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '29px',\r\n\t\tletterSpacing: '-0.24px',\r\n\t\tlineHeight: '32px',\r\n\t},\r\n\th3: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '24px',\r\n\t\tletterSpacing: '-0.06px',\r\n\t\tlineHeight: '28px',\r\n\t},\r\n\th4: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '20px',\r\n\t\tletterSpacing: '-0.06px',\r\n\t\tlineHeight: '24px',\r\n\t},\r\n\th5: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '16px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '20px',\r\n\t},\r\n\th6: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontWeight: 500,\r\n\t\tfontSize: '14px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '20px',\r\n\t},\r\n\tsubtitle1: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontSize: '16px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '25px',\r\n\t},\r\n\tsubtitle2: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontWeight: 400,\r\n\t\tfontSize: '14px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '21px',\r\n\t},\r\n\tbody1: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontSize: '14px',\r\n\t\tletterSpacing: '-0.05px',\r\n\t\tlineHeight: '21px',\r\n\t},\r\n\tbody2: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontSize: '12px',\r\n\t\tletterSpacing: '-0.04px',\r\n\t\tlineHeight: '18px',\r\n\t},\r\n\tbutton: {\r\n\t\tcolor: palette.text.primary,\r\n\t\tfontSize: '14px',\r\n\t},\r\n\tcaption: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontSize: '11px',\r\n\t\tletterSpacing: '0.33px',\r\n\t\tlineHeight: '13px',\r\n\t},\r\n\toverline: {\r\n\t\tcolor: palette.text.secondary,\r\n\t\tfontSize: '11px',\r\n\t\tfontWeight: 500,\r\n\t\tletterSpacing: '0.33px',\r\n\t\tlineHeight: '13px',\r\n\t\ttextTransform: 'uppercase',\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t\tcolor: colors.blueGrey[900],\r\n\t\t},\r\n\t\tdeletable: {\r\n\t\t\t'&:focus': {\r\n\t\t\t\tbackgroundColor: colors.blueGrey[100],\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\troot: {\r\n\t\tcolor: palette.icon,\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.03)',\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {},\r\n\t\tinput: {\r\n\t\t\t'&::placeholder': {\r\n\t\t\t\topacity: 1,\r\n\t\t\t\tcolor: palette.text.secondary,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tborderRadius: 3,\r\n\t\t\toverflow: 'hidden',\r\n\t\t},\r\n\t\tcolorPrimary: {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tcolor: palette.icon,\r\n\t\t\tminWidth: 32,\r\n\t\t},\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tbackgroundColor: colors.grey[50],\r\n\t\t},\r\n\t},\r\n};\r\n","import MuiButton from './MuiButton';\r\nimport MuiCardActions from './MuiCardActions';\r\nimport MuiCardContent from './MuiCardContent';\r\nimport MuiCardHeader from './MuiCardHeader';\r\nimport MuiChip from './MuiChip';\r\nimport MuiIconButton from './MuiIconButton';\r\nimport MuiInputBase from './MuiInputBase';\r\nimport MuiLinearProgress from './MuiLinearProgress';\r\nimport MuiListItemIcon from './MuiListItemIcon';\r\nimport MuiOutlinedInput from './MuiOutlinedInput';\r\nimport MuiPaper from './MuiPaper';\r\nimport MuiTableHead from './MuiTableHead';\r\nimport MuiTableCell from './MuiTableCell';\r\nimport MuiTableRow from './MuiTableRow';\r\nimport MuiToggleButton from './MuiToggleButton';\r\nimport MuiTypography from './MuiTypography';\r\n\r\nexport default {\r\n\tMuiButton,\r\n\tMuiCardActions,\r\n\tMuiCardContent,\r\n\tMuiCardHeader,\r\n\tMuiChip,\r\n\tMuiIconButton,\r\n\tMuiInputBase,\r\n\tMuiLinearProgress,\r\n\tMuiListItemIcon,\r\n\tMuiOutlinedInput,\r\n\tMuiPaper,\r\n\tMuiTableHead,\r\n\tMuiTableCell,\r\n\tMuiTableRow,\r\n\tMuiToggleButton,\r\n\tMuiTypography,\r\n};\r\n","export default {\r\n\tcontained: {\r\n\t\tboxShadow:\r\n\t\t\t'0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)',\r\n\t\tbackgroundColor: '#FFFFFF',\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tpadding: '16px 24px',\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tpadding: '24px'\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tpadding: '16px 24px',\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {},\r\n\t\tnotchedOutline: {\r\n\t\t\tborderColor: 'rgba(0,0,0,0.15)',\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\troot: {},\r\n\t\televation1: {\r\n\t\t\tboxShadow:\r\n\t\t\t\t'0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)',\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\nimport typography from '../typography';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\t...typography.body1,\r\n\t\t\tborderBottom: `1px solid ${palette.divider}`,\r\n\t\t},\r\n\t},\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\t'&$selected': {\r\n\t\t\t\tbackgroundColor: palette.background.default,\r\n\t\t\t},\r\n\t\t\t'&$hover': {\r\n\t\t\t\t'&:hover': {\r\n\t\t\t\t\tbackgroundColor: palette.background.default,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","import { colors } from '@mui/material';\r\n\r\nimport palette from '../palette';\r\n\r\nexport default {\r\n\tstyleOverrides: {\r\n\t\troot: {\r\n\t\t\tcolor: palette.icon,\r\n\t\t\t'&:hover': {\r\n\t\t\t\tbackgroundColor: colors.grey[100],\r\n\t\t\t},\r\n\t\t\t'&$selected': {\r\n\t\t\t\tbackgroundColor: colors.grey[50],\r\n\t\t\t\tcolor: palette.primary.main,\r\n\t\t\t\t'&:hover': {\r\n\t\t\t\t\tbackgroundColor: colors.grey[100],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t'&:first-child': {\r\n\t\t\t\tborderTopLeftRadius: 4,\r\n\t\t\t\tborderBottomLeftRadius: 4,\r\n\t\t\t},\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tborderTopRightRadius: 4,\r\n\t\t\t\tborderBottomRightRadius: 4,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n};\r\n","export default {\r\n\tstyleOverrides: {\r\n\t\tgutterBottom: {\r\n\t\t\tmarginBottom: '8px',\r\n\t\t},\r\n\t},\r\n};\r\n","import { createTheme } from '@mui/material';\r\n\r\nimport palette from './palette';\r\nimport typography from './typography';\r\nimport overrides from './overrides';\r\n\r\nconst theme = createTheme({\r\n\tpalette,\r\n\ttypography,\r\n\tcomponents: overrides,\r\n});\r\n\r\nexport default theme;\r\n","import jwt from 'jwt-decode';\r\nimport * as actionTypes from 'actions';\r\nimport config from 'configuration/configuration.js';\r\n\r\nconst token = localStorage.getItem(config.TOKEN_KEY);\r\nlet initialState = {\r\n\tloggedIn: false,\r\n\tuser: {\r\n\t},\r\n\tnotifications: [],\r\n\tisLoading: false,\r\n\tloadingCount: 0,\r\n};\r\n\r\nif (token) {\r\n\tconst decoded = jwt(token);\r\n\tconst currentDate = new Date().getTime() / 1000;\r\n\tif (decoded.exp > currentDate) {\r\n\t\tinitialState = { ...initialState, loggedIn: true, user: { ...decoded } };\r\n\t}\r\n}\r\n\r\nconst sessionReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase actionTypes.REDIRECT_TO_ERROR: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlink: action.link\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SESSION_LOGIN: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tloggedIn: true\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.USER_INFO: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tuser: { ...state.user, ...action.user }\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SESSION_LOGOUT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tloggedIn: false,\r\n\t\t\t\t\t\t\tuser: {\r\n\t\t\t\t\t\t\t\trole: 'Client',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SET_NOTIFICATIONS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: action.notifications || [],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase actionTypes.SET_LOADING: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\t\t\t\tloadingCount: action.isLoading ? state.loadingCount++ : state.loadingCount--,\r\n\t\t\t\t\t\t\tisLoading: state.loadingCount > 0,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default sessionReducer;\r\n","import { ENQUEUE_SNACKBAR, CLOSE_SNACKBAR, REMOVE_SNACKBAR } from 'actions';\r\n\r\nconst defaultState = {\r\n\tnotifications: [],\r\n};\r\n\r\nexport default (state = defaultState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase ENQUEUE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: [\r\n\t\t\t\t\t\t\t\t...state.notifications,\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tkey: action.key,\r\n\t\t\t\t\t\t\t\t\t...action.notification,\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tcase CLOSE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: state.notifications.map(notification => (\r\n\t\t\t\t\t\t\t\t(action.dismissAll || notification.key === action.key)\r\n\t\t\t\t\t\t\t\t\t? { ...notification, dismissed: true }\r\n\t\t\t\t\t\t\t\t\t: { ...notification }\r\n\t\t\t\t\t\t\t)),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tcase REMOVE_SNACKBAR:\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnotifications: state.notifications.filter(\r\n\t\t\t\t\t\t\t\tnotification => notification.key !== action.key,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\treturn state;\r\n\t}\r\n};\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetUsersRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetUsers`,\r\n\tparams: { role }\r\n});\r\n\r\nexport const GetPendingUsersRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Users/GetPendingUsers`,\r\n});\r\n\r\nexport const DeletePendingUserRequest = (userEmail) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Users/DeletePendingUser`,\r\n\tparams: { userEmail }\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\tGetPendingUsersRequest,\r\n\tDeletePendingUserRequest,\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 SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const SET_INITIAL_STATE = 'SET_INITIAL_STATE';\r\nexport const GET_USERS = 'GET_USERS';\r\nexport const GET_PENDING_USERS = 'GET_PENDING_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_ADD_PENDING_USERS_DIALOG = 'TOGGLE_ADD_PENDING_USERS_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 GET_USER = 'GET_USER';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onSetInitialState = (value) => ({\r\n\ttype: SET_INITIAL_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onGetUsers = (value) => ({\r\n\ttype: GET_USERS,\r\n\tusers: value\r\n});\r\n\r\nconst onGetPendingUsers = (value) => ({\r\n\ttype: GET_PENDING_USERS,\r\n\tpendingUsers: 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 onToggleAddPendingUsersDialog = (openAddPendingUsersDialog) => ({\r\n\ttype: TOGGLE_ADD_PENDING_USERS_DIALOG,\r\n\topenAddPendingUsersDialog\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 onGetUser = (value) => ({\r\n\ttype: GET_USER,\r\n\tuser: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const SetInitialState = (value) => (dispatch) => {\r\n\tdispatch(onSetInitialState(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 GetPendingUsers = () => async (dispatch) => {\r\n\tawait GetPendingUsersRequest().then(response => {\r\n\t\tdispatch(onGetPendingUsers(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 DeletePendingUser = (userEmail) => async (dispatch) => {\r\n\tawait DeletePendingUserRequest(userEmail).then(response => {\r\n\t\tdispatch(GetPendingUsers());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\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 ToggleAddPendingUsersDialog = (openAddPendingUsersDialog) => (dispatch) => {\r\n\tdispatch(onToggleAddPendingUsersDialog(openAddPendingUsersDialog));\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 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\tdispatch(GetPendingUsers());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\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\tSET_FORM_STATE,\r\n\tSET_INITIAL_STATE,\r\n\tGET_USERS,\r\n\tGET_PENDING_USERS,\r\n\tGET_USERS_STATS,\r\n\tTOGGLE_ADD_EDIT_USER_DIALOG,\r\n\tTOGGLE_ADD_PENDING_USERS_DIALOG,\r\n\tTOGGLE_DELETE_USER_DIALOG,\r\n\tGET_ROLES,\r\n\tGET_OPERATORS,\r\n\tGET_OPERATOR_PROJECTS,\r\n\tGET_USER\r\n} from '../actions/UsersActions.js';\r\n\r\nconst initialState = {\r\n\tusers: [],\r\n\tpendingUsers: [],\r\n\tusersStats: {},\r\n\topenAddEditUserDialog: false,\r\n\topenAddEditUserDialogId: null,\r\n\topenAddPendingUsersDialog: false,\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 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 SET_INITIAL_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: 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_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_PENDING_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\tpendingUsers: action.pendingUsers\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\t// formState: 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_ADD_PENDING_USERS_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\tformState: initialState.formState,\r\n\t\t\t\t\t\t\topenAddPendingUsersDialog: action.openAddPendingUsersDialog,\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 GET_USER: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.user }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default usersReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOperatorsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Operators/GetOperators`,\r\n\tparams: {}\r\n});\r\n\r\nexport const CreateOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/CreateOperator`,\r\n\tdata: operator\r\n});\r\n\r\nexport const DeleteOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'DELETE',\r\n\turl: `${config.API_URL}Operators/DeleteOperator`,\r\n\tdata: operator\r\n});\r\n\r\nexport const GetOperatorRequest = (operatorId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Operators/GetOperator`,\r\n\tparams: { operatorId }\r\n});\r\n\r\nexport const UpdateImageRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/UpdateImage`,\r\n\tdata: operator\r\n});\r\n\r\nexport const DeleteProjectRequest = (projectId) => AxiosRequest({\r\n\tmethod: 'DELETE',\r\n\turl: `${config.API_URL}Operators/DeleteProject`,\r\n\tparams: { projectId }\r\n});\r\n\r\nexport const CreateProjectRequest = (project) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/CreateProject`,\r\n\tdata: project\r\n});\r\n\r\nexport const UpdateOperatorRequest = (operator) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Operators/UpdateOperator`,\r\n\tdata: operator\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetOperatorsRequest,\r\n\tCreateOperatorRequest,\r\n\tDeleteOperatorRequest,\r\n\tGetOperatorRequest,\r\n\tUpdateImageRequest,\r\n\tDeleteProjectRequest,\r\n\tCreateProjectRequest,\r\n\tUpdateOperatorRequest\r\n} from '../requests/OperatorsRequests.js';\r\n\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const TOGGLE_ADD_OPERATOR_DIALOG = 'TOGGLE_ADD_OPERATOR_DIALOG';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const NAVIGATE_DETAILS = 'NAVIGATE_DETAILS';\r\nexport const GET_OPERATOR = 'GET_OPERATOR';\r\nexport const TOGGLE_ADD_PROJECT_DIALOG = 'TOGGLE_ADD_PROJECT_DIALOG';\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onToggleAddOperatorDialog = (openAddOperatorDialog) => ({\r\n\ttype: TOGGLE_ADD_OPERATOR_DIALOG,\r\n\topenAddOperatorDialog,\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onNavigateDetails = (value) => ({\r\n\ttype: NAVIGATE_DETAILS,\r\n\tdetailsOperatorId: value\r\n});\r\n\r\nconst onGetOperator = (value) => ({\r\n\ttype: GET_OPERATOR,\r\n\toperator: value\r\n});\r\n\r\nconst onToggleAddProjectDialog = (openAddProjectDialog) => ({\r\n\ttype: TOGGLE_ADD_PROJECT_DIALOG,\r\n\topenAddProjectDialog,\r\n});\r\n\r\nexport const GetOperators = () => async (dispatch) => {\r\n\tawait GetOperatorsRequest().then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddOperatorDialog = (openAddEditOperatorDialog) => (dispatch) => {\r\n\tdispatch(onToggleAddOperatorDialog(openAddEditOperatorDialog));\r\n};\r\n\r\nexport const CreateOperator = (data) => async (dispatch) => {\r\n\tawait CreateOperatorRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New operator created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetOperators());\r\n\t\tdispatch(ToggleAddOperatorDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteOperator = (data) => async (dispatch) => {\r\n\tawait DeleteOperatorRequest(data).then(response => {\r\n\t\tdispatch(GetOperators());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const NavigateDetails = (value) => (dispatch) => {\r\n\tdispatch(onNavigateDetails(value));\r\n};\r\n\r\nexport const GetOperator = (operatorId) => async (dispatch) => {\r\n\tawait GetOperatorRequest(operatorId).then(response => {\r\n\t\tdispatch(onGetOperator(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UpdateImage = (operator) => async (dispatch) => {\r\n\tawait UpdateImageRequest(operator).then(response => {\r\n\t\tdispatch(GetOperator(operator.id));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const DeleteProject = (projectId, operatorId) => async (dispatch) => {\r\n\tawait DeleteProjectRequest(projectId).then(response => {\r\n\t\tdispatch(GetOperator(operatorId));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleAddProjectDialog = (openAddEditProjectDialog) => (dispatch) => {\r\n\tdispatch(onToggleAddProjectDialog(openAddEditProjectDialog));\r\n};\r\n\r\nexport const CreateProject = (data) => async (dispatch) => {\r\n\tawait CreateProjectRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'New project created!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t\tdispatch(GetOperator(data.operatorId));\r\n\t\tdispatch(ToggleAddProjectDialog(false));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const UpdateOperator = (operator) => async (dispatch) => {\r\n\tawait UpdateOperatorRequest(operator).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Operator updated!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tTOGGLE_ADD_OPERATOR_DIALOG,\r\n\tGET_OPERATORS,\r\n\tSET_FORM_STATE,\r\n\tNAVIGATE_DETAILS,\r\n\tGET_OPERATOR,\r\n\tTOGGLE_ADD_PROJECT_DIALOG\r\n} from '../actions/OperatorsActions.js';\r\n\r\nconst initialState = {\r\n\toperators: [],\r\n\topenAddOperatorDialog: false,\r\n\tdetailsOperatorId: null,\r\n\toperator: {},\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t},\r\n\topenAddProjectDialog: false,\r\n};\r\n\r\nconst operatorsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_OPERATOR_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddOperatorDialog: action.openAddOperatorDialog,\r\n\t\t\t\t\t\t\tformState: initialState.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase NAVIGATE_DETAILS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdetailsOperatorId: action.detailsOperatorId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_OPERATOR: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperator: action.operator,\r\n\t\t\t\t\t\t\tformState: {\r\n\t\t\t\t\t\t\t\t...state.formState,\r\n\t\t\t\t\t\t\t\tvalues: { ...action.operator }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_ADD_PROJECT_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\topenAddProjectDialog: action.openAddProjectDialog,\r\n\t\t\t\t\t\t\tformState: initialState.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default operatorsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetOperatorsRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Account/GetUserOperators`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const UpdateSettingsRequest = (data) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Account/UpdateSettings`,\r\n\tdata\r\n});\r\n\r\nexport const ChangePasswordRequest = (data) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}Account/ChangePassword`,\r\n\tdata\r\n});\r\n","import { enqueueSnackbar, getUserInfo } from 'actions';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport {\r\n\tGetOperatorsRequest,\r\n\tUpdateSettingsRequest,\r\n\tChangePasswordRequest\r\n} from '../requests/SettingsRequests.js';\r\n\r\nexport const GET_OPERATORS = 'GET_OPERATORS';\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\n\r\nconst onGetOperators = (value) => ({\r\n\ttype: GET_OPERATORS,\r\n\toperators: value\r\n});\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nexport const GetOperators = (userId) => async (dispatch) => {\r\n\tawait GetOperatorsRequest(userId).then(response => {\r\n\t\tdispatch(onGetOperators(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const UpdateSettings = (data) => async (dispatch) => {\r\n\tawait UpdateSettingsRequest(data).then(response => {\r\n\t\tdispatch(getUserInfo(localStorage.getItem(config.TOKEN_KEY)));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ChangePassword = (data) => async (dispatch) => {\r\n\tawait ChangePasswordRequest(data).then(response => {\r\n\t\tdispatch(enqueueSnackbar({ message: 'Password changed!', options: { key: new Date().getTime() + Math.random(), variant: 'success' } }));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tGET_OPERATORS,\r\n\tSET_FORM_STATE\r\n} from '../actions/SettingsActions.js';\r\n\r\nconst initialState = {\r\n\toperators: [],\r\n\tformState: {\r\n\t\tisValid: false,\r\n\t\tvalues: {},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t}\r\n};\r\n\r\nconst settingsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase GET_OPERATORS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toperators: action.operators\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_FORM_STATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tformState: action.formState\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default settingsReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const DashboardInspectRequest = (dashboardId, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Dashboard/Inspect`,\r\n\tparams: { dashboardId, userId }\r\n});\r\n","import { enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tDashboardInspectRequest,\r\n} from '../requests/DashboardInspectRequests.js';\r\n\r\nexport const DASHBOARD_INSPECT = 'DASHBOARD_INSPECT';\r\n\r\nconst onDashboardInspect = (value) => ({\r\n\ttype: DASHBOARD_INSPECT,\r\n\tdashboard: value\r\n});\r\n\r\nexport const DashboardInspect = (dashboardId, userId) => async dispatch => {\r\n\tawait DashboardInspectRequest(dashboardId, userId).then(response => {\r\n\t\tdispatch(onDashboardInspect(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tDASHBOARD_INSPECT\r\n} from '../actions/DashboardInspectActions.js';\r\n\r\nconst initialState = {\r\n\tdashboard: {\r\n\t}\r\n};\r\n\r\nconst reportsReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase DASHBOARD_INSPECT: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tdashboard: action.dashboard\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default reportsReducer;\r\n","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\n// Failures\r\nexport const GetFailuresFiltersRequest = (role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DualMap/GetFailuresFilters`,\r\n\tparams: { role }\r\n});\r\n\r\nexport const GetFailuresPointsVoiceRequest = (userId, role, type, city, dates, logs, failureType, cfn1Level) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetFailuresPoints`,\r\n\tdata: { userId, role, type, city, dates, logs, failureType, cfn1Level }\r\n});\r\n\r\nexport const GetFailuresPointsPacketRequest = (userId, role, type, city, dates, logs, failureType, cfn1Level) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetFailuresPoints`,\r\n\tdata: { userId, role, type, city, dates, logs, failureType, cfn1Level }\r\n});\r\n\r\n// DriveTests\r\nexport const GetDriveTestsCitiesRequest = (userId, userOperator) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DualMap/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}DualMap/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}DualMap/GetDriveTestsDates`,\r\n\tparams: { city, drive }\r\n});\r\n\r\nexport const GetDriveTestsLogsRequest = (city, dates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetDriveTestsLogs`,\r\n\tdata: { city, dates }\r\n});\r\n\r\nexport const GetDriveTestRequest = (userId, tech, city, dates, logs, kpi) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetDriveTest`,\r\n\tdata: { userId, tech, city, dates, logs, kpi }\r\n});\r\n\r\nexport const GetUeRouteRequest = (userId, city, dates, logs) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetUeRoute`,\r\n\tdata: { userId, city, dates, logs }\r\n});\r\n\r\n// Scanner\r\nexport const GetDriveTestScannerFrequenciesRequest = (userId, tech, city, dates, freq, top) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetDriveTestScannerFrequencies`,\r\n\tdata: { userId, tech, city, dates, freq, top }\r\n});\r\n\r\nexport const GetDriveTestScannerCodesRequest = (userId, tech, city, dates, freq, top) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetDriveTestScannerCodes`,\r\n\tdata: { userId, tech, 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}DualMap/GetDriveTestScanner`,\r\n\tdata: { userId, tech, city, dates, kpi, freq, top, code }\r\n});\r\n\r\n// Crowdsourcing\r\nexport const GetCrowdsourcingRequest = (userId, tech, city, dates, kpi) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetCrowdsourcing`,\r\n\tdata: { userId, tech, city, dates, kpi }\r\n});\r\n\r\n// Topology\r\nexport const GetTopologyRequest = (userId, tech, bands, coordinates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetTopology`,\r\n\tdata: { userId, tech, bands, coordinates }\r\n});\r\n\r\nexport const GetScannerRouteRequest = (userId, city, dates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/GetScannerRoute`,\r\n\tdata: { userId, city, dates }\r\n});\r\n\r\nexport const GetSitesIdsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DualMap/GetSitesIds`,\r\n});\r\n\r\nexport const GetSiteIdLocationRequest = (siteId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DualMap/GetSiteIdLocation`,\r\n\tparams: { siteId }\r\n});\r\n\r\nexport const GetCarriersColorsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DualMap/GetCarriersColors`,\r\n});\r\n\r\nexport const SaveCarrierColorRequest = (userId, tableId, colorCode) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/SaveCarrierColor`,\r\n\tdata: { userId, tableId, colorCode }\r\n});\r\n\r\nexport const UploadCustomLayerRequest = (folder, userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DualMap/UploadCustomLayer`,\r\n\tparams: { folder, userId }\r\n});\r\n\r\nexport const GetCustomLayerRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DualMap/GetCustomLayer`,\r\n\tparams: { userId }\r\n});\r\n\r\n// Export\r\nexport const ExportScannerRequest = (drive, dates) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/ExportScanner`,\r\n\tdata: { drive, dates }\r\n});\r\n\r\n// Extra Map\r\nexport const RunXcapToolRequest = (userId, folderPath) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DualMap/RunXcapTool`,\r\n\tparams: { userId, folderPath }\r\n});\r\n","import { enqueueSnackbar, UploadMultipleFiles, DownloadFile, UploadFiles } 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\tGetDriveTestsLogsRequest,\r\n\tGetDriveTestRequest,\r\n\tGetUeRouteRequest,\r\n\t// Scanner\r\n\tGetDriveTestScannerFrequenciesRequest,\r\n\tGetDriveTestScannerCodesRequest,\r\n\tGetDriveTestScannerRequest,\r\n\tGetScannerRouteRequest,\r\n\tGetCrowdsourcingRequest,\r\n\tGetTopologyRequest,\r\n\tGetSitesIdsRequest,\r\n\tGetSiteIdLocationRequest,\r\n\tGetCarriersColorsRequest,\r\n\tSaveCarrierColorRequest,\r\n\tUploadCustomLayerRequest,\r\n\tGetCustomLayerRequest,\r\n\tExportScannerRequest,\r\n\tRunXcapToolRequest\r\n} from '../requests/DualMapRequests';\r\n\r\n// Map\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 SET_SELECTED_DATES = 'SET_SELECTED_DATES';\r\nexport const SET_SELECTED_LOGS = 'SET_SELECTED_LOGS';\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 GET_DRIVETESTS_LOGS = 'GET_DRIVETESTS_LOGS';\r\nexport const GET_DRIVETEST = 'GET_DRIVETEST';\r\nexport const GET_DRIVETESTS_TECH_BAND = 'GET_DRIVETESTS_TECH_BAND';\r\nexport const GET_UE_ROUTE = 'GET_UE_ROUTE';\r\n// Scanner\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_2G = 'GET_DRIVETEST_SCANNER_FREQUENCIES_2G';\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_3G = 'GET_DRIVETEST_SCANNER_FREQUENCIES_3G';\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_4G = 'GET_DRIVETEST_SCANNER_FREQUENCIES_4G';\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_5G = 'GET_DRIVETEST_SCANNER_FREQUENCIES_5G';\r\nexport const GET_DRIVETEST_SCANNER_CODES_2G = 'GET_DRIVETEST_SCANNER_CODES_2G';\r\nexport const GET_DRIVETEST_SCANNER_CODES_3G = 'GET_DRIVETEST_SCANNER_CODES_3G';\r\nexport const GET_DRIVETEST_SCANNER_CODES_4G = 'GET_DRIVETEST_SCANNER_CODES_4G';\r\nexport const GET_DRIVETEST_SCANNER_CODES_5G = 'GET_DRIVETEST_SCANNER_CODES_5G';\r\nexport const GET_DRIVETEST_SCANNER = 'GET_DRIVETEST_SCANNER';\r\nexport const GET_SCANNER_ROUTE = 'GET_SCANNER_ROUTE';\r\nexport const GET_CROWDSOURCING = 'GET_CROWDSOURCING';\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_SITES_IDS = 'GET_SITES_IDS';\r\nexport const GET_SITE_ID_LOCATION = 'GET_SITE_ID_LOCATION';\r\nexport const GET_CUSTOM_LAYER = 'GET_CUSTOM_LAYER';\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 SET_SELECTED_DATES_COMPARE = 'SET_SELECTED_DATES_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 GET_DRIVETEST_COMPARE = 'GET_DRIVETEST_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_2G_COMPARE = 'GET_DRIVETEST_SCANNER_FREQUENCIES_2G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_3G_COMPARE = 'GET_DRIVETEST_SCANNER_FREQUENCIES_3G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_4G_COMPARE = 'GET_DRIVETEST_SCANNER_FREQUENCIES_4G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_FREQUENCIES_5G_COMPARE = 'GET_DRIVETEST_SCANNER_FREQUENCIES_5G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_CODES_2G_COMPARE = 'GET_DRIVETEST_SCANNER_CODES_2G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_CODES_3G_COMPARE = 'GET_DRIVETEST_SCANNER_CODES_3G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_CODES_4G_COMPARE = 'GET_DRIVETEST_SCANNER_CODES_4G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_CODES_5G_COMPARE = 'GET_DRIVETEST_SCANNER_CODES_5G_COMPARE';\r\nexport const GET_DRIVETEST_SCANNER_COMPARE = 'GET_DRIVETEST_SCANNER_COMPARE';\r\nexport const GET_SCANNER_ROUTE_COMPARE = 'GET_SCANNER_ROUTE_COMPARE';\r\nexport const GET_CROWDSOURCING_COMPARE = 'GET_CROWDSOURCING_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\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 TOGGLE_CUSTOM_LAYER_DIALOG = 'TOGGLE_CUSTOM_LAYER_DIALOG';\r\nexport const GET_CARRIERS_COLORS = 'GET_CARRIERS_COLORS';\r\nexport const TOGGLE_CARRIERS_COLORS_PICKER_DIALOG = 'TOGGLE_CARRIERS_COLORS_PICKER_DIALOG';\r\nexport const TOGGLE_ATTACH_FILES_DIALOG = 'TOGGLE_ATTACH_FILES_DIALOG';\r\nexport const TOGGLE_XCAP_TOOL_DIALOG = 'TOGGLE_XCAP_TOOL_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\n// Map\r\n// Failures\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\n// DriveTests\r\nconst onSetSelectedDates = (value) => ({\r\n\ttype: SET_SELECTED_DATES,\r\n\tselectedDates: value\r\n});\r\n\r\nconst onSetSelectedLogs = (value) => ({\r\n\ttype: SET_SELECTED_LOGS,\r\n\tselectedLogs: 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 onGetDriveTestsLogs = (value) => ({\r\n\ttype: GET_DRIVETESTS_LOGS,\r\n\tlogs: value\r\n});\r\n\r\nconst onGetDriveTest = (value) => ({\r\n\ttype: GET_DRIVETEST,\r\n\tdriveTest: value\r\n});\r\n\r\nconst onGetUeRoute = (value) => ({\r\n\ttype: GET_UE_ROUTE,\r\n\tueRoute: value\r\n});\r\n\r\n// Scanner\r\nconst onGetDriveTestScannerFrequencies2g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_2G,\r\n\tdriveTestScannerFrequencies2g: value\r\n});\r\n\r\nconst onGetDriveTestScannerFrequencies3g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_3G,\r\n\tdriveTestScannerFrequencies3g: value\r\n});\r\n\r\nconst onGetDriveTestScannerFrequencies4g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_4G,\r\n\tdriveTestScannerFrequencies4g: value\r\n});\r\n\r\nconst onGetDriveTestScannerFrequencies5g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_5G,\r\n\tdriveTestScannerFrequencies5g: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes2g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_2G,\r\n\tdriveTestScannerCodes2g: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes3g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_3G,\r\n\tdriveTestScannerCodes3g: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes4g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_4G,\r\n\tdriveTestScannerCodes4g: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes5g = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_5G,\r\n\tdriveTestScannerCodes5g: 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 onGetScannerRoute = (value) => ({\r\n\ttype: GET_SCANNER_ROUTE,\r\n\tscannerRoute: value\r\n});\r\n\r\n// Crowdsourcing\r\nconst onGetCrowdsourcing = (value) => ({\r\n\ttype: GET_CROWDSOURCING,\r\n\tcrowdsourcing: value\r\n});\r\n\r\n// Topology\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 onGetCustomLayer = (value) => ({\r\n\ttype: GET_CUSTOM_LAYER,\r\n\tcustomLayer: value\r\n});\r\n\r\n// Map Compare\r\n// Failures\r\nconst onGetFailuresFiltersCompare = (value) => ({\r\n\ttype: GET_FAILURES_FILTERS_COMPARE,\r\n\tfailuresFiltersCompare: 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\n// DriveTests\r\nconst onSetSelectedDatesCompare = (value) => ({\r\n\ttype: SET_SELECTED_DATES_COMPARE,\r\n\tselectedDatesCompare: 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 onGetDriveTestCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_COMPARE,\r\n\tdriveTestCompare: value\r\n});\r\n\r\n// Scanner\r\nconst onGetDriveTestScannerFrequencies2gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_2G_COMPARE,\r\n\tdriveTestScannerFrequencies2gCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerFrequencies3gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_3G_COMPARE,\r\n\tdriveTestScannerFrequencies3gCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerFrequencies4gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_4G_COMPARE,\r\n\tdriveTestScannerFrequencies4gCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerFrequencies5gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_FREQUENCIES_5G_COMPARE,\r\n\tdriveTestScannerFrequencies5gCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes2gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_2G_COMPARE,\r\n\tdriveTestScannerCodes2gCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes3gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_3G_COMPARE,\r\n\tdriveTestScannerCodes3gCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes4gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_4G_COMPARE,\r\n\tdriveTestScannerCodes4gCompare: value\r\n});\r\n\r\nconst onGetDriveTestScannerCodes5gCompare = (value) => ({\r\n\ttype: GET_DRIVETEST_SCANNER_CODES_5G_COMPARE,\r\n\tdriveTestScannerCodes5gCompare: 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 onGetScannerRouteCompare = (value) => ({\r\n\ttype: GET_SCANNER_ROUTE_COMPARE,\r\n\tscannerRouteCompare: value\r\n});\r\n\r\n// Crowdsourcing\r\nconst onGetCrowdsourcingCompare = (value) => ({\r\n\ttype: GET_CROWDSOURCING_COMPARE,\r\n\tcrowdsourcingCompare: value\r\n});\r\n\r\n// Topology\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\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 onToggleCustomLayerDialog = (visible) => ({\r\n\ttype: TOGGLE_CUSTOM_LAYER_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\n// Failures\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, logs, failureType, cfn1Level) => async (dispatch) => {\r\n\tawait GetFailuresPointsVoiceRequest(userId, role, 'voice', city, dates, logs, 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, logs, failureType, cfn1Level) => async (dispatch) => {\r\n\tawait GetFailuresPointsPacketRequest(userId, role, 'packet', city, dates, logs, 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\n// DriveTests\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 GetDriveTestsLogs = (city, dates) => async (dispatch) => {\r\n\tawait GetDriveTestsLogsRequest(city, dates).then(response => {\r\n\t\tdispatch(onGetDriveTestsLogs(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 SetSelectedLogs = (selectedLogs) => (dispatch) => {\r\n\tdispatch(onSetSelectedLogs(selectedLogs));\r\n};\r\n\r\nexport const GetDriveTest = (userId, tech, city, dates, logs, kpi) => async (dispatch) => {\r\n\tawait GetDriveTestRequest(userId, tech, city, dates, logs, 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 GetUeRoute = (userId, city, dates, logs) => async (dispatch) => {\r\n\tawait GetUeRouteRequest(userId, city, dates, logs).then(response => {\r\n\t\tdispatch(onGetUeRoute(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// Scanner\r\nexport const GetDriveTestScannerFrequencies2g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies2g(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 GetDriveTestScannerFrequencies3g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies3g(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 GetDriveTestScannerFrequencies4g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies4g(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 GetDriveTestScannerFrequencies5g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies5g(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 GetDriveTestScannerCodes2g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes2g(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 GetDriveTestScannerCodes3g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes3g(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 GetDriveTestScannerCodes4g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes4g(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 GetDriveTestScannerCodes5g = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes5g(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 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\n// Crowdsourcing\r\nexport const GetCrowdsourcing = (userId, tech, city, dates, kpi) => async (dispatch) => {\r\n\tawait GetCrowdsourcingRequest(userId, tech, city, dates, kpi).then(response => {\r\n\t\tdispatch(onGetCrowdsourcing(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// Topology\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 GetCustomLayer = (userId) => async (dispatch) => {\r\n\tawait GetCustomLayerRequest(userId).then(response => {\r\n\t\tdispatch(onGetCustomLayer(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 ToggleCustomLayerDialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleCustomLayerDialog(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\n// Failures\r\nexport const GetFailuresFiltersCompare = (role) => async (dispatch) => {\r\n\tawait GetFailuresFiltersRequest(role).then(response => {\r\n\t\tdispatch(onGetFailuresFiltersCompare(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\n// DriveTests\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\n// Scanner\r\nexport const GetDriveTestScannerFrequencies2gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies2gCompare(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 GetDriveTestScannerFrequencies3gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies3gCompare(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 GetDriveTestScannerFrequencies4gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies4gCompare(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 GetDriveTestScannerFrequencies5gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerFrequenciesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerFrequencies5gCompare(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 GetDriveTestScannerCodes2gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes2gCompare(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 GetDriveTestScannerCodes3gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes3gCompare(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 GetDriveTestScannerCodes4gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes4gCompare(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 GetDriveTestScannerCodes5gCompare = (userId, tech, city, dates, freq, top) => async (dispatch) => {\r\n\tawait GetDriveTestScannerCodesRequest(userId, tech, city, dates, freq, top).then(response => {\r\n\t\tdispatch(onGetDriveTestScannerCodes5gCompare(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 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// Crowdsourcing\r\nexport const GetCrowdsourcingCompare = (userId, tech, city, dates, kpi) => async (dispatch) => {\r\n\tawait GetCrowdsourcingRequest(userId, tech, city, dates, kpi).then(response => {\r\n\t\tdispatch(onGetCrowdsourcingCompare(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// Topology\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\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\r\nexport const UploadCustomLayer = (folder, userId) => async (dispatch) => {\r\n\tawait UploadCustomLayerRequest(folder, userId).then(response => {\r\n\t\tdispatch(onToggleCustomLayerDialog(false));\r\n\t\tdispatch(enqueueSnackbar({ message: 'Successfully uploaded layer files.', options: { variant: 'success' } }));\r\n\t\tdispatch(onGetCustomLayer(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 UploadCustomLayerFiles = (files, userId) => async (dispatch) => {\r\n\tawait UploadMultipleFiles(files).then(response => {\r\n\t\tdispatch(UploadCustomLayer(response.data, userId));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\n// Export Scanner\r\nexport const ExportScanner = (drive, dates) => async (dispatch) => {\r\n\tawait ExportScannerRequest(drive, dates).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// Extra Global\r\nconst onToggleXcapToolDialog = (visible) => ({\r\n\ttype: TOGGLE_XCAP_TOOL_DIALOG,\r\n\tvisible\r\n});\r\n\r\nexport const ToggleXcapToolDialog = (visible) => dispatch => {\r\n\tdispatch(onToggleXcapToolDialog(visible));\r\n};\r\n\r\nexport const RunXcapTool = (userId, folderPath) => async dispatch => {\r\n\tawait RunXcapToolRequest(userId, folderPath).then(response => {\r\n\t\tdispatch(DownloadFile(response.data));\r\n\t}).catch(error => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(\r\n\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\toptions: { variant: error.variant }\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const XcapToolAttachmentsUpload = (userId, files) => async dispatch => {\r\n\tawait UploadFiles(files).then(response => {\r\n\t\tdispatch(RunXcapTool(userId, response.data));\r\n\t}).catch(error => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(\r\n\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\toptions: { variant: error.variant }\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tRESET_FIELDS,\r\n\t// Map\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\tGET_DRIVETESTS_LOGS,\r\n\tSET_SELECTED_DATES,\r\n\tSET_SELECTED_LOGS,\r\n\tGET_DRIVETEST,\r\n\tGET_DRIVETESTS_TECH_BAND,\r\n\tGET_UE_ROUTE,\r\n\t// Scanner\r\n\tGET_DRIVETEST_SCANNER_FREQUENCIES_2G,\r\n\tGET_DRIVETEST_SCANNER_FREQUENCIES_3G,\r\n\tGET_DRIVETEST_SCANNER_FREQUENCIES_4G,\r\n\tGET_DRIVETEST_SCANNER_FREQUENCIES_5G,\r\n\tGET_DRIVETEST_SCANNER_CODES_2G,\r\n\tGET_DRIVETEST_SCANNER_CODES_3G,\r\n\tGET_DRIVETEST_SCANNER_CODES_4G,\r\n\tGET_DRIVETEST_SCANNER_CODES_5G,\r\n\tGET_DRIVETEST_SCANNER,\r\n\tGET_SCANNER_ROUTE,\r\n\tGET_CROWDSOURCING,\r\n\tGET_TOPOLOGY_2G,\r\n\tGET_TOPOLOGY_3G,\r\n\tGET_TOPOLOGY_4G,\r\n\tGET_TOPOLOGY_5G,\r\n\tGET_CUSTOM_LAYER,\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_FREQUENCIES_2G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_FREQUENCIES_3G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_FREQUENCIES_4G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_FREQUENCIES_5G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_CODES_2G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_CODES_3G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_CODES_4G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_CODES_5G_COMPARE,\r\n\tGET_DRIVETEST_SCANNER_COMPARE,\r\n\tGET_SCANNER_ROUTE_COMPARE,\r\n\tGET_CROWDSOURCING_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\t// Global\r\n\tTOGGLE_FILTERS,\r\n\tCLEAR_FORM,\r\n\tTOGGLE_CARRIERS_COLORS_DIALOG,\r\n\tTOGGLE_CUSTOM_LAYER_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\tTOGGLE_XCAP_TOOL_DIALOG\r\n} from '../actions/DualMapActions';\r\n\r\nconst initialState = {\r\n\t// Map\r\n\tfailuresFilters: [],\r\n\tfailuresVoice: [],\r\n\tfailuresPacket: [],\r\n\tcities: [],\r\n\tdrives: [],\r\n\tdates: [],\r\n\tselectedDates: [],\r\n\tselectedLogs: [],\r\n\tdriveTest: [],\r\n\tdriveTestScannerFrequencies2g: [],\r\n\tdriveTestScannerFrequencies3g: [],\r\n\tdriveTestScannerFrequencies4g: [],\r\n\tdriveTestScannerFrequencies5g: [],\r\n\tdriveTestScannerCodes2g: [],\r\n\tdriveTestScannerCodes3g: [],\r\n\tdriveTestScannerCodes4g: [],\r\n\tdriveTestScannerCodes5g: [],\r\n\tdriveTestScanner: [],\r\n\tcrowdsourcing: [],\r\n\ttopology2gData: [],\r\n\ttopology3gData: [],\r\n\ttopology4gData: [],\r\n\ttopology5gData: [],\r\n\ttopologyLabelsData: [],\r\n\ttechBand: [],\r\n\tcustomLayer: '',\r\n\t// Map Compare\r\n\tfailuresFiltersCompare: [],\r\n\tfailuresVoiceCompare: [],\r\n\tfailuresPacketCompare: [],\r\n\tdrivesCompare: [],\r\n\tdatesCompare: [],\r\n\tselectedDatesCompare: [],\r\n\tdriveTestCompare: [],\r\n\tdriveTestScannerFrequencies2gCompare: [],\r\n\tdriveTestScannerFrequencies3gCompare: [],\r\n\tdriveTestScannerFrequencies4gCompare: [],\r\n\tdriveTestScannerFrequencies5gCompare: [],\r\n\tdriveTestScannerCodes2gCompare: [],\r\n\tdriveTestScannerCodes3gCompare: [],\r\n\tdriveTestScannerCodes4gCompare: [],\r\n\tdriveTestScannerCodes5gCompare: [],\r\n\tdriveTestScannerCompare: [],\r\n\tcrowdsourcingCompare: [],\r\n\ttopology2gDataCompare: [],\r\n\ttopology3gDataCompare: [],\r\n\ttopology4gDataCompare: [],\r\n\ttopology5gDataCompare: [],\r\n\ttopologyLabelsDataCompare: [],\r\n\ttechBandVoiceCompare: [],\r\n\ttechBandPacketCompare: [],\r\n\t// Global\r\n\tkpiFilesTree: [],\r\n\topenFilters: false,\r\n\tcarriersColorsDialogVisibility: false,\r\n\tcustomLayerDialogVisibility: false,\r\n\tcarriersColorsPickerDialogVisibility: false,\r\n\txcapToolDialogVisibility: 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\t// Common\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\tselectedCity: '',\r\n\t\t\t// Map\r\n\t\t\tselectedDrive: '',\r\n\t\t\tvoiceActive: false,\r\n\t\t\tpacketActive: 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\t// scannerBsic: 'all',\r\n\t\t\t// scannerSc: 'all',\r\n\t\t\t// scannerPci: 'all',\r\n\t\t\tfreq2g: '',\r\n\t\t\tfreq3g: '',\r\n\t\t\tfreq4g: '',\r\n\t\t\tfreq5g: '',\r\n\t\t\ttop2g: '',\r\n\t\t\ttop3g: '',\r\n\t\t\ttop4g: '',\r\n\t\t\ttop5g: '',\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\t// scannerBsicCompare: 'all',\r\n\t\t\t// scannerScCompare: 'all',\r\n\t\t\t// scannerPciCompare: 'all',\r\n\t\t\tfreq2gCompare: '',\r\n\t\t\tfreq3gCompare: '',\r\n\t\t\tfreq4gCompare: '',\r\n\t\t\tfreq5gCompare: '',\r\n\t\t\ttop2gCompare: '',\r\n\t\t\ttop3gCompare: '',\r\n\t\t\ttop4gCompare: '',\r\n\t\t\ttop5gCompare: ''\r\n\t\t},\r\n\t\ttouched: {},\r\n\t\terrors: {},\r\n\t},\r\n};\r\n\r\nconst dualMapReducer = (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\t// drives: [],\r\n\t\t\t\t\t\t\t// dates: [],\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\t// Map\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 GET_DRIVETESTS_LOGS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tlogs: action.logs\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 SET_SELECTED_LOGS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tselectedLogs: action.selectedLogs\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_DRIVETESTS_TECH_BAND: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttechBand: action.techBand\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_UE_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\tueRoute: action.ueRoute\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Scanner\r\n\t\t\t\t\tcase GET_DRIVETEST_SCANNER_FREQUENCIES_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\tdriveTestScannerFrequencies2g: action.driveTestScannerFrequencies2g\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_FREQUENCIES_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\tdriveTestScannerFrequencies3g: action.driveTestScannerFrequencies3g\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_FREQUENCIES_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\tdriveTestScannerFrequencies4g: action.driveTestScannerFrequencies4g\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_FREQUENCIES_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\tdriveTestScannerFrequencies5g: action.driveTestScannerFrequencies5g\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_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\tdriveTestScannerCodes2g: action.driveTestScannerCodes2g\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_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\tdriveTestScannerCodes3g: action.driveTestScannerCodes3g\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_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\tdriveTestScannerCodes4g: action.driveTestScannerCodes4g\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_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\tdriveTestScannerCodes5g: action.driveTestScannerCodes5g\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_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\tcase GET_CROWDSOURCING: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tcrowdsourcing: action.crowdsourcing\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\ttopologyLabelsData: action.topology2gData.topologyLabelsDto\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\ttopologyLabelsData: action.topology3gData.topologyLabelsDto\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\ttopologyLabelsData: action.topology4gData.topologyLabelsDto\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\ttopologyLabelsData: action.topology5gData.topologyLabelsDto\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_CUSTOM_LAYER: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tcustomLayer: action.customLayer,\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\tfailuresFiltersCompare: action.failuresFiltersCompare,\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_FREQUENCIES_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\tdriveTestScannerFrequencies2gCompare: action.driveTestScannerFrequencies2gCompare\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_FREQUENCIES_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\tdriveTestScannerFrequencies3gCompare: action.driveTestScannerFrequencies3gCompare\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_FREQUENCIES_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\tdriveTestScannerFrequencies4gCompare: action.driveTestScannerFrequencies4gCompare\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_FREQUENCIES_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\tdriveTestScannerFrequencies5gCompare: action.driveTestScannerFrequencies5gCompare\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_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\tdriveTestScannerCodes2gCompare: action.driveTestScannerCodes2gCompare\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_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\tdriveTestScannerCodes3gCompare: action.driveTestScannerCodes3gCompare\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_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\tdriveTestScannerCodes4gCompare: action.driveTestScannerCodes4gCompare\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_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\tdriveTestScannerCodes5gCompare: action.driveTestScannerCodes5gCompare\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_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\tcase GET_CROWDSOURCING_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\tcrowdsourcingCompare: action.crowdsourcingCompare\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\ttopologyLabelsDataCompare: action.topology2gDataCompare.topologyLabelsDto\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\ttopologyLabelsDataCompare: action.topology3gDataCompare.topologyLabelsDto\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\ttopologyLabelsDataCompare: action.topology4gDataCompare.topologyLabelsDto\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\ttopologyLabelsDataCompare: action.topology5gDataCompare.topologyLabelsDto\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_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_CUSTOM_LAYER_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\tcustomLayerDialogVisibility: 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\tcase TOGGLE_XCAP_TOOL_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\txcapToolDialogVisibility: 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 dualMapReducer;\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}FailuresTracker/GetFailuresVoice`,\r\n\tparams: { userId, role },\r\n\thasLoading: false\r\n});\r\n\r\nexport const SetFailureVoiceValidInvalidRequest = (userId, id) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}FailuresTracker/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}FailuresTracker/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}FailuresTracker/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}FailuresTracker/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}FailuresTracker/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}FailuresTracker/ExportFailuresVoice`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const GetVoiceLevelsRequest = (type, level) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}FailuresTracker/GetVoiceLevels`,\r\n\tparams: { type, level }\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, date, side, userId, filename) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Message`,\r\n\tparams: { id, date, side, userId, filename }\r\n});\r\n\r\nexport const GetLayer3MessageMtRequest = (id, date, side, userId, filename) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Message`,\r\n\tparams: { id, date, side, userId, filename }\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, eventTime) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3DriveTest`,\r\n\tparams: { userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime }\r\n});\r\n\r\nexport const GetLayer3KpisRequest = (filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Kpis`,\r\n\tparams: { filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime }\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\tGetVoiceLevelsRequest,\r\n\t// Layer 3\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 TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG = 'TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG';\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_VOICE_CFN_2_LEVELS = 'GET_VOICE_CFN_2_LEVELS';\r\nexport const GET_VOICE_CFN_3_LEVELS = 'GET_VOICE_CFN_3_LEVELS';\r\n// layer 3\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\n// Other\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onToggleOptionsFailuresTrackerDialog = visible => ({\r\n\ttype: TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG,\r\n\tvisible\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\nconst onGetVoiceCfn2Levels = (value) => ({\r\n\ttype: GET_VOICE_CFN_2_LEVELS,\r\n\tvoiceCfn2Levels: value\r\n});\r\n\r\nconst onGetVoiceCfn3Levels = (value) => ({\r\n\ttype: GET_VOICE_CFN_3_LEVELS,\r\n\tvoiceCfn3Levels: 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\n// Other\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const ToggleOptionsFailuresTrackerDialog = visible => dispatch => {\r\n\tdispatch(onToggleOptionsFailuresTrackerDialog(visible));\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, role, id) => async (dispatch) => {\r\n\tawait SetFailureVoiceValidInvalidRequest(userId, id).then(response => {\r\n\t\tdispatch(GetFailuresVoice(userId, role));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\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, role) => async (dispatch) => {\r\n\tawait SetFailureVoiceDetailsRequest(failure, userId).then(response => {\r\n\t\tdispatch(GetFailuresVoice(userId, role));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\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(GetFailureVoiceComments(id));\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\nexport const GetVoiceCfn2Levels = (level) => async (dispatch) => {\r\n\tawait GetVoiceLevelsRequest('Cfn2Levels', level).then(response => {\r\n\t\tdispatch(onGetVoiceCfn2Levels(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 GetVoiceCfn3Levels = (level) => async (dispatch) => {\r\n\tawait GetVoiceLevelsRequest('Cfn3Levels', level).then(response => {\r\n\t\tdispatch(onGetVoiceCfn3Levels(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\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 SetLayer3 = (data) => async (dispatch) => {\r\n\tdispatch(onGetLayer3(data));\r\n};\r\n\r\nexport const GetLayer3MessageMo = (id, date, side, userId, filename) => async (dispatch) => {\r\n\tawait GetLayer3MessageMoRequest(id, date, side, userId, filename).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, date, side, userId, filename) => async (dispatch) => {\r\n\tawait GetLayer3MessageMtRequest(id, date, side, userId, filename).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, eventTime) => async (dispatch) => {\r\n\tawait GetLayer3DriveTestRequest(userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime).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, eventTime) => async (dispatch) => {\r\n\tawait GetLayer3KpisRequest(filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime).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\tGET_VOICE_CFN_2_LEVELS,\r\n\tGET_VOICE_CFN_3_LEVELS,\r\n\t// Layer 3\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: 'none',\r\n\tvoiceEditFailureDialogVisibility: false,\r\n\tformState: {\r\n\t\tvalues: {\r\n\t\t\tfailureSource: 'fail',\r\n\t\t\tlayer3Kpi: 'rsrp'\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: { ...state.formState.values, ...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 GET_VOICE_CFN_2_LEVELS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tvoiceCfn2Levels: action.voiceCfn2Levels\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_VOICE_CFN_3_LEVELS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tvoiceCfn3Levels: action.voiceCfn3Levels\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Layer 3\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\n// Failures\r\nexport const GetFailuresPacketRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}FailuresTracker/GetFailuresPacket`,\r\n\tparams: { userId, role },\r\n\thasLoading: false\r\n});\r\n\r\nexport const SetFailurePacketValidInvalidRequest = (userId, id) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}FailuresTracker/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}FailuresTracker/GetFailurePacketDetails`,\r\n\tparams: { id, userId }\r\n});\r\n\r\nexport const GetFailurePacketCommentsRequest = (id) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}FailuresTracker/GetFailurePacketComments`,\r\n\tparams: { id }\r\n});\r\n\r\nexport const SetFailurePacketDetailsRequest = (trackerPacketDetailsDto, userId) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}FailuresTracker/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}FailuresTracker/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}FailuresTracker/ExportFailuresPacket`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const GetPacketLevelsRequest = (type, level) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}FailuresTracker/GetPacketLevels`,\r\n\tparams: { type, level }\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, date, side, userId, filename) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Message`,\r\n\tparams: { id, date, side, userId, filename }\r\n});\r\n\r\nexport const GetLayer3MessageMtRequest = (id, date, side, userId, filename) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Message`,\r\n\tparams: { id, date, side, userId, filename }\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, eventTime) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3DriveTest`,\r\n\tparams: { userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime }\r\n});\r\n\r\nexport const GetLayer3KpisRequest = (filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}Layer3/GetLayer3Kpis`,\r\n\tparams: { filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime }\r\n});\r\n","import { DownloadFile, enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetFailuresPacketRequest,\r\n\tSetFailurePacketValidInvalidRequest,\r\n\tGetFailurePacketDetailsRequest,\r\n\tGetFailurePacketCommentsRequest,\r\n\tSetFailurePacketDetailsRequest,\r\n\tAddPacketCommentRequest,\r\n\tExportFailuresPacketRequest,\r\n\tGetPacketLevelsRequest,\r\n\t// Layer 3\r\n\tGetLayer3Request,\r\n\tGetLayer3MessageMoRequest,\r\n\tGetLayer3MessageMtRequest,\r\n\tGetLayer3FailureRequest,\r\n\tGetLayer3DriveTestRequest,\r\n\tGetLayer3KpisRequest\r\n} from '../requests/PacketRequest';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG = 'TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG';\r\nexport const GET_FAILURES_PACKET = 'GET_FAILURES_PACKET';\r\nexport const TOGGLE_PACKET_EDIT_FAILURE_DIALOG = 'TOGGLE_PACKET_EDIT_FAILURE_DIALOG';\r\nexport const GET_FAILURE_PACKET_DETAILS = 'GET_FAILURE_PACKET_DETAILS';\r\nexport const GET_FAILURE_PACKET_COMMENTS = 'GET_FAILURE_PACKET_COMMENTS';\r\nexport const EXPORT_FAILURES_PACKET = 'EXPORT_FAILURES_PACKET';\r\nexport const TOGGLE_LAYER_3_DIALOG = 'TOGGLE_LAYER_3_DIALOG';\r\nexport const GET_PACKET_CFN_2_LEVELS = 'GET_PACKET_CFN_2_LEVELS';\r\nexport const GET_PACKET_CFN_3_LEVELS = 'GET_PACKET_CFN_3_LEVELS';\r\n// layer 3\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\n// Other\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onToggleOptionsFailuresTrackerDialog = visible => ({\r\n\ttype: TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG,\r\n\tvisible\r\n});\r\n\r\n// Failures\r\nconst onGetFailuresPacket = (value) => ({\r\n\ttype: GET_FAILURES_PACKET,\r\n\tfailures: value\r\n});\r\n\r\nconst onTogglePacketEditFailureDialog = (visible, tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp) => ({\r\n\ttype: TOGGLE_PACKET_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 onGetFailurePacketDetails = (value) => ({\r\n\ttype: GET_FAILURE_PACKET_DETAILS,\r\n\tfailure: value\r\n});\r\n\r\nconst onGetFailurePacketComments = (value) => ({\r\n\ttype: GET_FAILURE_PACKET_COMMENTS,\r\n\tcomments: value\r\n});\r\n\r\nconst onGetPacketCfn2Levels = (value) => ({\r\n\ttype: GET_PACKET_CFN_2_LEVELS,\r\n\tpacketCfn2Levels: value\r\n});\r\n\r\nconst onGetPacketCfn3Levels = (value) => ({\r\n\ttype: GET_PACKET_CFN_3_LEVELS,\r\n\tpacketCfn3Levels: 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\n// Other\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const ToggleOptionsFailuresTrackerDialog = visible => dispatch => {\r\n\tdispatch(onToggleOptionsFailuresTrackerDialog(visible));\r\n};\r\n\r\n// Failures\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, role, id) => async (dispatch) => {\r\n\tawait SetFailurePacketValidInvalidRequest(userId, id).then(response => {\r\n\t\tdispatch(GetFailuresPacket(userId, role));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\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, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp) => (dispatch) => {\r\n\tdispatch(onTogglePacketEditFailureDialog(visible, tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp));\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 GetFailurePacketComments = (id) => async (dispatch) => {\r\n\tawait GetFailurePacketCommentsRequest(id).then(response => {\r\n\t\tdispatch(onGetFailurePacketComments(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, role) => async (dispatch) => {\r\n\tawait SetFailurePacketDetailsRequest(failure, userId).then(response => {\r\n\t\tdispatch(GetFailuresPacket(userId, role));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\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(GetFailurePacketComments(id));\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\r\nexport const GetPacketCfn2Levels = (level) => async (dispatch) => {\r\n\tawait GetPacketLevelsRequest('Cfn2Levels', level).then(response => {\r\n\t\tdispatch(onGetPacketCfn2Levels(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 GetPacketCfn3Levels = (level) => async (dispatch) => {\r\n\tawait GetPacketLevelsRequest('Cfn3Levels', level).then(response => {\r\n\t\tdispatch(onGetPacketCfn3Levels(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\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 SetLayer3 = (data) => async (dispatch) => {\r\n\tdispatch(onGetLayer3(data));\r\n};\r\n\r\nexport const GetLayer3MessageMo = (id, date, side, userId, filename) => async (dispatch) => {\r\n\tawait GetLayer3MessageMoRequest(id, date, side, userId, filename).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, date, side, userId, filename) => async (dispatch) => {\r\n\tawait GetLayer3MessageMtRequest(id, date, side, userId, filename).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, eventTime) => async (dispatch) => {\r\n\tawait GetLayer3DriveTestRequest(userId, kpi, filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime).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, eventTime) => async (dispatch) => {\r\n\tawait GetLayer3KpisRequest(filenameMoc, filenameMtc, failureSide, initialTimestamp, eventTime).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_PACKET,\r\n\tTOGGLE_PACKET_EDIT_FAILURE_DIALOG,\r\n\tGET_FAILURE_PACKET_DETAILS,\r\n\tGET_FAILURE_PACKET_COMMENTS,\r\n\tEXPORT_FAILURES_PACKET,\r\n\tGET_PACKET_CFN_2_LEVELS,\r\n\tGET_PACKET_CFN_3_LEVELS,\r\n\t// Layer 3\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/PacketActions';\r\n\r\nconst initialState = {\r\n\tfailures: 'none',\r\n\tpacketEditFailureDialogVisibility: false,\r\n\tformState: {\r\n\t\tvalues: {\r\n\t\t\tfailureSource: 'fail',\r\n\t\t\tlayer3Kpi: 'rsrp'\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\tfailuresPacketFilePath: ''\r\n};\r\n\r\nconst packetReducer = (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_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 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\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_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: { ...state.formState.values, ...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 GET_FAILURE_PACKET_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_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\tfailuresPacketFilePath: action.failuresPacketFilePath\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_PACKET_CFN_2_LEVELS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tpacketCfn2Levels: action.packetCfn2Levels\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_PACKET_CFN_3_LEVELS: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tpacketCfn3Levels: action.packetCfn3Levels\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Layer 3\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 packetReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetFailureDropdownsRequest = (type) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}FailuresTracker/GetFailureDropdowns`,\r\n\tparams: { type }\r\n});\r\n\r\nexport const AddDropdownFieldRequest = (userId, name, value, relations) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}FailuresTracker/AddDropdownField`,\r\n\tdata: { userId, name, value, relations }\r\n});\r\n\r\nexport const RemoveDropdownFieldRequest = (userId, name, value, id, relations) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}FailuresTracker/RemoveDropdownField`,\r\n\tdata: { userId, name, value, id, relations }\r\n});\r\n","import { DownloadFile, enqueueSnackbar } from 'actions';\r\n\r\nimport {\r\n\tGetFailureDropdownsRequest,\r\n\tAddDropdownFieldRequest,\r\n\tRemoveDropdownFieldRequest\r\n} from '../requests/FailuresRequest';\r\n\r\nexport const SET_FORM_STATE = 'SET_FORM_STATE';\r\nexport const TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG = 'TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG';\r\nexport const TOGGLE_OPTIONS_FAILURES_TRACKER_FORM = 'TOGGLE_OPTIONS_FAILURES_TRACKER_FORM';\r\nexport const GET_FAILURES_DROPDOWNS = 'GET_FAILURES_DROPDOWNS';\r\nexport const ADD_DROPDOWN_FIELD = 'ADD_DROPDOWN_FIELD';\r\n\r\nconst onSetFormState = (value) => ({\r\n\ttype: SET_FORM_STATE,\r\n\tformState: value\r\n});\r\n\r\nconst onToggleOptionsFailuresTrackerDialog = visible => ({\r\n\ttype: TOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleOptionsFailuresTrackerForm = (visible, dropdownLabel, dropdownName, dropdownValue, dropdownId) => ({\r\n\ttype: TOGGLE_OPTIONS_FAILURES_TRACKER_FORM,\r\n\tvisible,\r\n\tdropdownLabel,\r\n\tdropdownName,\r\n\tdropdownValue,\r\n\tdropdownId\r\n});\r\n\r\nconst onGetFailureDropdowns = (value) => ({\r\n\ttype: GET_FAILURES_DROPDOWNS,\r\n\tdropdowns: value\r\n});\r\n\r\nconst onAddDropdownField = value => ({\r\n\ttype: ADD_DROPDOWN_FIELD,\r\n\tnewDropdownField: value\r\n});\r\n\r\nexport const SetFormState = (value) => (dispatch) => {\r\n\tdispatch(onSetFormState(value));\r\n};\r\n\r\nexport const ToggleOptionsFailuresTrackerDialog = visible => dispatch => {\r\n\tdispatch(onToggleOptionsFailuresTrackerDialog(visible));\r\n};\r\n\r\nexport const ToggleOptionsFailuresTrackerForm = (visible, dropdownLabel, dropdownName, dropdownValue, dropdownId) => dispatch => {\r\n\tdispatch(onToggleOptionsFailuresTrackerForm(visible, dropdownLabel, dropdownName, dropdownValue, dropdownId));\r\n};\r\n\r\nexport const GetFailureDropdowns = (type) => async (dispatch) => {\r\n\tawait GetFailureDropdownsRequest(type).then(response => {\r\n\t\tdispatch(onGetFailureDropdowns(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 AddDropdownField = (userId, name, value, relations) => async dispatch => {\r\n\tawait AddDropdownFieldRequest(userId, name, value, relations)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(GetFailureDropdowns('all'));\r\n\t\t\tdispatch(onAddDropdownField(response.data));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n};\r\n\r\nexport const RemoveDropdownField = (userId, name, value, id, relations) => async dispatch => {\r\n\tawait RemoveDropdownFieldRequest(userId, name, value, id, relations)\r\n\t\t.then(response => {\r\n\t\t\tdispatch(GetFailureDropdowns('all'));\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tif (error) {\r\n\t\t\t\tdispatch(\r\n\t\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\t\tmessage: error.message,\r\n\t\t\t\t\t\toptions: { variant: error.variant }\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n};\r\n","import {\r\n\tSET_FORM_STATE,\r\n\tGET_FAILURES_DROPDOWNS,\r\n\tTOGGLE_OPTIONS_FAILURES_TRACKER_DIALOG,\r\n\tTOGGLE_OPTIONS_FAILURES_TRACKER_FORM,\r\n\tADD_DROPDOWN_FIELD\r\n} from '../actions/FailuresActions';\r\n\r\nconst initialState = {\r\n\toptionsFailuresTrackerDialogVisibility: false,\r\n\toptionsFailuresTrackerFormVisibility: false,\r\n\tdropdowns: [],\r\n\tnewDropdownField: '',\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 failuresReducer = (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_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_OPTIONS_FAILURES_TRACKER_DIALOG: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toptionsFailuresTrackerDialogVisibility: action.visible\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase TOGGLE_OPTIONS_FAILURES_TRACKER_FORM: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\toptionsfailuresTrackerFormVisibility: action.visible,\r\n\t\t\t\t\t\t\tdropdownLabel: action.dropdownLabel,\r\n\t\t\t\t\t\t\tdropdownName: action.dropdownName,\r\n\t\t\t\t\t\t\tdropdownValue: action.dropdownValue,\r\n\t\t\t\t\t\t\tdropdownId: action.dropdownId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase ADD_DROPDOWN_FIELD: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tnewDropdownField: action.newDropdownField\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdefault: {\r\n\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t}\r\n\t}\r\n};\r\n\r\nexport default failuresReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest.js';\r\n\r\nexport const GetSitesOptIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteOptimizations/GetSitesOptIncidents`,\r\n\tparams: { userId, role }\r\n});\r\n\r\nexport const GetSiteOptIncidentDetailsRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteOptimizations/GetSiteOptIncidentDetails`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const GetSiteOptIncidentDropdownsRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteOptimizations/GetSiteOptIncidentDropdowns`\r\n});\r\n\r\nexport const EditSiteOptIncidentDetailsRequest = (siteOptimizationsDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteOptimizations/EditSiteOptIncidentDetails`,\r\n\tdata: siteOptimizationsDto\r\n});\r\n\r\nexport const CreateSiteOptIncidentRequest = (siteOptimizationsDto) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}SiteOptimizations/CreateSiteOptIncident`,\r\n\tdata: siteOptimizationsDto\r\n});\r\n\r\nexport const DeleteSiteOptIncidentRequest = (userId, tableId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteOptimizations/DeleteSiteOptIncident`,\r\n\tparams: { userId, tableId }\r\n});\r\n\r\nexport const ExportSitesOptIncidentsRequest = (userId, role) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteOptimizations/ExportSitesOptIncidents`,\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}SiteOptimizations/GetAutocompleteFields`,\r\n\tparams: { siteId }\r\n});\r\n\r\nexport const GetDriveTestsCitiesRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteOptimizations/GetDriveTestsCities`,\r\n});\r\n\r\nexport const GetDriveTestsDrivesRequest = (city) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}SiteOptimizations/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}SiteOptimizations/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}SiteOptimizations/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}SiteOptimizations/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}SiteOptimizations/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}SiteOptimizations/RemoveAttachment`,\r\n\tparams: { userId, tableId }\r\n});\r\n","import { DownloadFile, enqueueSnackbar, UploadFile } from 'actions';\r\nimport {\r\n\tGetSitesOptIncidentsRequest,\r\n\tGetSiteOptIncidentDetailsRequest,\r\n\tGetSiteOptIncidentDropdownsRequest,\r\n\tEditSiteOptIncidentDetailsRequest,\r\n\tCreateSiteOptIncidentRequest,\r\n\tDeleteSiteOptIncidentRequest,\r\n\tExportSitesOptIncidentsRequest,\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/SiteOptRequests';\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 onGetSitesOptIncidents = (value) => ({\r\n\ttype: GET_OPT_SITE_TRACKER,\r\n\tincidents: value\r\n});\r\n\r\nconst onToggleSiteOptDialog = (visible, tableId) => ({\r\n\ttype: TOGGLE_OPT_SITE_DIALOG,\r\n\tvisible,\r\n\ttableId\r\n});\r\n\r\nconst onGetSiteOptIncidentDetails = (value) => ({\r\n\ttype: GET_OPT_SITE_TRACKER_DETAILS,\r\n\tincidentDetails: value\r\n});\r\n\r\nconst onGetSiteOptIncidentDropdowns = (value) => ({\r\n\ttype: GET_OPT_SITE_TRACKER_DROPDOWNS,\r\n\tdropdowns: value\r\n});\r\n\r\nconst onToggleDeleteSiteOptDialog = (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 onToggleAttachFileSiteOptDialog = (visible) => ({\r\n\ttype: TOGGLE_ATTACH_FILE_OPT_SITE_DIALOG,\r\n\tvisible\r\n});\r\n\r\nconst onToggleRemoveFileSiteOptDialog = (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 GetSitesOptIncidents = (userId, role) => async (dispatch) => {\r\n\tawait GetSitesOptIncidentsRequest(userId, role).then(response => {\r\n\t\tdispatch(onGetSitesOptIncidents(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 ToggleSiteOptDialog = (visible, tableId) => (dispatch) => {\r\n\tdispatch(onToggleSiteOptDialog(visible, tableId));\r\n};\r\n\r\nexport const GetSiteOptIncidentDetails = (userId, tableId) => async (dispatch) => {\r\n\tawait GetSiteOptIncidentDetailsRequest(userId, tableId).then(response => {\r\n\t\tdispatch(onGetSiteOptIncidentDetails(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 GetSiteOptIncidentDropdowns = (userId, tableId) => async (dispatch) => {\r\n\tawait GetSiteOptIncidentDropdownsRequest(userId, tableId).then(response => {\r\n\t\tdispatch(onGetSiteOptIncidentDropdowns(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 EditSiteOptIncidentDetails = (siteOptimizationsDto) => async (dispatch) => {\r\n\tawait EditSiteOptIncidentDetailsRequest(siteOptimizationsDto).then(response => {\r\n\t\tdispatch(GetSitesOptIncidents());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const CreateSiteOptIncident = (siteOptimizationsDto) => async (dispatch) => {\r\n\tawait CreateSiteOptIncidentRequest(siteOptimizationsDto).then(response => {\r\n\t\tdispatch(GetSitesOptIncidents());\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const ToggleDeleteSiteOptDialog = (visible, tableId) => (dispatch) => {\r\n\tdispatch(onToggleDeleteSiteOptDialog(visible, tableId));\r\n};\r\n\r\nexport const DeleteSiteOptIncident = (userId, tableId) => async (dispatch) => {\r\n\tawait DeleteSiteOptIncidentRequest(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 ExportSitesOptIncidents = (userId, role) => async (dispatch) => {\r\n\tawait ExportSitesOptIncidentsRequest(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 ToggleAttachFileSiteOptDialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleAttachFileSiteOptDialog(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 ToggleRemoveFileSiteOptDialog = (visible) => (dispatch) => {\r\n\tdispatch(onToggleRemoveFileSiteOptDialog(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};\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/SiteOptActions';\r\n\r\nconst initialState = {\r\n\tincidents: [],\r\n\tincidentDetails: [],\r\n\tSiteOptDialogVisibility: false,\r\n\tdropdowns: [],\r\n\tsiteOptimizationsDto: [],\r\n\ttableId: '',\r\n\tdeleteSiteOptDialogVisibility: false,\r\n\tattachFileSiteOptDialogVisibility: false,\r\n\tremoveFileSiteOptDialogVisibility: 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 siteOptReducer = (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\tSiteOptDialogVisibility: 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\tincidentDetails: action.incidentDetails\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\tdeleteSiteOptDialogVisibility: 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\tattachFileSiteOptDialogVisibility: 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\tremoveFileSiteOptDialogVisibility: 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 siteOptReducer;\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 repositoryPdfReducer = (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 repositoryPdfReducer;\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 {\r\n\tSET_FORM_STATE,\r\n\tGET_REPOSITORY_FILES,\r\n\tTOGGLE_REMOVE_REPOSITORY_FILE_DIALOG\r\n} from '../actions/RepositoryExcelActions';\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\trepositoryExcelInputFilePath: ''\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 repositoryExcelReducer = (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};\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 repositoryExcelReducer;\r\n","import config from '../../../configuration/configuration.js';\r\nimport AxiosRequest from '../../../utils/AxiosRequest';\r\n\r\nexport const GetKpiFilesTreeRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DriveTestUpload/GetMapKpiFilePaths`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const SyncFtpTreeRequest = (userId) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DriveTestUpload/SyncFtpTree`,\r\n\tparams: { userId }\r\n});\r\n\r\nexport const GetKpiProcessTableRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DriveTestUpload/GetKpiProcessTable`,\r\n\tparams: {}\r\n});\r\n\r\nexport const GetTreeLastUpdateRequest = () => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DriveTestUpload/GetTreeLastUpdate`,\r\n\tparams: {}\r\n});\r\n\r\nexport const RunKpiFilesParserRequest = (userId, selectedFiles) => AxiosRequest({\r\n\tmethod: 'POST',\r\n\turl: `${config.API_URL}DriveTestUpload/RunMapKpiFilesParser`,\r\n\tdata: { userId, selectedFiles }\r\n});\r\n\r\nexport const SearchFTPDirectoryRequest = (userId, searchPath) => AxiosRequest({\r\n\tmethod: 'GET',\r\n\turl: `${config.API_URL}DriveTestUpload/GetTreeFromFTPDirectory`,\r\n\tparams: { userId, searchPath }\r\n});\r\n","import { enqueueSnackbar, UploadMultipleFiles, DownloadFile, UploadFiles } from 'actions';\r\n\r\nimport {\r\n\tGetKpiFilesTreeRequest,\r\n\tRunKpiFilesParserRequest,\r\n\tGetTreeLastUpdateRequest,\r\n\tSyncFtpTreeRequest,\r\n\tGetKpiProcessTableRequest,\r\n\tSearchFTPDirectoryRequest\r\n} from '../requests/DriveTestUploadRequests';\r\n\r\nexport const TOGGLE_KPIS_UPLOAD_DIALOG = 'TOGGLE_KPIS_UPLOAD_DIALOG';\r\nexport const GET_KPI_FILES_TREE = 'GET_KPI_FILES_TREE';\r\nexport const GET_TREE_LAST_UPDATE = 'GET_TREE_LAST_UPDATE';\r\nexport const GET_KPI_PROCESS_TABLE = 'GET_KPI_PROCESS_TABLE';\r\nexport const SET_SELECT_FILES = 'SET_SELECT_FILES';\r\n\r\nconst onSetSelectedFiles = (value) => ({\r\n\ttype: SET_SELECT_FILES,\r\n\tselectedFiles: value\r\n});\r\n\r\nexport const SetSelectedFiles = (value) => (dispatch) => {\r\n\tdispatch(onSetSelectedFiles(value));\r\n};\r\n\r\nconst onToggleKpisUploadDialog = (visible) => ({\r\n\ttype: TOGGLE_KPIS_UPLOAD_DIALOG,\r\n\tvisible\r\n});\r\n\r\nexport const ToggleKpisUploadDialog = (visible) => dispatch => {\r\n\tdispatch(onToggleKpisUploadDialog(visible));\r\n};\r\n\r\nconst onGetKpiFilesTree = (value) => ({\r\n\ttype: GET_KPI_FILES_TREE,\r\n\tkpiFilesTree: value\r\n});\r\n\r\nexport const GetKpiFilesTree = (userId) => async (dispatch) => {\r\n\tawait GetKpiFilesTreeRequest(userId).then(response => {\r\n\t\tdispatch(onGetKpiFilesTree(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst onGetKpiProcessTable = (value) => ({\r\n\ttype: GET_KPI_PROCESS_TABLE,\r\n\tkpiProcessTable: value\r\n});\r\n\r\nexport const GetKpiProcessTable = () => async (dispatch) => {\r\n\tawait GetKpiProcessTableRequest().then(response => {\r\n\t\tdispatch(onGetKpiProcessTable(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nconst onGetTreeLastUpdate = (value) => ({\r\n\ttype: GET_TREE_LAST_UPDATE,\r\n\ttreeLastUpdate: value\r\n});\r\n\r\nexport const GetTreeLastUpdate = () => async (dispatch) => {\r\n\tawait GetTreeLastUpdateRequest().then(response => {\r\n\t\tdispatch(onGetTreeLastUpdate(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 SyncFtpTree = (userId) => async (dispatch) => {\r\n\tawait SyncFtpTreeRequest(userId).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 RunKpiFilesParser = (userId, selectedFiles) => async (dispatch) => {\r\n\tawait RunKpiFilesParserRequest(userId, selectedFiles).then(response => {\r\n\t\tif (response.data.includes('Unavailable')) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'warning' } }));\r\n\t\t} else {\r\n\t\t\tdispatch(enqueueSnackbar({ message: response.data, options: { variant: 'success' } }));\r\n\t\t}\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n\r\nexport const SearchFTPDirectory = (userId, searchPath) => async (dispatch) => {\r\n\tawait SearchFTPDirectoryRequest(userId, searchPath).then(response => {\r\n\t\tdispatch(onGetKpiFilesTree(response.data));\r\n\t}).catch((error) => {\r\n\t\tif (error) {\r\n\t\t\tdispatch(enqueueSnackbar({ message: error.message, options: { variant: error.variant } }));\r\n\t\t}\r\n\t});\r\n};\r\n","import {\r\n\tTOGGLE_KPIS_UPLOAD_DIALOG,\r\n\tGET_KPI_FILES_TREE,\r\n\tGET_TREE_LAST_UPDATE,\r\n\tGET_KPI_PROCESS_TABLE,\r\n\tSET_SELECT_FILES\r\n} from '../actions/DriveTestUploadActions';\r\n\r\nconst initialState = {\r\n\tkpiFilesTree: {\r\n\t\tdirectory: '',\r\n\t\tftpFileInfo: []\r\n\t},\r\n\tkpiProcessTable: [],\r\n\tkpisUploadDialogVisibility: false,\r\n\ttreeLastUpdate: '',\r\n\tselectedFiles: []\r\n};\r\n\r\nconst driveTestUploadReducer = (state = initialState, action) => {\r\n\tswitch (action.type) {\r\n\t\t\t\t\tcase TOGGLE_KPIS_UPLOAD_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\tkpisUploadDialogVisibility: 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_KPI_FILES_TREE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tkpiFilesTree: action.kpiFilesTree\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_TREE_LAST_UPDATE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\ttreeLastUpdate: action.treeLastUpdate\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase GET_KPI_PROCESS_TABLE: {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...state,\r\n\t\t\t\t\t\t\tkpiProcessTable: action.kpiProcessTable\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcase SET_SELECT_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\tselectedFiles: action.selectedFiles\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 driveTestUploadReducer;\r\n","import { combineReducers } from 'redux';\r\n\r\nimport sessionReducer from './sessionReducer';\r\nimport notifierReducer from './notifierReducer';\r\nimport usersReducer from '../views/Management/reducers/UsersReducer';\r\nimport operatorsReducer from '../views/Management/reducers/OperatorsReducer';\r\nimport settingsReducer from '../views/Management/reducers/SettingsReducer';\r\nimport dashboardInspectReducer from '../views/Dashboard/reducers/DashboardInspectReducer';\r\nimport mapReducer from '../components/Map/reducers/MapReducer';\r\nimport dualMapReducer from '../views/DualMap/reducers/DualMapReducer';\r\nimport voiceReducer from '../views/FailuresTracker/reducers/VoiceReducer';\r\nimport packetReducer from '../views/FailuresTracker/reducers/PacketReducer';\r\nimport failuresReducer from '../views/FailuresTracker/reducers/FailuresReducer';\r\nimport siteOptReducer from '../views/SiteOptimizationsTracker/reducers/SiteOptReducer';\r\nimport repositoryPdfReducer from '../views/RepositoryPdf/reducers/RepositoryPdfReducer';\r\nimport repositoryExcelReducer from '../views/RepositoryExcel/reducers/RepositoryExcelReducer';\r\nimport driveTestUploadReducer from '../views/DriveTestUpload/reducers/DriveTestUploadReducer';\r\n\r\nconst rootReducer = combineReducers({\r\n\tsession: sessionReducer,\r\n\tusersReducer,\r\n\tnotifierReducer,\r\n\toperatorsReducer,\r\n\tsettingsReducer,\r\n\tdashboardInspectReducer,\r\n\tmapReducer,\r\n\tdualMapReducer,\r\n\tvoiceReducer,\r\n\tpacketReducer,\r\n\tfailuresReducer,\r\n\tsiteOptReducer,\r\n\trepositoryPdfReducer,\r\n\trepositoryExcelReducer,\r\n\tdriveTestUploadReducer\r\n});\r\n\r\nexport default rootReducer;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { AppBar, Toolbar } from '@mui/material';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\tboxShadow: 'none',\r\n\t},\r\n}));\r\n\r\nconst Topbar = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\"Logo\"\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nTopbar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Topbar;\r\n","import React, { Fragment, Suspense } from 'react';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { LinearProgress } from '@mui/material';\r\n\r\nimport { Topbar } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tcontent: {\r\n\t\theight: '100%',\r\n\t\tpaddingTop: 56,\r\n\t\t[theme.breakpoints.up('sm')]: {\r\n\t\t\tpaddingTop: 64,\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Auth = (props) => {\r\n\tconst { route } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t}>\r\n\t\t\t\t\t{renderRoutes(route.routes)}\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nAuth.propTypes = {\r\n\troute: PropTypes.object,\r\n};\r\n\r\nexport default Auth;\r\n","import React, { Suspense } from 'react';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { LinearProgress } from '@mui/material';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t},\r\n}));\r\n\r\nconst Error = (props) => {\r\n\tconst { route } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t}>\r\n\t\t\t\t{renderRoutes(route.routes)}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nError.propTypes = {\r\n\troute: PropTypes.object,\r\n};\r\n\r\nexport default Error;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport {\r\n\tHubConnectionBuilder,\r\n} from '@aspnet/signalr'; // version 1.0.4\r\n\r\n// action for user authentication and receiving the access_token\r\nimport * as actions from '../../actions';\r\nimport config from '../../configuration/configuration.js';\r\n\r\nconst startSignalRConnection = (connection, origin) => {\r\n\tif (origin !== undefined) {\r\n\t\tconnection.start()\r\n\t\t\t.then(() => {\r\n\t\t\t})\r\n\t\t\t.catch(err => {\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nconst NotificationHub = () => {\r\n\tconst connection = useRef(null);\r\n\tconst dispatch = useDispatch();\r\n\tconst enqueueSnackbar = (...args) => dispatch(actions.enqueueSnackbar(...args));\r\n\r\n\tconst NotificationRecieved = (info) => {\r\n\t\tenqueueSnackbar({\r\n\t\t\tmessage: info.title,\r\n\t\t\toptions: {\r\n\t\t\t\tkey: new Date().getTime() + Math.random(),\r\n\t\t\t\tvariant: info.variant,\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(actions.FetchNotifications());\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\t// register signalR after the user logged in\r\n\t\tif (connection.current === null && localStorage.getItem(config.TOKEN_KEY)) {\r\n\t\t\tconst urlRoot = config.API_URL;\r\n\t\t\tconst connectionHub = `${urlRoot}notificationhub?token=${localStorage.getItem(config.TOKEN_KEY)}`;\r\n\r\n\t\t\t// create the connection instance\r\n\t\t\tconnection.current = new HubConnectionBuilder()\r\n\t\t\t\t.withUrl(connectionHub)\r\n\t\t\t\t.build();\r\n\r\n\t\t\t// event handlers, you can use these to dispatch actions to update your Redux store\r\n\t\t\tconnection.current.on('NewNotification', NotificationRecieved);\r\n\r\n\t\t\t// re-establish the connection if connection dropped\r\n\t\t\tconnection.current.onclose((error) => setTimeout(startSignalRConnection(connection.current, error), 5000));\r\n\r\n\t\t\tdispatch(actions.FetchNotifications());\r\n\t\t\tstartSignalRConnection(connection.current, 'setup');\r\n\t\t}\r\n\r\n\t\treturn (() => {\r\n\t\t\tif (connection.current) {\r\n\t\t\t\tconnection.current.stop();\r\n\t\t\t}\r\n\t\t});\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\tnull\r\n\t);\r\n};\r\n\r\nexport default NotificationHub;\r\n","import SupervisorAccountIcon from '@mui/icons-material/SupervisorAccount';\r\nimport HomeIcon from '@mui/icons-material/HomeOutlined';\r\nimport SettingsIcon from '@mui/icons-material/SettingsOutlined';\r\nimport DesktopMacIcon from '@mui/icons-material/DesktopMac';\r\nimport MapIcon from '@mui/icons-material/Map';\r\nimport AssignmentIcon from '@mui/icons-material/Assignment';\r\nimport DeveloperBoardIcon from '@mui/icons-material/DeveloperBoard';\r\nimport PhishingRoundedIcon from '@mui/icons-material/PhishingRounded';\r\nimport BrandingWatermarkIcon from '@mui/icons-material/BrandingWatermark';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport AddRoadIcon from '@mui/icons-material/AddRoad';\r\nimport config from '../../../../configuration/configuration.js';\r\n\r\nexport default [\r\n\t{\r\n\t\ttitle: '',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Home',\r\n\t\t\t\thref: '/home',\r\n\t\t\t\ticon: HomeIcon,\r\n\t\t\t\t// roles: ['Administrator', ...]\r\n\t\t\t\t// projects: ['Operations'],\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: 'Modules',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Failures Tracker',\r\n\t\t\t\thref: '/modules/failuresTracker/0',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ'],\r\n\t\t\t\ticon: AssignmentIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Dual Map',\r\n\t\t\t\thref: '/modules/dualMap',\r\n\t\t\t\troles: ['Administrator', 'Manager', 'CelfinetHQ'],\r\n\t\t\t\ticon: MapIcon\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\troles: ['Administrator', 'Manager', 'CelfinetHQ'],\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: 'Drive Test Upload',\r\n\t\t\t\thref: '/modules/driveTestUpload',\r\n\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\ticon: AddRoadIcon\r\n\t\t\t},\r\n\t\t\t// \t\t{\r\n\t\t\t// \t\t\ttitle: 'Site Optimizations',\r\n\t\t\t// \t\t\thref: '/modules/siteOptTracker',\r\n\t\t\t// \t\t\ticon: DeveloperBoardIcon\r\n\t\t\t// \t\t},\r\n\t\t\t// \t\t{\r\n\t\t\t// \t\t\ttitle: 'Dashboards',\r\n\t\t\t// \t\t\t// href: '/modules',\r\n\t\t\t// \t\t\ticon: PhishingRoundedIcon,\r\n\t\t\t// \t\t\tchildren: [\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\ttitle: 'Failure Overview',\r\n\t\t\t// \t\t\t\t\thref: '/modules/dashboard1',\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\ttitle: 'GEO Tracking',\r\n\t\t\t// \t\t\t\t\thref: '/modules/dashboard2',\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\ttitle: 'Network Audit',\r\n\t\t\t// \t\t\t\t\thref: '/modules/dashboard3',\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\ttitle: 'City Quality Assurance',\r\n\t\t\t// \t\t\t\t\thref: '/modules/dashboard4',\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\ttitle: '5G Cell Count',\r\n\t\t\t// \t\t\t\t\thref: '/modules/dashboard5',\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\ttitle: ' DSS Utilization',\r\n\t\t\t// \t\t\t\t\thref: '/modules/dashboard6',\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\ttitle: 'OSS KPI Dashboard',\r\n\t\t\t// \t\t\t\t\thref: '/modules/dashboard7',\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t],\r\n\t\t\t// \t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: 'Management',\r\n\t\tpages: [\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Manage',\r\n\t\t\t\thref: '/management',\r\n\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\ticon: SupervisorAccountIcon,\r\n\t\t\t\tchildren: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Operators',\r\n\t\t\t\t\t\thref: '/management/operators',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttitle: 'Users',\r\n\t\t\t\t\t\thref: '/management/users',\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Hangfire',\r\n\t\t\t\thref: `${config.API_URL}hangfire?access_token={token}`,\r\n\t\t\t\ttarget: '_blank',\r\n\t\t\t\troles: ['Administrator'],\r\n\t\t\t\ticon: DesktopMacIcon\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttitle: 'Settings',\r\n\t\t\t\thref: '/management/settings',\r\n\t\t\t\ticon: SettingsIcon\r\n\t\t\t},\r\n\t\t],\r\n\t}\r\n];\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport _ from 'underscore';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Drawer, Divider, Paper, Avatar, Typography, Hidden } from '@mui/material';\r\n\r\nimport FolderIcon from '@mui/icons-material/FolderOutlined';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport getInitials from 'utils/getInitials';\r\nimport { Navigation } from 'components';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport navigationConfig from './navigationConfig';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\toverflowY: 'auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n\tprofile: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\talignItems: 'center',\r\n\t\tminHeight: 'fit-content',\r\n\t},\r\n\tavatar: {\r\n\t\twidth: 60,\r\n\t\theight: 60,\r\n\t},\r\n\tname: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n\tnavigation: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst NavBar = (props) => {\r\n\tconst { openMobile, onMobileClose, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (openMobile) {\r\n\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\tonMobileClose && onMobileClose();\r\n\t\t}\r\n\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [router.location.pathname]);\r\n\r\n\tif (user.projects) {\r\n\t\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 '@mui/styles';\r\nimport {\r\n\tAppBar,\r\n\tBadge,\r\n\tButton,\r\n\tIconButton,\r\n\tToolbar,\r\n\tHidden,\r\n\tInput,\r\n\tcolors,\r\n\tPopper,\r\n\tPaper,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tClickAwayListener,\r\n} from '@mui/material';\r\nimport LockIcon from '@mui/icons-material/LockOutlined';\r\nimport NotificationsIcon from '@mui/icons-material/NotificationsOutlined';\r\nimport InputIcon from '@mui/icons-material/Input';\r\nimport MenuIcon from '@mui/icons-material/Menu';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport { PricingModal, NotificationsPopover } from 'components';\r\nimport * as actions from 'actions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tboxShadow: 'none',\r\n\t},\r\n\tflexGrow: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tsearch: {\r\n\t\tbackgroundColor: 'rgba(255,255,255, 0.1)',\r\n\t\tborderRadius: 4,\r\n\t\tflexBasis: 300,\r\n\t\theight: 36,\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tsearchIcon: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t\tcolor: 'inherit',\r\n\t},\r\n\tsearchInput: {\r\n\t\tflexGrow: 1,\r\n\t\tcolor: 'inherit',\r\n\t\t'& input::placeholder': {\r\n\t\t\topacity: 1,\r\n\t\t\tcolor: 'inherit',\r\n\t\t},\r\n\t},\r\n\tsearchPopper: {\r\n\t\tzIndex: theme.zIndex.appBar + 100,\r\n\t},\r\n\tsearchPopperContent: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\ttrialButton: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n\ttrialIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tnotificationsButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tnotificationsBadge: {\r\n\t\tbackgroundColor: colors.orange[600],\r\n\t},\r\n\tlogoutButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tlogoutIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst TopBar = (props) => {\r\n\tconst { onOpenNavBarMobile, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst { history } = useRouter();\r\n\tconst searchRef = useRef(null);\r\n\tconst dispatch = useDispatch();\r\n\tconst notificationsRef = useRef(null);\r\n\tconst [pricingModalOpen, setPricingModalOpen] = useState(false);\r\n\tconst [openSearchPopover, setOpenSearchPopover] = useState(false);\r\n\tconst [searchValue, setSearchValue] = useState('');\r\n\tconst [openNotifications, setOpenNotifications] = useState(false);\r\n\r\n\tconst notifications = useSelector((state) => state.session.notifications, shallowEqual);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst handleLogout = () => {\r\n\t\tdispatch(actions.logout());\r\n\t\thistory.push('/auth/login');\r\n\t};\r\n\r\n\tconst handlePricingOpen = () => {\r\n\t\tsetPricingModalOpen(true);\r\n\t};\r\n\r\n\tconst handlePricingClose = () => {\r\n\t\tsetPricingModalOpen(false);\r\n\t};\r\n\r\n\tconst handleNotificationsOpen = () => {\r\n\t\tsetOpenNotifications(true);\r\n\t};\r\n\r\n\tconst handleNotificationsClose = () => {\r\n\t\tsetOpenNotifications(false);\r\n\t};\r\n\r\n\tconst handleSearchChange = (event) => {\r\n\t\tsetSearchValue(event.target.value);\r\n\r\n\t\tif (event.target.value) {\r\n\t\t\tif (!openSearchPopover) {\r\n\t\t\t\tsetOpenSearchPopover(true);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tsetOpenSearchPopover(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleSearchPopverClose = () => {\r\n\t\tsetOpenSearchPopover(false);\r\n\t};\r\n\r\n\tconst popularSearches = [\r\n\t\t'Devias React Dashboard',\r\n\t\t'Devias',\r\n\t\t'Admin Pannel',\r\n\t\t'Project',\r\n\t\t'Pages',\r\n\t];\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\"Logo\"\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t

 Reliability Evolution

\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t{/* \r\n\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{popularSearches.map((search) => (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
*/}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t !i.readed).length}\r\n\t\t\t\t\t\t\tclasses={{ badge: classes.notificationsBadge }}\r\n\t\t\t\t\t\t\tvariant=\"dot\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tSign out\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nTopBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonOpenNavBarMobile: PropTypes.func,\r\n};\r\n\r\nexport default TopBar;\r\n","import axios from 'axios';\r\n\r\nconst instance = axios.create();\r\n\r\nexport default instance;\r\n","import React, { Suspense, useState, useEffect } from 'react';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { LinearProgress } from '@mui/material';\r\n\r\nimport NotificationHub from 'components/NotificationHub/NotificationHub.js';\r\nimport { NavBar, TopBar, /* ChatBar */ } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\twidth: '100%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\toverflow: 'hidden',\r\n\t},\r\n\ttopBar: {\r\n\t\tzIndex: 2,\r\n\t\tposition: 'relative',\r\n\t},\r\n\tcontainer: {\r\n\t\tdisplay: 'flex',\r\n\t\tflex: '1 1 auto',\r\n\t\toverflow: 'hidden',\r\n\t},\r\n\tnavBar: {\r\n\t\tzIndex: 3,\r\n\t\twidth: 256,\r\n\t\tminWidth: 256,\r\n\t\tflex: '0 0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\toverflowY: 'auto',\r\n\t\tflex: '1 1 auto',\r\n\t},\r\n}));\r\n\r\nconst Dashboard = (props) => {\r\n\tconst { route } = props;\r\n\tconst classes = useStyles();\r\n\r\n\tconst [openNavBarMobile, setOpenNavBarMobile] = useState(false);\r\n\r\n\tconst handleNavBarMobileOpen = () => {\r\n\t\tsetOpenNavBarMobile(true);\r\n\t};\r\n\r\n\tconst handleNavBarMobileClose = () => {\r\n\t\tsetOpenNavBarMobile(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t}>\r\n\t\t\t\t\t\t{renderRoutes(route.routes)}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t{/* */}\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nDashboard.propTypes = {\r\n\troute: PropTypes.object,\r\n};\r\n\r\nexport default Dashboard;\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tDrawer,\r\n\tList,\r\n\tListItem,\r\n\tListItemAvatar,\r\n\tListItemText,\r\n\tListSubheader,\r\n\tTypography,\r\n\tFab,\r\n\tBadge,\r\n} from '@mui/material';\r\nimport PeopleIcon from '@mui/icons-material/PeopleOutline';\r\n\r\nimport axios from 'utils/axios';\r\nimport { StatusBullet } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tdrawer: {\r\n\t\twidth: 280,\r\n\t},\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.white,\r\n\t},\r\n\tlist: {\r\n\t\tpadding: theme.spacing(1, 3),\r\n\t},\r\n\tlistItemText: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tlastActivity: {\r\n\t\twhiteSpace: 'nowrap',\r\n\t},\r\n\tfab: {\r\n\t\tposition: 'fixed',\r\n\t\tbottom: 32,\r\n\t\tright: 32,\r\n\t\tzIndex: theme.zIndex.drawer - 100,\r\n\t},\r\n}));\r\n\r\nconst ChatBar = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchData = () => {\r\n\t\t\taxios.get('/api/chat/activity').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetData(response.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchData();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst handleOpen = () => {\r\n\t\tsetOpen(true);\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tif (!data) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst onlineConnections = data.connections.filter(\r\n\t\t(connection) => connection.active\r\n\t).length;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{data.groups.map((group) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{group.name}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{data.connections\r\n\t\t\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t\t\t(connection) => group.id === connection.group\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t.map((connection) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{connection.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t{connection.active ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconnection.lastActivity\r\n\t\t\t\t\t\t\t\t\t\t\t\t).fromNow()}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nChatBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default ChatBar;\r\n","import React from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, Grid } from '@mui/material';\r\nimport { Page } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t},\r\n\tcontent: {\r\n\t\twidth: theme.breakpoints.values.md,\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: '80px 24px',\r\n\t\t[theme.breakpoints.up('md')]: {\r\n\t\t\tpadding: '160px 24px',\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Home = () => {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCustomer focus\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tWe only find success in our customer’s success.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tExcellence\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tOur clients know that we pursue nothing less than the highest quality standards in everything we do.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCollaboration\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tOur passion for teamwork leads to innovation, high level of effectiveness and continuous learning and improvement.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tAccountability\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tPeople who are not afraid to get their ideas off the ground are also proud to be held accountable for their results.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tPassion\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tOur passion is what keeps us relentlessly pushing for numerous game-changing innovations.\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default Home;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Card, Typography, Avatar } from '@mui/material';\r\n\r\nimport { Label } from 'components';\r\nimport gradients from 'utils/gradients';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tlabel: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\tbackgroundImage: gradients.blue,\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n}));\r\n\r\nconst TodaysMoney = (props) => {\r\n\tconst { className, title, text, icon, label, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{text}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{label && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{label.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{icon}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nTodaysMoney.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\ttext: PropTypes.string,\r\n\ticon: PropTypes.object,\r\n\tlabel: PropTypes.object\r\n};\r\n\r\nexport default TodaysMoney;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport Label from '../../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../../components/DataTable/DataTable.js';\r\nimport { ToggleAddEditUserDialog, ResendConfirmationEmail, DeactivateUser, ToggleDeleteUserDialog } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst UsersDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst _editUser = (userId) => {\r\n\t\tdispatch(ToggleAddEditUserDialog(true, userId));\r\n\t};\r\n\r\n\tconst _deleteUser = (userId) => {\r\n\t\tdispatch(ToggleDeleteUserDialog(true, userId));\r\n\t};\r\n\r\n\tconst _resendConfirmationEmail = (userId) => {\r\n\t\tdispatch(ResendConfirmationEmail(userId));\r\n\t};\r\n\r\n\tconst _deactivateUser = (userId) => {\r\n\t\tdispatch(DeactivateUser(userId, rest.user.role));\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{rowData[5] ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _deactivateUser(rowData[0])}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t _resendConfirmationEmail(rowData[0])}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t _editUser(rowData[0])}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t _deleteUser(rowData[0])}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t);\r\n\t};\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'email',\r\n\t\t\t\tlabel: 'Email',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'role',\r\n\t\t\t\tlabel: 'Role',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'operators',\r\n\t\t\t\tlabel: 'Operators',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\tconst values = value.split(',');\r\n\t\t\t\t\t\t\tconst sortedValues = _.sortBy(values, val => val);\r\n\t\t\t\t\t\t\tconst operators = sortedValues.map((operator, index) => (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t{operator}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\treturn operators;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'status',\r\n\t\t\t\tlabel: 'Status',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value !== null) {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{value\r\n\t\t\t\t\t\t\t\t\t\t? 'Email confirmed'\r\n\t\t\t\t\t\t\t\t\t\t: 'Email not confirmed'}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'online',\r\n\t\t\t\tlabel: 'Online',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value) => {\r\n\t\t\t\t\t\tif (value !== null) {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{value\r\n\t\t\t\t\t\t\t\t\t\t? 'Online'\r\n\t\t\t\t\t\t\t\t\t\t: 'Offline'}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: 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 '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState, GetOperatorProjects } from '../../../../../../actions/UsersActions';\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nconst schema = {\r\n\tfirstname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tlastname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\temail: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t\temail: true,\r\n\t},\r\n\troleId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddEditUserForm = (props) => {\r\n\tconst { className, roles, operators, projects, isEdit, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.usersReducer.formState);\r\n\r\n\tconst usePrevious = (value) => {\r\n\t\tconst ref = useRef();\r\n\t\tuseEffect(() => {\r\n\t\t\tref.current = value;\r\n\t\t});\r\n\t\treturn ref.current;\r\n\t};\r\n\r\n\tconst useHasChanged = (val) => {\r\n\t\tconst prevVal = usePrevious(val);\r\n\t\treturn prevVal !== val;\r\n\t};\r\n\r\n\tconst hasOperatorIdsChanged = useHasChanged(formState.values.operatorIds);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\r\n\t\tif (hasOperatorIdsChanged) {\r\n\t\t\tdispatch(GetOperatorProjects(formState.values.operatorIds || []));\r\n\t\t}\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddEditUserForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\troles: PropTypes.array,\r\n\toperators: PropTypes.array,\r\n\tprojects: PropTypes.array,\r\n\tisEdit: PropTypes.bool,\r\n};\r\n\r\nexport default AddEditUserForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddEditUserForm from './components/AddEditUserForm/AddEditUserForm.js';\r\nimport { GetRoles, GetOperators, CreateUser, GetUser, EditUser } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddEditUserDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst operators = useSelector((state) => state.usersReducer.operators);\r\n\tconst operatorProjects = useSelector((state) => state.usersReducer.operatorProjects);\r\n\tconst formState = useSelector((state) => state.usersReducer.formState);\r\n\tconst openAddEditUserDialogId = useSelector((state) => state.usersReducer.openAddEditUserDialogId);\r\n\tconst title = openAddEditUserDialogId ? 'Edit user' : 'Add user';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tif (openAddEditUserDialogId) {\r\n\t\t\t\tdispatch(EditUser(formState.values, rest.user.role));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(CreateUser(formState.values, rest.user.role));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetRoles(rest.user.role));\r\n\t\tdispatch(GetOperators());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t\tif (openAddEditUserDialogId) {\r\n\t\t\tdispatch(GetUser(openAddEditUserDialogId));\r\n\t\t}\r\n\t}, [openAddEditUserDialogId]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddEditUserDialog.propTypes = {\r\n\tauthor: PropTypes.object.isRequired,\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default AddEditUserDialog;\r\n","import React, { useEffect, useCallback, useMemo, useRef } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select, IconButton, Tooltip } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport AddIcon from '@mui/icons-material/AddBox';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable';\r\nimport { SetFormState, GetOperatorProjects, ToggleAddEditUserDialog, ToggleAddPendingUsersDialog, DeletePendingUser } from '../../../../../../actions/UsersActions';\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 AddPendingUsersForm = (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\tconst pendingUsers = useSelector((state) => state.usersReducer.pendingUsers);\r\n\r\n\tconst _AddUser = (firstname, lastname, email) => {\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\tfirstname,\r\n\t\t\t\tlastname,\r\n\t\t\t\temail\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// dispatch(ToggleAddPendingUsersDialog(false));\r\n\t\tdispatch(ToggleAddEditUserDialog(true));\r\n\t};\r\n\r\n\tconst [open, setOpen] = React.useState(false);\r\n\r\n\tconst handleClickOpen = (deleteUserEmail) => {\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\tdeleteUserEmail\r\n\t\t\t}\r\n\t\t});\r\n\t\tsetOpen(true);\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tconst _deleteUser = (userEmail) => {\r\n\t\thandleClickOpen(userEmail);\r\n\t};\r\n\r\n\tconst handleDelete = () => {\r\n\t\tdispatch(DeletePendingUser(formState.values.deleteUserEmail));\r\n\t\tsetOpen(false);\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 _AddUser(rowData[1], rowData[2], rowData[3])}\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 _deleteUser(rowData[3])}\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: 'firstname',\r\n\t\t\t\tlabel: 'First 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: 'lastname',\r\n\t\t\t\tlabel: 'Last 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: '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 _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: 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\r\n\t\t\t\t\r\n\t\t\t\t\t{`Delete Pending User: ${formState.values.deleteUser}`}\r\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\tAre you sure you want to delete this Pending User?\r\n\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\r\n\t);\r\n};\r\n\r\nAddPendingUsersForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\troles: PropTypes.array,\r\n\toperators: PropTypes.array,\r\n\tprojects: PropTypes.array,\r\n\tisEdit: PropTypes.bool,\r\n};\r\n\r\nexport default AddPendingUsersForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddPendingUsersForm from './components/AddPendingUserForm/AddPendingUsersForm.js';\r\n\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 AddPendingUsersDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst formState = useSelector((state) => state.usersReducer.formState);\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\nAddPendingUsersDialog.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 AddPendingUsersDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport { DeleteUser } from '../../../../actions/UsersActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst DeleteUserDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst roles = useSelector((state) => state.usersReducer.roles);\r\n\tconst openDeleteUserDialogId = useSelector((state) => state.usersReducer.openDeleteUserDialogId);\r\n\tconst title = 'Delete user';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(DeleteUser(openDeleteUserDialogId, rest.user.role));\r\n\t\tdispatch(enqueueSnackbar({ message: 'User deleted', options: { variant: 'info' } }));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t

Are you sure you want to delete this User?

\r\n\t\t\r\n\t);\r\n};\r\n\r\nDeleteUserDialog.propTypes = {\r\n\tauthor: PropTypes.object.isRequired,\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default DeleteUserDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport GroupIcon from '@mui/icons-material/Group';\r\nimport BusinessCenterIcon from '@mui/icons-material/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@mui/icons-material/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport Card from './components/Card/Card.js';\r\nimport UsersDataTable from './components/UsersDataTable/UsersDataTable.js';\r\nimport AddEditUsersDialog from './components/AddEditUserDialog/AddEditUserDialog.js';\r\nimport AddPedingUsersDialog from './components/AddPendingUsersDialog/AddPendingUsersDialog.js';\r\nimport DeleteUsersDialog from './components/DeleteUserDialog/DeleteUserDialog';\r\nimport { SetInitialState, GetUsers, GetPendingUsers, GetUsersStats, ToggleAddEditUserDialog, ToggleAddPendingUsersDialog, 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 openAddPendingUsersDialog = useSelector((state) => state.usersReducer.openAddPendingUsersDialog);\r\n\tconst openDeleteUserDialog = useSelector((state) => state.usersReducer.openDeleteUserDialog);\r\n\tconst pendingUsers = useSelector((state) => state.usersReducer.pendingUsers);\r\n\r\n\tconst _addEditUserClose = () => {\r\n\t\tdispatch(ToggleAddEditUserDialog(false));\r\n\t};\r\n\r\n\tconst _addPendingUsersClose = () => {\r\n\t\tdispatch(ToggleAddPendingUsersDialog(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(SetInitialState());\r\n\t\tdispatch(ToggleAddEditUserDialog(true));\r\n\t};\r\n\r\n\tconst _addPendingUsers = () => {\r\n\t\tdispatch(ToggleAddPendingUsersDialog(true));\r\n\t};\r\n\r\n\tconst _renderActions = () => (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetUsers(user.role));\r\n\t\tdispatch(GetUsersStats());\r\n\t\tdispatch(GetPendingUsers());\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{openAddPendingUsersDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{openDeleteUserDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\r\n\t);\r\n};\r\n\r\nexport default Users;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tGrid,\r\n\tTypography,\r\n} from '@mui/material';\r\n\r\nimport getInitials from 'utils/getInitials';\r\nimport { Label } from 'components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\theader: {\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: 10,\r\n\t\t'&:last-child': {\r\n\t\t\tpaddingBottom: 0,\r\n\t\t},\r\n\t},\r\n\tdescription: {\r\n\t\tpadding: theme.spacing(2, 3, 1, 3),\r\n\t},\r\n\ttags: {\r\n\t\tpadding: theme.spacing(0, 3, 1, 3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tdetailsButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\tdeleteButton: {\r\n\t\tcolor: theme.palette.error.main,\r\n\t},\r\n\tdetails: {\r\n\t\tpadding: theme.spacing(1, 3),\r\n\t},\r\n\tavatar: {\r\n\t\twidth: theme.spacing(15),\r\n\t\theight: theme.spacing(15),\r\n\t\tfontSize: theme.spacing(7)\r\n\t},\r\n}));\r\n\r\nconst OperatorCard = (props) => {\r\n\tconst { operator, deleteOperator, navigateDetails, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t{getInitials(operator.name)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclassName={classes.header}\r\n\t\t\t\tdisableTypography\r\n\t\t\t\ttitle={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{operator.name}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t navigateDetails(operator.id)}\r\n\t\t\t\t\t\t\t\tclassName={classes.detailsButton}\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tDetails\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t deleteOperator(operator)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tDelete\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nOperatorCard.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n\tdeleteOperator: PropTypes.func,\r\n\tnavigateDetails: PropTypes.func,\r\n};\r\n\r\nexport default OperatorCard;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tGrid,\r\n} from '@mui/material';\r\n\r\nimport OperatorCard from '../OperatorCard/OperatorCard.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: { marginTop: theme.spacing(3) },\r\n\theader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tflexWrap: 'wrap',\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\ttitle: {\r\n\t\tposition: 'relative',\r\n\t\t'&:after': {\r\n\t\t\tposition: 'absolute',\r\n\t\t\tbottom: -8,\r\n\t\t\tleft: 0,\r\n\t\t\tcontent: '\" \"',\r\n\t\t\theight: 3,\r\n\t\t\twidth: 48,\r\n\t\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t},\r\n\t},\r\n\tactions: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tgridList: {\r\n\t\toverflowY: 'scroll',\r\n\t\tmaxHeight: '75vh'\r\n\t}\r\n}));\r\n\r\nconst Projects = (props) => {\r\n\tconst { className, operators, deleteOperator, navigateDetails, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{operators.map((operator) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperators: PropTypes.array,\r\n\tdeleteOperator: PropTypes.func,\r\n\tnavigateDetails: PropTypes.func,\r\n};\r\n\r\nexport default Projects;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState } from '../../../../../../actions/OperatorsActions';\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddOperatorForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddOperatorForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddOperatorForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddOperatorForm from './components/AddOperatorForm/AddOperatorForm.js';\r\nimport { CreateOperator } from '../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddOperatorDialog = (props) => {\r\n\tconst { open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\tconst title = 'Add operator';\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(CreateOperator(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddOperatorDialog.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default AddOperatorDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport useRouter from 'utils/useRouter';\r\nimport { Page, Header } from '../../../../components';\r\nimport OperatorsList from './components/OperatorsList/OperatorsList.js';\r\nimport AddOperatorDialog from './components/AddOperatorDialog/AddOperatorDialog.js';\r\n\r\nimport { GetOperators, ToggleAddOperatorDialog, DeleteOperator, NavigateDetails } from '../../actions/OperatorsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Operators = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst { history } = useRouter();\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst openAddOperatorDialog = useSelector((state) => state.operatorsReducer.openAddOperatorDialog);\r\n\tconst operators = useSelector((state) => state.operatorsReducer.operators);\r\n\r\n\tconst _addOperatorClose = () => {\r\n\t\tdispatch(ToggleAddOperatorDialog(false));\r\n\t};\r\n\r\n\tconst _deleteOperator = (operator) => {\r\n\t\tdispatch(DeleteOperator(operator));\r\n\t};\r\n\r\n\tconst _addOperator = () => {\r\n\t\tdispatch(ToggleAddOperatorDialog(true));\r\n\t};\r\n\r\n\tconst _renderActions = () => (\r\n\t\t\r\n\t);\r\n\r\n\tconst _navigateDetails = (operatorId) => {\r\n\t\tdispatch(NavigateDetails(operatorId));\r\n\t\thistory.push('/management/operators/details');\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetOperators());\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, [getData]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddOperatorDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Operators;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tSwitch,\r\n\tTextField,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { SetFormState, UpdateOperator } from '../../../../../../actions/OperatorsActions';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Details = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\r\n\tconst save = () => {\r\n\t\tdispatch(UpdateOperator(formState.values));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave Changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nDetails.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Details;\r\n","import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardContent,\r\n\tCardActions,\r\n\tAvatar,\r\n\tTypography,\r\n\tButton,\r\n\tcolors\r\n} from '@mui/material';\r\nimport getInitials from 'utils/getInitials';\r\nimport { UpdateImage } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexDirection: 'column',\r\n\t\ttextAlgin: 'center',\r\n\t},\r\n\tname: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tavatar: {\r\n\t\theight: 120,\r\n\t\twidth: 120,\r\n\t},\r\n\tremoveButton: {\r\n\t\twidth: '100%',\r\n\t\tcolor: theme.palette.error.main\r\n\t},\r\n\taddButton: {\r\n\t\twidth: '100%',\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Picture = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst inputFile = useRef(null);\r\n\r\n\tconst _removeImage = () => {\r\n\t\tconst updateOperator = { ...operator };\r\n\t\tupdateOperator.avatar = null;\r\n\t\tdispatch(UpdateImage(updateOperator));\r\n\t};\r\n\r\n\tconst _addImage = () => {\r\n\t\tinputFile.current.click();\r\n\t};\r\n\r\n\tconst _onChangeInput = (event) => {\r\n\t\tif (event.target.files && event.target.files.length > 0) {\r\n\t\t\tconst file = event.target.files[0];\r\n\t\t\tconst reader = new FileReader();\r\n\t\t\treader.addEventListener('load', () => {\r\n\t\t\t\tconst updateOperator = { ...operator };\r\n\t\t\t\tupdateOperator.avatar = reader.result;\r\n\t\t\t\tdispatch(UpdateImage(updateOperator));\r\n\t\t\t}\r\n\t\t\t);\r\n\t\t\treader.readAsDataURL(event.target.files[0]);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{getInitials(operator.name)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{operator.avatar === null ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t { inputFile.current = ref; }} onChange={_onChangeInput} style={{ display: 'none' }} />\r\n\t\t\r\n\t);\r\n};\r\n\r\nPicture.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Picture;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { Picture, Details } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Overview = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nOverview.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Overview;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\n\r\nimport { ToggleAddProjectDialog } from '../../../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst ActionsButton = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\tconst _add = () => {\r\n\t\tdispatch(ToggleAddProjectDialog(true));\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nActionsButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default memo(ActionsButton);\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tDivider\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport ActionsButton from './components/ActionsButton/ActionsButton.js';\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable.js';\r\nimport { DeleteProject } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 10,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst ProjectsDataTable = (props) => {\r\n\tconst { className, data, operatorId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst _deleteProject = (projectId) => {\r\n\t\tdispatch(DeleteProject(projectId, operatorId));\r\n\t};\r\n\r\n\tconst _renderActions = (tableMeta) => {\r\n\t\tconst { rowData } = tableMeta;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t _deleteProject(rowData[0])}>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'users',\r\n\t\t\t\tlabel: 'Users',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'action',\r\n\t\t\t\tlabel: 'Actions',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tsort: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tempty: true,\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => _renderActions(tableMeta)\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\ttitle=\"All projects\"\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nProjectsDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\toperatorId: PropTypes.string\r\n};\r\n\r\nexport default ProjectsDataTable;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select } from '@mui/material';\r\nimport useRouter from 'utils/useRouter';\r\nimport { SetFormState } from '../../../../../../../../actions/OperatorsActions';\r\n\r\nconst schema = {\r\n\tname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tfields: {\r\n\t\tmargin: theme.spacing(-1),\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > *': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmargin: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tsubmitButton: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\twidth: '100%',\r\n\t},\r\n}));\r\n\r\nconst AddProjectForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t});\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t);\r\n};\r\n\r\nAddProjectForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddProjectForm;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport ModalDialog from '../../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport AddProjectForm from './components/AddProjectForm/AddProjectForm.js';\r\nimport { CreateProject } from '../../../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\thelperText: {\r\n\t\ttextAlign: 'right',\r\n\t\tmarginRight: 0,\r\n\t},\r\n\tauthor: {\r\n\t\tmargin: theme.spacing(4, 0),\r\n\t\tdisplay: 'flex',\r\n\t},\r\n\tavatar: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\talignContent: 'right',\r\n\t},\r\n\tapplyButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst AddProjectDialog = (props) => {\r\n\tconst { operatorId, open, onClose, onApply, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst formState = useSelector((state) => state.operatorsReducer.formState);\r\n\tconst title = 'Add project';\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(CreateProject({ name: formState.values.name, operatorId }));\r\n\t\t}\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddProjectDialog.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonApply: PropTypes.func,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\toperatorId: PropTypes.number.isRequired\r\n};\r\n\r\nexport default AddProjectDialog;\r\n","import React from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport ProjectsDataTable from './components/ProjectsDataTable/ProjectsDataTable';\r\n\r\nimport AddProjectDialog from './components/AddProjectDialog/AddProjectDialog';\r\n\r\nimport { ToggleAddProjectDialog } from '../../../../actions/OperatorsActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Projects = (props) => {\r\n\tconst { operator, className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst openAddProjectDialog = useSelector((state) => state.operatorsReducer.openAddProjectDialog);\r\n\r\n\tconst _addProjectClose = () => {\r\n\t\tdispatch(ToggleAddProjectDialog(false));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{openAddProjectDialog && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nProjects.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\toperator: PropTypes.object\r\n};\r\n\r\nexport default Projects;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport DataTable from '../../../../../../../../components/DataTable/DataTable.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t}\r\n}));\r\n\r\nconst UsersDataTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'name',\r\n\t\t\t\tlabel: 'Name',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t]\r\n\t);\r\n\r\n\tconst _getTableOptions = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: false,\r\n\t\texpandableRows: false, // Try Adding This\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nUsersDataTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default UsersDataTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport UsersDataTable from './components/UsersDataTable/UsersDataTable';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdeliverables: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tmembers: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Users = (props) => {\r\n\tconst { users, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nUsers.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tusers: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default Users;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\nimport { Page, Header } from 'components';\r\nimport { Overview, Projects, Users } from './components';\r\nimport { GetOperator } from '../../actions/OperatorsActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\talert: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst OperatorDetails = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst [tab, setTab] = useState('overview');\r\n\r\n\tconst operatorId = useSelector((state) => state.operatorsReducer.detailsOperatorId);\r\n\tconst operator = useSelector((state) => state.operatorsReducer.operator);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchoperator = () => {\r\n\t\t\tdispatch(GetOperator(operatorId));\r\n\t\t};\r\n\r\n\t\tfetchoperator();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, [operatorId]);\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t};\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'overview', label: 'Overview' },\r\n\t\t{ value: 'projects', label: 'Projects' },\r\n\t\t{ value: 'users', label: 'Users' },\r\n\t];\r\n\r\n\tif (!tab) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!tabs.find((t) => t.value === tab)) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!operatorId) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{tabs.map((item) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{tab === 'overview' && }\r\n\t\t\t\t{tab === 'projects' && }\r\n\t\t\t\t{tab === 'users' && }\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default OperatorDetails;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardActions,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tGrid,\r\n\tDivider,\r\n\tSwitch,\r\n\tTextField,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport SelectField from '../../../../../../../../components/SelectField/SelectField.js';\r\n\r\nimport { SetFormState, UpdateSettings } from '../../../../../../actions/SettingsActions';\r\n\r\nconst schema = {\r\n\tfirstname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tlastname: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\toperatorId: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst GeneralForm = (props) => {\r\n\tconst { className, role, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst operators = useSelector((state) => state.settingsReducer.operators);\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t}));\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(UpdateSettings(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave Changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGeneralForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\trole: PropTypes.string\r\n};\r\n\r\nexport default GeneralForm;\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid } from '@mui/material';\r\n\r\nimport { GeneralForm } from './components';\r\nimport { SetFormState, GetOperators } from '../../../../actions/SettingsActions';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {},\r\n}));\r\n\r\nconst General = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: { ...user }\r\n\t\t}));\r\n\r\n\t\tif (user && user.id) {\r\n\t\t\tdispatch(GetOperators(user.id));\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tif (!user) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGeneral.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default General;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActions,\r\n\tGrid,\r\n\tFormControlLabel,\r\n\tCheckbox,\r\n\tTypography,\r\n\tButton,\r\n\tDivider,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\titem: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Notifications = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tSystem\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tYou will recieve emails in your business email\r\n\t\t\t\t\t\t\t\taddress\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Email alerts\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tlabel=\"Push Notifications\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Text message\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel={(\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPhone calls\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tShort voice phone updating you\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tChat App\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tYou will recieve emails in your business email\r\n\t\t\t\t\t\t\t\taddress\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Email\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tlabel=\"Push notifications\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nNotifications.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Notifications;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActions,\r\n\tGrid,\r\n\tButton,\r\n\tDivider,\r\n\tTextField,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { SetFormState, ChangePassword } from '../../../../actions/SettingsActions';\r\n\r\nconst schema = {\r\n\toldpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tnewpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t},\r\n\tconfirmnewpassword: {\r\n\t\tpresence: { allowEmpty: false, message: 'is required' },\r\n\t\tequality: 'newpassword',\r\n\t}\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsaveButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Security = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.settingsReducer.formState);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst errors = validate(formState.values, schema);\r\n\r\n\t\tdispatch(SetFormState({\r\n\t\t\t...formState,\r\n\t\t\tisValid: !errors,\r\n\t\t\terrors: errors || {},\r\n\t\t}));\r\n\t}, [formState.values]);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value,\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tif (formState.isValid) {\r\n\t\t\tdispatch(ChangePassword(formState.values));\r\n\t\t}\r\n\t};\r\n\r\n\tconst hasError = (field) => (!!(formState.touched[field] && formState.errors[field]));\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSave changes\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nSecurity.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Security;\r\n","import React, { useState } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\n\r\nimport { Page, Header } from 'components';\r\nimport {\r\n\tGeneral,\r\n\tSubscription,\r\n\tNotifications,\r\n\tSecurity,\r\n} from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst Settings = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst [tab, setTab] = useState('general');\r\n\r\n\tconst handleTabsChange = (event, value) => {\r\n\t\tsetTab(value);\r\n\t};\r\n\r\n\tconst tabs = [\r\n\t\t{ value: 'general', label: 'General' },\r\n\t\t// { value: 'subscription', label: 'Subscription' },\r\n\t\t// { value: 'notifications', label: 'Notifications' },\r\n\t\t{ value: 'security', label: 'Security' },\r\n\t];\r\n\r\n\tif (!tab) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (!tabs.find((t) => t.value === tab)) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{tabs.map((item) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t{tab === 'general' && }\r\n\t\t\t\t{/* {tab === 'subscription' && }\r\n\t\t\t\t{tab === 'notifications' && } */}\r\n\t\t\t\t{tab === 'security' && }\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nSettings.propTypes = {\r\n};\r\n\r\nexport default Settings;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tLink,\r\n\tTypography,\r\n} from '@mui/material';\r\n\r\nimport axios from 'utils/axios';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\taction: {\r\n\t\tmarginRight: 0,\r\n\t\tmarginTop: 0,\r\n\t},\r\n\toverview: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\tjustifyContent: 'space-between',\r\n\t\t[theme.breakpoints.down('lg')]: {\r\n\t\t\tflexDirection: 'column-reverse',\r\n\t\t\talignItems: 'flex-start',\r\n\t\t},\r\n\t},\r\n\tproduct: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tproductImage: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t},\r\n\tdetails: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\tjustifyContent: 'space-between',\r\n\t\t[theme.breakpoints.down('lg')]: {\r\n\t\t\tflexDirection: 'column',\r\n\t\t\talignItems: 'flex-start',\r\n\t\t},\r\n\t},\r\n\tnotice: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst Subscription = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [subscription, setSubscription] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet mounted = true;\r\n\r\n\t\tconst fetchSubscription = () => {\r\n\t\t\taxios.get('/api/account/subscription').then((response) => {\r\n\t\t\t\tif (mounted) {\r\n\t\t\t\t\tsetSubscription(response.data.subscription);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tfetchSubscription();\r\n\r\n\t\treturn () => {\r\n\t\t\tmounted = false;\r\n\t\t};\r\n\t}, []);\r\n\r\n\tif (!subscription) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\tUpgrade plan\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclasses={{ action: classes.action }}\r\n\t\t\t\ttitle=\"Manage your subscription\"\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.currency}\r\n\t\t\t\t\t\t\t\t{subscription.price}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t/mo\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.name}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.proposalsLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tproposals left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.templatesLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\ttemplates\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.invitesLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tinvites left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{subscription.adsLeft}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tads left\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{subscription.hasAnalytics && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAnalytics dashboard\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{subscription.hasEmailAlerts && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tEmail alerts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tThe refunds don't work once you have the subscription, but\r\n\t\t\t\t\tyou can always\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tCancel your subscription\r\n\t\t\t\t\t\r\n\t\t\t\t\t.\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nSubscription.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Subscription;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport _ from 'underscore';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport PrintIcon from '@mui/icons-material/Print';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport AchiveIcon from '@mui/icons-material/ArchiveOutlined';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst OptionsButton = (props) => {\r\n\tconst { exportPdf, fullScreen } = props;\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\tconst _exportPdf = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\texportPdf();\r\n\t};\r\n\r\n\tconst _fullScreen = () => {\r\n\t\tsetOpenMenu(false);\r\n\t\tfullScreen();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{exportPdf && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nOptionsButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\texportPdf: PropTypes.func,\r\n\tfullScreen: PropTypes.func\r\n};\r\n\r\nexport default memo(OptionsButton);\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, colors } from '@mui/material';\r\nimport { FullScreen, useFullScreenHandle } from 'react-full-screen';\r\nimport { Header, Page, PowerBIDashboard } from 'components';\r\nimport TableauDashboard, { ShowExportPDFDialog } from '../../../../components/TableauDashboard/TableauDashboard.js';\r\nimport OptionsButton from './components/OptionsButton/OptionsButton.js';\r\nimport { DashboardInspect as DashboardInspectAction } from '../../actions/DashboardInspectActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: '100%',\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\ttabs: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tdivider: {\r\n\t\tbackgroundColor: colors.grey[300],\r\n\t},\r\n\talert: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst DashboardInspect = (props) => {\r\n\tconst { match, pageTitle, headerHidden, module } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst handle = useFullScreenHandle();\r\n\tconst user = useSelector(state => state.session.user);\r\n\tconst dashboard = useSelector(state => state.dashboardInspectReducer.dashboard);\r\n\r\n\tconst _getDashboard = () => {\r\n\t\tdispatch(DashboardInspectAction(match.params.id, user.id));\r\n\t};\r\n\r\n\tconst _exportPdf = () => {\r\n\t\tShowExportPDFDialog();\r\n\t};\r\n\r\n\tconst _fullScreen = () => {\r\n\t\thandle.enter();\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\t_getDashboard();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{dashboard.type === 'Tableau' ? (\r\n\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t) : null}\r\n\t\t\t{dashboard.type === 'PowerBI' ? (\r\n\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t) : null}\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t{dashboard.type === 'Tableau' ? : null}\r\n\t\t\t\t\t{dashboard.type === 'PowerBI' ? : null}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nDashboardInspect.propTypes = {\r\n\tmatch: PropTypes.object.isRequired,\r\n\tpageTitle: PropTypes.string,\r\n\theaderHidden: PropTypes.bool,\r\n\tmodule: PropTypes.string,\r\n};\r\n\r\nexport default DashboardInspect;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tIconButton, Tooltip, Switch,\r\n\tFormControlLabel\r\n} from '@mui/material';\r\nimport Skeleton from '@mui/material/Skeleton';\r\nimport withStyles from '@mui/styles/withStyles';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport DataTable from '../../../../../../components/DataTable/DataTable.js';\r\n\r\nimport { ToggleVoiceEditFailureDialog, SetFailureVoiceValidInvalid, GetFailuresVoice } 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 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, role, 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\tchecked={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: 'dateConverted',\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\tcustomBodyRender: (value) => (\r\n\t\t\t\t\t\t\t{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{\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: 'dateConverted',\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\tcustomBodyRender: (value) => (\r\n\t\t\t\t\t\t\t{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{\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\t// selectableRows: false,\r\n\t\texpandableRows: false\r\n\t});\r\n\r\n\tconst componentMapping = {\r\n\t\tSkeleton,\r\n\t};\r\n\r\n\tconst renderComponentCell = (componentString) => {\r\n\t\tconst Component = componentMapping[componentString];\r\n\t\treturn Component ? : null;\r\n\t};\r\n\r\n\tlet columns = '';\r\n\tconst getColumns = (el) => {\r\n\t\tcolumns = `${columns}\"${el.name}\": \"Skeleton\", `;\r\n\t};\r\n\r\n\t_getTableColumns().forEach(element => getColumns(element));\r\n\r\n\tcolumns = columns.slice(0, -2);\r\n\tconst parsed = JSON.parse(`{${columns}}`);\r\n\tconst novo = [];\r\n\r\n\tlet i = 1;\r\n\twhile (i <= 5) {\r\n\t\tnovo.push(parsed);\r\n\t\ti++;\r\n\t}\r\n\r\n\tlet updatedData = [];\r\n\tif (data !== []) {\r\n\t\tupdatedData = novo.slice(0, 10).map((item) => {\r\n\t\t\tconst updatedItem = {};\r\n\r\n\t\t\tObject.keys(item).forEach((key) => {\r\n\t\t\t\tupdatedItem[key] = renderComponentCell('Skeleton');\r\n\t\t\t});\r\n\r\n\t\t\treturn updatedItem;\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\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, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport EditIcon from '@mui/icons-material/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\t// selectableRows: 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\tpagination: 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 '@mui/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 '@mui/material';\r\nimport SendIcon from '@mui/icons-material/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\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 from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { createTheme, ThemeProvider, StyledEngineProvider, adaptV4Theme } from '@mui/material/styles';\r\n\r\nconst DataTable = (props) => {\r\n\tconst {\r\n\t\tid,\r\n\t\ttitle = '',\r\n\t\tdata = [],\r\n\t\tcolumns = [],\r\n\t\toptions,\r\n\t\t// pagination = true,\r\n\t\tshowDownload = false, // show download icon button\r\n\t\tshowPrint = false, // show print icon button\r\n\t\tselectableRows = 'none', // multiple, single, none\r\n\t\trowsPerPage = 20, // number of rows displayed by page\r\n\t\tfilterType = 'multiselect', // filter type can be multiselect, texfield, etc.,\r\n\t\ttableBodyMaxHeight = '40em',\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst getMuiTheme = (outerTheme) => {\r\n\t\tconst {\r\n\t\t\ttableBodyCellMaxWidth,\r\n\t\t\tactionColumnWidth\r\n\t\t} = props;\r\n\r\n\t\treturn createTheme(adaptV4Theme({\r\n\t\t\t// ...outerTheme,\r\n\t\t\toverrides: {\r\n\t\t\t\tMUIDataTable: {},\r\n\t\t\t\tMUIDataTableHead: {},\r\n\t\t\t\tMUIDataTableHeadCell: {},\r\n\t\t\t\tMUIDataTableHeadRow: {},\r\n\t\t\t\tMUIDataTableBody: {},\r\n\t\t\t\tMUIDataTableBodyRow: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\t'&:nth-child(odd)': {\r\n\t\t\t\t\t\t\tbackgroundColor: '#f2f2f2'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMuiTableCell: {\r\n\t\t\t\t\thead: {\r\n\t\t\t\t\t\tbackgroundColor: '#1565c0 !important',\r\n\t\t\t\t\t\tfontWeight: 'bold',\r\n\t\t\t\t\t\tcolor: 'white',\r\n\t\t\t\t\t\tpaddingRight: 2,\r\n\t\t\t\t\t\tpaddingTop: 2,\r\n\t\t\t\t\t\tpaddingBottom: 2,\r\n\t\t\t\t\t\tfontSize: 12\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\tpaddingRight: 2,\r\n\t\t\t\t\t\tpaddingTop: 2,\r\n\t\t\t\t\t\tpaddingBottom: 2,\r\n\t\t\t\t\t\tfontSize: 11\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMUIDataTablePagination: {},\r\n\t\t\t\tMUIDataTableViewCol: {},\r\n\t\t\t\tMUIDataTableSearch: {},\r\n\t\t\t\tMUIDataTableToolbar: {},\r\n\t\t\t\tMUIDataTableFilter: {},\r\n\t\t\t\tMUIDataTableFilterList: {}\r\n\t\t\t}\r\n\t\t}));\r\n\t};\r\n\r\n\tconst _onRowSelection = (currentRowsSelected, allRowsSelected, rowsSelected) => {\r\n\t\tconst { onRowSelection } = props;\r\n\t\tconst selectedRows = data.filter((dt, index) => rowsSelected.indexOf(index) !== -1);\r\n\t\tonRowSelection(selectedRows);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t ({ ...getMuiTheme(outerTheme) })}>\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nDataTable.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\ttitle: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tcolumns: PropTypes.array.isRequired,\r\n\toptions: PropTypes.object,\r\n\tpagination: PropTypes.bool,\r\n\tshowDownload: PropTypes.bool,\r\n\tshowPrint: PropTypes.bool,\r\n\tselectableRows: PropTypes.string,\r\n\trowsPerPage: PropTypes.number,\r\n\tfilterType: PropTypes.string,\r\n\ttableBodyCellMaxWidth: PropTypes.string || PropTypes.number,\r\n\tactionColumnWidth: PropTypes.string || PropTypes.number,\r\n\tonRowSelection: PropTypes.func,\r\n\ttableBodyMaxHeight: PropTypes.string\r\n};\r\n\r\nexport default DataTable;\r\n","/* eslint-disable react/button-has-type */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\nimport React, { useEffect, useCallback, useState, useMemo } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport './Layer3DataTables.css';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/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 '@mui/material';\r\nimport {\r\n\tThemeProvider,\r\n\tcreateMuiTheme,\r\n\tMuiThemeProvider,\r\n\twithStyles,\r\n} from '@mui/styles/withStyles';\r\nimport Box from '@mui/material/Box';\r\nimport Skeleton from '@mui/material/Skeleton';\r\nimport { DataTable, Header, Label } from 'components';\r\nimport ArrowUpwardIcon from '@mui/icons-material/ArrowUpward';\r\nimport ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';\r\nimport DataTableRaw from '../../../../../../../../../../../../../components/DataTable/DataTableRaw';\r\nimport { SetFormState, GetLayer3MessageMo, GetLayer3MessageMt, GetLayer3Kpis, SetLayer3, 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\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\tlet updatedData = [];\r\n\r\n\tconst [dataMo, setDataMo] = useState(updatedData);\r\n\tconst [dataMt, setDataMt] = useState(updatedData);\r\n\r\n\t// const layer3 = useSelector((state) => {\r\n\t// \tsetDataMo(state.voiceReducer.layer3.layer3TableMoc === undefined ? updatedData : state.voiceReducer.layer3.layer3TableMoc);\r\n\t// \tsetDataMt(state.voiceReducer.layer3.layer3TableMtc === undefined ? updatedData : state.voiceReducer.layer3.layer3TableMtc);\r\n\t// \treturn state.voiceReducer.layer3;\r\n\t// });\r\n\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\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 userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst [tableSide, setTableSide] = useState('MO');\r\n\tconst [moPage, setMoPage] = useState(0);\r\n\tconst [mtPage, setMtPage] = useState(0);\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: true,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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 tablesHighlightMo = (moId) => {\r\n\t\t// console.log(rowData);\r\n\t\tconst tableBodyMo = document.getElementById('voiceMocDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMo.querySelectorAll('tr');\r\n\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\ttr.classList.remove('highlightBackgroundMo');\r\n\t\t\t});\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\tif (td.textContent.trim() === moId.trim()) {\r\n\t\t\t\t\t// console.log(rowData[0]);\r\n\t\t\t\t\t// console.log(td.textContent);\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\r\n\t\t\t\t\ttr.classList.add('highlightBackgroundMo');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tconst scrollToRowMt = (mtId) => {\r\n\t\tconst tableBodyMt = document.getElementById('voiceMtcDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMt.querySelectorAll('tr');\r\n\r\n\t\tlet mtLine = 10000;\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\t// 'linha' é a referência para cada elemento \r\n\t\t\t// 'index' é o índice do elemento atual\r\n\r\n\t\t\t// Agora você pode fazer algo com cada linha, como acessar os dentro dela\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\t// 'td' é a referência para cada elemento dentro da linha\r\n\t\t\t\t// 'tdIndex' é o índice do elemento atual\r\n\t\t\t\tif (td.textContent.trim() === mtId) {\r\n\t\t\t\t\t// console.log(td.textContent.trim().substring(0, 19));\r\n\r\n\t\t\t\t\t// Faça algo com o elemento aqui, por exemplo, exiba seu conteúdo:\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\t\t\t\t\t// console.log(mtId);\r\n\t\t\t\t\tif (index < mtLine) {\r\n\t\t\t\t\t\t// console.log(index);\r\n\t\t\t\t\t\tmtLine = index;\r\n\t\t\t\t\t\t// tr.classList.add('highlightBackgroundMt');\r\n\t\t\t\t\t\t// Crie um novo elemento com a cor de fundo desejada\r\n\t\t\t\t\t\t// const newTr = document.createElement('tr');\r\n\t\t\t\t\t\t// tds.forEach((tdw) => {\r\n\t\t\t\t\t\t// \tconst newTd = document.createElement('td');\r\n\t\t\t\t\t\t// \tnewTd.textContent = tdw.textContent;\r\n\t\t\t\t\t\t// \t// Defina a cor de fundo desejada para cada dentro da nova linha\r\n\t\t\t\t\t\t// \tnewTd.style.backgroundColor = 'yellow'; // Substitua 'yellow' pela cor desejada\r\n\t\t\t\t\t\t// \tnewTr.appendChild(newTd);\r\n\t\t\t\t\t\t// });\r\n\r\n\t\t\t\t\t\t// // Substitua o existente pelo novo na mesma posição\r\n\t\t\t\t\t\t// tr.parentNode.replaceChild(newTr, tr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// return true;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t});\r\n\t\t// console.log(mtLine);\r\n\t\tconst rowHeight = tableBodyMt.querySelector('tr').clientHeight;\r\n\t\tif (mtLine !== 10000) {\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = 0;\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight);\r\n\t\t\t// if (mtLine < 200) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight);\r\n\t\t\t// } else if (mtLine >= 200 && mtLine < 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight) + 100;\r\n\t\t\t// } else if (mtLine >= 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight) + 200;\r\n\t\t\t// }\r\n\t\t}\r\n\t};\r\n\r\n\tconst tablesHighlightMt = (mtId) => {\r\n\t\t// console.log(rowData);\r\n\t\tconst tableBodyMo = document.getElementById('voiceMtcDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMo.querySelectorAll('tr');\r\n\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\ttr.classList.remove('highlightBackgroundMt');\r\n\t\t\t});\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\tif (td.textContent.trim() === mtId.trim()) {\r\n\t\t\t\t\t// console.log(rowData[0]);\r\n\t\t\t\t\t// console.log(td.textContent);\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\r\n\t\t\t\t\ttr.classList.add('highlightBackgroundMt');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tconst scrollToRowMo = (moId) => {\r\n\t\tconst tableBodyMt = document.getElementById('voiceMocDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMt.querySelectorAll('tr');\r\n\r\n\t\tlet moLine = 10000;\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\t// 'linha' é a referência para cada elemento \r\n\t\t\t// 'index' é o índice do elemento atual\r\n\r\n\t\t\t// Agora você pode fazer algo com cada linha, como acessar os dentro dela\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\t// 'td' é a referência para cada elemento dentro da linha\r\n\t\t\t\t// 'tdIndex' é o índice do elemento atual\r\n\t\t\t\tif (td.textContent.trim() === moId) {\r\n\t\t\t\t\t// console.log(td.textContent.trim().substring(0, 19));\r\n\r\n\t\t\t\t\t// Faça algo com o elemento aqui, por exemplo, exiba seu conteúdo:\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\r\n\t\t\t\t\tif (index < moLine) {\r\n\t\t\t\t\t\tmoLine = index;\r\n\t\t\t\t\t\t// tr.classList.add('highlightBackgroundMo');\r\n\t\t\t\t\t\t// Crie um novo elemento com a cor de fundo desejada\r\n\t\t\t\t\t\t// const newTr = document.createElement('tr');\r\n\t\t\t\t\t\t// tds.forEach((tdw) => {\r\n\t\t\t\t\t\t// \tconst newTd = document.createElement('td');\r\n\t\t\t\t\t\t// \tnewTd.textContent = tdw.textContent;\r\n\t\t\t\t\t\t// \t// Defina a cor de fundo desejada para cada dentro da nova linha\r\n\t\t\t\t\t\t// \tnewTd.style.backgroundColor = 'yellow'; // Substitua 'yellow' pela cor desejada\r\n\t\t\t\t\t\t// \tnewTr.appendChild(newTd);\r\n\t\t\t\t\t\t// });\r\n\r\n\t\t\t\t\t\t// // Substitua o existente pelo novo na mesma posição\r\n\t\t\t\t\t\t// tr.parentNode.replaceChild(newTr, tr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst rowHeight = tableBodyMt.querySelector('tr').clientHeight;\r\n\t\tif (moLine !== 10000) {\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = 0;\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight);\r\n\t\t\t// if (moLine < 200) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight);\r\n\t\t\t// } else if (moLine >= 200 && moLine < 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight) + 100;\r\n\t\t\t// } else if (moLine >= 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight) + 200;\r\n\t\t\t// }\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onRowClick = (rowData, rowMeta) => {\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// rowData,\r\n\t\t\t\teventTime: rowData[2].props.children,\r\n\t\t\t\t// graphLineTime: rowData[2].props.children\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (rowData[1] === 'MO') {\r\n\t\t\tsetTableSide('MO');\r\n\t\t\tdispatch(GetLayer3MessageMo(rowData[0], rowData[2].props.children, 'MO', userId, filenameMtc));\r\n\t\t\tsetDataMt(dataMt);\r\n\t\t} else if (rowData[1] === 'MT') {\r\n\t\t\tsetTableSide('MT');\r\n\t\t\tdispatch(GetLayer3MessageMt(rowData[0], rowData[2].props.children, 'MT', userId, filenameMoc));\r\n\t\t\tsetDataMo(dataMo);\r\n\t\t}\r\n\r\n\t\tdispatch(GetLayer3Kpis(filenameMoc, filenameMtc, failureSide, initialTimestamp, rowData[2].props.children));\r\n\t\tdispatch(GetLayer3DriveTest(userId, formState.values.layer3Kpi || 'rsrp', filenameMoc, filenameMtc, failureSide, initialTimestamp, rowData[2].props.children));\r\n\t};\r\n\r\n\t// const [page, setPage] = useState(0);\r\n\r\n\t// const _getTableOptions = () => ({\r\n\t// \tfilterType: 'dropdown',\r\n\t// \t// selectableRows: 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// \t// pagination: false,\r\n\t// \trowsPerPageOptions: [],\r\n\t// \trowsPerPage: [20],\r\n\t// \t// page: 2,\r\n\t// \t// onTableChange: (action, tableState) => {\r\n\t// \t// \tif (action === 'changePage') {\r\n\t// \t// \t\tsetPage(tableState.page);\r\n\t// \t// \t}\r\n\t// \t// }\r\n\t// \tsetRowProps: (row, index) => {\r\n\t// \t\tif (tableSide === 'MO') {\r\n\t// \t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.id)) {\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'yellow' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\r\n\t// \t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.layer3TableMessageOtherSide.id)) {\r\n\t// \t\t\t\tconsole.log(`mt${index}`);\r\n\t// \t\t\t\tconsole.log(`mt${Math.trunc(index / 40)}`);\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'green' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\t// \t\t} else {\r\n\t// \t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.id)) {\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'green' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\r\n\t// \t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.layer3TableMessageOtherSide.id)) {\r\n\t// \t\t\t\tconsole.log(`mo${index}`);\r\n\t// \t\t\t\tconsole.log(`mo${Math.trunc(index / 40)}`);\r\n\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'yellow' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\t// \t\t}\r\n\r\n\t// \t\treturn null;\r\n\t// \t}\r\n\t// });\r\n\r\n\tconst _getTableOptionsMo = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: 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\t// pagination: false,\r\n\t\trowsPerPageOptions: [],\r\n\t\trowsPerPage: [40],\r\n\t\tjumpToPage: true,\r\n\t\ttextLabels: {\r\n\t\t\tpagination: {\r\n\t\t\t\tjumpToPage: 'Page', // Substitui o texto \"Jump to Page\"\r\n\t\t\t},\r\n\t\t},\r\n\t\tpage: moPage,\r\n\t\tonTableChange: (action, tableState) => {\r\n\t\t\tif (action === 'changePage') {\r\n\t\t\t\tsetMoPage(tableState.page);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetRowProps: (row, dataIndex, rowIndex) => {\r\n\t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.id)) {\r\n\t\t\t\t// console.log(`mo${rowIndex}`);\r\n\t\t\t\t// console.log(`mo${Math.trunc(rowIndex / 40)}`);\r\n\t\t\t\t// setMoPage(Math.trunc(rowIndex / 40));\r\n\t\t\t\treturn {\r\n\t\t\t\t\tclassName: 'highlightBackgroundMo'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.layer3TableMessageOtherSide.id)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tclassName: 'highlightBackgroundMt'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t});\r\n\r\n\tconst _getTableOptionsMt = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: 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\t// pagination: false,\r\n\t\trowsPerPageOptions: [],\r\n\t\trowsPerPage: [40],\r\n\t\tjumpToPage: true,\r\n\t\ttextLabels: {\r\n\t\t\tpagination: {\r\n\t\t\t\tjumpToPage: 'Page', // Substitui o texto \"Jump to Page\"\r\n\t\t\t},\r\n\t\t},\r\n\t\tpage: mtPage,\r\n\t\tonTableChange: (action, tableState) => {\r\n\t\t\tif (action === 'changePage') {\r\n\t\t\t\tsetMtPage(tableState.page);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetRowProps: (row, dataIndex, rowIndex) => {\r\n\t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.id)) {\r\n\t\t\t\t// console.log(`mt${rowIndex}`);\r\n\t\t\t\t// console.log(`mt${Math.trunc(rowIndex / 40)}`);\r\n\t\t\t\t// setMtPage(Math.trunc(rowIndex / 40));\r\n\t\t\t\treturn {\r\n\t\t\t\t\t// style: { background: 'blue' }\r\n\t\t\t\t\tclassName: 'highlightBackgroundMt'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.layer3TableMessageOtherSide.id)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t// style: { background: 'blue' }\r\n\t\t\t\t\tclassName: 'highlightBackgroundMo'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t});\r\n\r\n\tuseMemo(() => {\r\n\t\tsetDataMo(layer3.layer3TableMoc);\r\n\t}, [layer3.layer3TableMoc]);\r\n\r\n\tuseMemo(() => {\r\n\t\tsetDataMt(layer3.layer3TableMtc);\r\n\t}, [layer3.layer3TableMtc]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (layer3MessageMo !== undefined) {\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.decodedMessage,\r\n\t\t\t\t\tlayer3MessageMtc: layer3MessageMo.layer3TableMessageOtherSide && layer3MessageMo.layer3TableMessageOtherSide.decodedMessage\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (layer3MessageMo.layer3TableMessageOtherSide.id) {\r\n\t\t\t\t// tablesHighlightMo(layer3MessageMo.id);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tscrollToRowMt(layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (layer3MessageMo && layer3MessageMo.layer3TableMessageOtherSide !== undefined && layer3.layer3TableMtc !== undefined) {\r\n\t\t\t// console.log(layer3.layer3TableMtc);\r\n\t\t\tconst mtIndex = (layer3.layer3TableMtc).findIndex(x => x.id === layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\t// console.log(Math.trunc(mtIndex / 40));\r\n\t\t\t// console.log(layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\tsetMtPage(Math.trunc(mtIndex / 40));\r\n\t\t}\r\n\t}, [layer3MessageMo]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (layer3MessageMt !== undefined) {\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.decodedMessage,\r\n\t\t\t\t\tlayer3MessageMoc: layer3MessageMt.layer3TableMessageOtherSide && layer3MessageMt.layer3TableMessageOtherSide.decodedMessage\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (layer3MessageMt.layer3TableMessageOtherSide.id) {\r\n\t\t\t\t// tablesHighlightMo(layer3MessageMo.id);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tscrollToRowMo(layer3MessageMt.layer3TableMessageOtherSide.id);\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (layer3MessageMt && layer3MessageMt.layer3TableMessageOtherSide !== undefined && layer3.layer3TableMoc !== undefined) {\r\n\t\t\t// console.log(layer3.layer3TableMtc);\r\n\t\t\tconst moIndex = (layer3.layer3TableMoc).findIndex(x => x.id === layer3MessageMt.layer3TableMessageOtherSide.id);\r\n\t\t\t// console.log(Math.trunc(mtIndex / 40));\r\n\t\t\t// console.log(layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\tsetMoPage(Math.trunc(moIndex / 40));\r\n\t\t}\r\n\t}, [layer3MessageMt]);\r\n\r\n\tconst componentMapping = {\r\n\t\tSkeleton,\r\n\t};\r\n\r\n\tconst renderComponentCell = (componentString) => {\r\n\t\tconst Component = componentMapping[componentString];\r\n\t\treturn Component ? : null;\r\n\t};\r\n\r\n\tlet columns = '';\r\n\tconst getColumns = (el) => {\r\n\t\tcolumns = `${columns}\"${el.name}\": \"Skeleton\", `;\r\n\t};\r\n\r\n\t_getTableColumns().forEach(element => getColumns(element));\r\n\r\n\tcolumns = columns.slice(0, -2);\r\n\tconst parsed = JSON.parse(`{${columns}}`);\r\n\tconst novo = [];\r\n\r\n\tlet i = 1;\r\n\twhile (i <= 5) {\r\n\t\tnovo.push(parsed);\r\n\t\ti++;\r\n\t}\r\n\r\n\tif (data !== []) {\r\n\t\tupdatedData = novo.slice(0, 10).map((item) => {\r\n\t\t\tconst updatedItem = {};\r\n\r\n\t\t\tObject.keys(item).forEach((key) => {\r\n\t\t\t\tupdatedItem[key] = renderComponentCell('Skeleton');\r\n\t\t\t});\r\n\r\n\t\t\treturn updatedItem;\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\t\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\t\t\r\n\t\t\t\t\t\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\t\t\r\n\t\t\t\t\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 '@mui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@mui/material';\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport { DataTable, Label, Chart } from 'components';\r\nimport { SetFormState } 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 Layer3Charts = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\r\n\tconst layer3Kpis = useSelector((state) => state.voiceReducer.layer3Kpis);\r\n\r\n\tconst verticalLineData = {\r\n\t\tlabel: 'Time',\r\n\t\tdata: [{ x: layer3Kpis.graphLineTime, y: -140 }, { x: layer3Kpis.graphLineTime, y: 20 }],\r\n\t\tborderColor: 'black', // Cor da linha\r\n\t\ttype: 'line', // Tipo de gráfico\r\n\t\tfill: false, // Não preencha a área sob a linha\r\n\t\tpointRadius: 0, // Não mostre pontos de dados para a linha\r\n\t\tborderWidth: 2 // Largura da linha\r\n\t};\r\n\r\n\tlet graphWithLine = layer3Kpis.datasets;\r\n\tif (layer3Kpis.graphLineTime !== null && layer3Kpis.graphLineTime !== undefined) {\r\n\t\tgraphWithLine = [...layer3Kpis.datasets || [], verticalLineData];\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\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 '@mui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@mui/material';\r\nimport L from 'leaflet';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport EditIcon from '@mui/icons-material/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\t// const makeDetailsEventTime = (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
Time: ${item.time}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t// \treturn table;\r\n\t// };\r\n\r\n\tconst _addLayerKpiEvent = (map, eventData, 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(eventData)) {\r\n\t\t\tconst marker = L.marker([eventData.latitude, eventData.longitude], { title: eventData.kpi, icon: packetIcondrop });\r\n\t\t\t// markers.push(marker.bindPopup(`
${makeDetailsEventTime(eventData)}
`, { autoPan: false }));\r\n\t\t\tmarkers.push(marker);\r\n\r\n\t\t\tif (flyTo) {\r\n\t\t\t\tmap.mapContext.map.flyTo([eventData.latitude, eventData.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\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, formState.values.eventTime));\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\t_addLayerKpiEvent(mapOne.control, layer3DriveTest.driveTestEventTime, 'eventTime', false);\r\n\t\t}\r\n\t}, [layer3DriveTest]);\r\n\r\n\tconst styles = {\r\n\t\tselectField: {\r\n\t\t\theight: '40px', // Defina a altura desejada aqui\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\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 '@mui/styles';\r\nimport { Button, TextField, Typography, Grid, Select, Card, CardHeader, CardContent, Divider, Accordion, AccordionSummary, AccordionDetails } from '@mui/material';\r\nimport ExpandMoreIcon from '@mui/icons-material/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 '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\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, GetLayer3DriveTest } 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(formState.values.filenameMoc, formState.values.filenameMtc, formState.values.initialTimestamp, userId));\r\n\t\tdispatch(GetLayer3Kpis(formState.values.filenameMoc, formState.values.filenameMtc, formState.values.failureSide, formState.values.initialTimestamp));\r\n\t\tdispatch(GetLayer3DriveTest(userId, 'rsrp', formState.values.filenameMoc, formState.values.filenameMtc, formState.values.failureSide, formState.values.initialTimestamp));\r\n\t}, []);\r\n\r\n\tconst title = `Failure ${formState.values.failureType} from ${formState.values.failureSide} at ${formState.values.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, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { CardHeader, CardContent, Divider, Card, Alert } from '@mui/material';\r\nimport { FilesDropzone } from 'components';\r\n\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\n\r\nconst FailuresHelixDialog = (props) => {\r\n\tconst { open, onClose, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t

Connection to Helix not configured!

\r\n\t\t\r\n\t);\r\n};\r\n\r\nFailuresHelixDialog.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default FailuresHelixDialog;\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 '@mui/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 '@mui/material';\r\nimport ExpandMoreIcon from '@mui/icons-material/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, GetVoiceCfn2Levels, GetVoiceCfn3Levels } from '../../../../../../actions/VoiceActions';\r\nimport VoiceMocMtcDataTable from './components/VoiceMocMtcDataTable';\r\nimport VoiceComments from './components/VoiceComments';\r\nimport Layer3 from './components/Layer3/Layer3Dialog';\r\nimport FailuresHelixDialog from '../../../../FailuresHelixDialog';\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 userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\t// Map\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// Voice\r\n\tconst [hideFields, setHideFields] = React.useState(false);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\tconst failure = useSelector((state) => state.voiceReducer.failure);\r\n\tconst comments = useSelector((state) => state.voiceReducer.comments.trackerVoiceCommentsDto);\r\n\tconst voiceCfn2Levels = useSelector((state) => state.voiceReducer.voiceCfn2Levels);\r\n\tconst voiceCfn3Levels = useSelector((state) => state.voiceReducer.voiceCfn3Levels);\r\n\tconst layer3DialogVisibility = useSelector((state) => state.voiceReducer.layer3DialogVisibility);\r\n\tconst layer3Failure = useSelector((state) => state.voiceReducer.layer3Failure);\r\n\tconst failuresHelixDialogVisibility = useSelector((state) => state.voiceReducer.failuresHelixDialogVisibility);\r\n\r\n\t// Common\r\n\tconst dropdowns = useSelector(state => state.failuresReducer.dropdowns);\r\n\r\n\t// const [stateValid, setStateValid] = React.useState(true);\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\tconst _handleChangeLevels = event => {\r\n\t\tif (event.target.name === 'cfn1Level') {\r\n\t\t\tdispatch(GetVoiceCfn2Levels(event.target.value));\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tcfn2Level: undefined,\r\n\t\t\t\t\tcfn3Level: undefined,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'cfn2Level') {\r\n\t\t\tdispatch(GetVoiceCfn3Levels(event.target.value));\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tcfn3Level: undefined,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'cfn3Level') {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// if (event.target.name === 'cfn1Level') {\r\n\t\t// \t// Filtrar\r\n\t\t// \tlet cfn2Levels = dropdowns.cfnLevelsRelationVoice\r\n\t\t// \t\t.filter(x => x.cfn1LevelId === event.target.value)\r\n\t\t// \t\t.map(({ cfn2LevelId, cfn2LevelName }) => ({\r\n\t\t// \t\t\tvalue: cfn2LevelId,\r\n\t\t// \t\t\ttext: cfn2LevelName\r\n\t\t// \t\t}));\r\n\t\t// \t// Distintos\r\n\t\t// \tcfn2Levels = cfn2Levels.filter((item, index, self) => {\r\n\t\t// \t\tconst foundIndex = self.findIndex(obj => obj.value === item.value && obj.text === item.text);\r\n\t\t// \t\treturn foundIndex === index;\r\n\t\t// \t});\r\n\r\n\t\t// \tsetFormState({\r\n\t\t// \t\t...formState,\r\n\t\t// \t\tvalues: {\r\n\t\t// \t\t\t...formState.values,\r\n\t\t// \t\t\t[event.target.name]: event.target.value,\r\n\t\t// \t\t\tcfn2Level: undefined,\r\n\t\t// \t\t\tcfn3Level: undefined,\r\n\t\t// \t\t\tcfn2Levels,\r\n\t\t// \t\t\tcfn3Levels: [],\r\n\t\t// \t\t},\r\n\t\t// \t});\r\n\t\t// } else if (event.target.name === 'cfn2Level') {\r\n\t\t// \t// Filtrar\r\n\t\t// \tlet cfn3Levels = dropdowns.cfnLevelsRelationVoice\r\n\t\t// \t\t.filter(x => x.cfn2LevelId === event.target.value)\r\n\t\t// \t\t.map(({ cfn3LevelId, cfn3LevelName }) => ({\r\n\t\t// \t\t\tvalue: cfn3LevelId,\r\n\t\t// \t\t\ttext: cfn3LevelName\r\n\t\t// \t\t}));\r\n\t\t// \t// Distintos\r\n\t\t// \tcfn3Levels = cfn3Levels.filter((item, index, self) => {\r\n\t\t// \t\tconst foundIndex = self.findIndex(obj => obj.value === item.value && obj.text === item.text);\r\n\t\t// \t\treturn foundIndex === index;\r\n\t\t// \t});\r\n\r\n\t\t// \tsetFormState({\r\n\t\t// \t\t...formState,\r\n\t\t// \t\tvalues: {\r\n\t\t// \t\t\t...formState.values,\r\n\t\t// \t\t\t[event.target.name]: event.target.value,\r\n\t\t// \t\t\tcfn3Level: undefined,\r\n\t\t// \t\t\tcfn3Levels,\r\n\t\t// \t\t},\r\n\t\t// \t});\r\n\t\t// } else if (event.target.name === 'cfn3Level') {\r\n\t\t// \tsetFormState({\r\n\t\t// \t\t...formState,\r\n\t\t// \t\tvalues: {\r\n\t\t// \t\t\t...formState.values,\r\n\t\t// \t\t\t[event.target.name]: event.target.value\r\n\t\t// \t\t},\r\n\t\t// \t});\r\n\t\t// }\r\n\t};\r\n\r\n\tconst _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 (formState.values.cfn1Level !== undefined) {\r\n\t\t\t// console.log(formState.values.cfn1Level);\r\n\t\t\tdispatch(GetVoiceCfn2Levels(formState.values.cfn1Level));\r\n\t\t}\r\n\t}, [dropdowns]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (formState.values.cfn2Level !== undefined) {\r\n\t\t\t// console.log(formState.values.cfn2Level);\r\n\t\t\tdispatch(GetVoiceCfn3Levels(formState.values.cfn2Level));\r\n\t\t}\r\n\t}, [voiceCfn2Levels]);\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\tconst [openModal, setOpenModal] = useState(false);\r\n\tconst handleClickIncident = () => {\r\n\t\t// dispatch(ToggleFailuresHelixDialog(true));\r\n\t\tsetOpenModal(true);\r\n\t};\r\n\r\n\tconst _failuresHelixDialogClose = () => {\r\n\t\t// dispatch(ToggleFailuresHelixDialog(false));\r\n\t\tsetOpenModal(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{openModal && (\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\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\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\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 '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport VoiceEditFailureDialogForm from './components/VoiceEditFailureDialogForm';\r\nimport { GetFailureVoiceDetails, SetFailureVoiceDetails, GetFailureVoiceComments, GetLayer3Failure, ToggleVoiceEditFailureDialog } from '../../../../../actions/VoiceActions';\r\nimport { GetFailureDropdowns } from '../../../../../actions/FailuresActions';\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\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\t// if (formState.isValid) {\r\n\t\tdispatch(SetFailureVoiceDetails(formState.values, userId, role));\r\n\t\tdispatch(ToggleVoiceEditFailureDialog(false));\r\n\t\t// dispatch(enqueueSnackbar({ message: 'Failure updated', options: { variant: 'info' } }));\r\n\t\t// }\r\n\t};\r\n\r\n\tconst _getData = useCallback(() => {\r\n\t\tdispatch(GetFailureDropdowns('voice'));\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\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, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport GroupIcon from '@mui/icons-material/Group';\r\nimport BusinessCenterIcon from '@mui/icons-material/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@mui/icons-material/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport VoiceDataTable from './components/VoiceDataTable';\r\nimport VoiceEditFailureDialog from './components/VoiceEditFailureDialog/VoiceEditFailureDialog';\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\t// From Map\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\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\t_getData();\r\n\t}, []);\r\n\r\n\tconst _voiceEditFailureDialogClose = () => {\r\n\t\tdispatch(ToggleVoiceEditFailureDialog(false));\r\n\t};\r\n\r\n\t// const _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 '@mui/styles';\r\nimport {\r\n\tIconButton, Tooltip, Switch,\r\n\tFormControlLabel\r\n} from '@mui/material';\r\nimport Skeleton from '@mui/material/Skeleton';\r\nimport withStyles from '@mui/styles/withStyles';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport DataTable from '../../../../../../components/DataTable/DataTable.js';\r\n\r\nimport { TogglePacketEditFailureDialog, SetFailurePacketValidInvalid, GetFailuresPacket } from '../../../../actions/PacketActions.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\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, role, tableId));\r\n\t};\r\n\r\n\tconst _editFailure = (tableId, filenameMoc, filenameMtc, failureSide, failureType, initialTimestamp) => {\r\n\t\tdispatch(TogglePacketEditFailureDialog(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\tchecked={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: 'dateConverted',\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\tcustomBodyRender: (value) => (\r\n\t\t\t\t\t\t\t{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{\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: '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: '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: 'dateConverted',\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\tcustomBodyRender: (value) => (\r\n\t\t\t\t\t\t\t{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{\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: '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: '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\t// selectableRows: false,\r\n\t\texpandableRows: false\r\n\t});\r\n\r\n\tconst componentMapping = {\r\n\t\tSkeleton,\r\n\t};\r\n\r\n\tconst renderComponentCell = (componentString) => {\r\n\t\tconst Component = componentMapping[componentString];\r\n\t\treturn Component ? : null;\r\n\t};\r\n\r\n\tlet columns = '';\r\n\tconst getColumns = (el) => {\r\n\t\tcolumns = `${columns}\"${el.name}\": \"Skeleton\", `;\r\n\t};\r\n\r\n\t_getTableColumns().forEach(element => getColumns(element));\r\n\r\n\tcolumns = columns.slice(0, -2);\r\n\tconst parsed = JSON.parse(`{${columns}}`);\r\n\tconst novo = [];\r\n\r\n\tlet i = 1;\r\n\twhile (i <= 5) {\r\n\t\tnovo.push(parsed);\r\n\t\ti++;\r\n\t}\r\n\r\n\tlet updatedData = [];\r\n\tif (data !== []) {\r\n\t\tupdatedData = novo.slice(0, 10).map((item) => {\r\n\t\t\tconst updatedItem = {};\r\n\r\n\t\t\tObject.keys(item).forEach((key) => {\r\n\t\t\t\tupdatedItem[key] = renderComponentCell('Skeleton');\r\n\t\t\t});\r\n\r\n\t\t\treturn updatedItem;\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\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 '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport EditIcon from '@mui/icons-material/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: 'Informantion',\r\n\t\t\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\t// selectableRows: 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\tpagination: 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 '@mui/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 '@mui/material';\r\nimport SendIcon from '@mui/icons-material/Send';\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\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","/* eslint-disable react/button-has-type */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\nimport React, { useEffect, useCallback, useState, useMemo } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport './Layer3DataTables.css';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/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 '@mui/material';\r\nimport {\r\n\tThemeProvider,\r\n\tcreateMuiTheme,\r\n\tMuiThemeProvider,\r\n\twithStyles,\r\n} from '@mui/styles/withStyles';\r\nimport Box from '@mui/material/Box';\r\nimport Skeleton from '@mui/material/Skeleton';\r\nimport { DataTable, Header, Label } from 'components';\r\nimport ArrowUpwardIcon from '@mui/icons-material/ArrowUpward';\r\nimport ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';\r\nimport DataTableRaw from '../../../../../../../../../../../../../components/DataTable/DataTableRaw';\r\nimport { SetFormState, GetLayer3MessageMo, GetLayer3MessageMt, GetLayer3Kpis, SetLayer3, 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\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\tlet updatedData = [];\r\n\r\n\tconst [dataMo, setDataMo] = useState(updatedData);\r\n\tconst [dataMt, setDataMt] = useState(updatedData);\r\n\r\n\t// const layer3 = useSelector((state) => {\r\n\t// \tsetDataMo(state.voiceReducer.layer3.layer3TableMoc === undefined ? updatedData : state.voiceReducer.layer3.layer3TableMoc);\r\n\t// \tsetDataMt(state.voiceReducer.layer3.layer3TableMtc === undefined ? updatedData : state.voiceReducer.layer3.layer3TableMtc);\r\n\t// \treturn state.voiceReducer.layer3;\r\n\t// });\r\n\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\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 userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst [tableSide, setTableSide] = useState('MO');\r\n\tconst [moPage, setMoPage] = useState(0);\r\n\tconst [mtPage, setMtPage] = useState(0);\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: true,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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 tablesHighlightMo = (moId) => {\r\n\t\t// console.log(rowData);\r\n\t\tconst tableBodyMo = document.getElementById('voiceMocDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMo.querySelectorAll('tr');\r\n\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\ttr.classList.remove('highlightBackgroundMo');\r\n\t\t\t});\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\tif (td.textContent.trim() === moId.trim()) {\r\n\t\t\t\t\t// console.log(rowData[0]);\r\n\t\t\t\t\t// console.log(td.textContent);\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\r\n\t\t\t\t\ttr.classList.add('highlightBackgroundMo');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tconst scrollToRowMt = (mtId) => {\r\n\t\tconst tableBodyMt = document.getElementById('voiceMtcDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMt.querySelectorAll('tr');\r\n\r\n\t\tlet mtLine = 10000;\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\t// 'linha' é a referência para cada elemento \r\n\t\t\t// 'index' é o índice do elemento atual\r\n\r\n\t\t\t// Agora você pode fazer algo com cada linha, como acessar os dentro dela\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\t// 'td' é a referência para cada elemento dentro da linha\r\n\t\t\t\t// 'tdIndex' é o índice do elemento atual\r\n\t\t\t\tif (td.textContent.trim() === mtId) {\r\n\t\t\t\t\t// console.log(td.textContent.trim().substring(0, 19));\r\n\r\n\t\t\t\t\t// Faça algo com o elemento aqui, por exemplo, exiba seu conteúdo:\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\t\t\t\t\t// console.log(mtId);\r\n\t\t\t\t\tif (index < mtLine) {\r\n\t\t\t\t\t\t// console.log(index);\r\n\t\t\t\t\t\tmtLine = index;\r\n\t\t\t\t\t\t// tr.classList.add('highlightBackgroundMt');\r\n\t\t\t\t\t\t// Crie um novo elemento com a cor de fundo desejada\r\n\t\t\t\t\t\t// const newTr = document.createElement('tr');\r\n\t\t\t\t\t\t// tds.forEach((tdw) => {\r\n\t\t\t\t\t\t// \tconst newTd = document.createElement('td');\r\n\t\t\t\t\t\t// \tnewTd.textContent = tdw.textContent;\r\n\t\t\t\t\t\t// \t// Defina a cor de fundo desejada para cada dentro da nova linha\r\n\t\t\t\t\t\t// \tnewTd.style.backgroundColor = 'yellow'; // Substitua 'yellow' pela cor desejada\r\n\t\t\t\t\t\t// \tnewTr.appendChild(newTd);\r\n\t\t\t\t\t\t// });\r\n\r\n\t\t\t\t\t\t// // Substitua o existente pelo novo na mesma posição\r\n\t\t\t\t\t\t// tr.parentNode.replaceChild(newTr, tr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// return true;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t});\r\n\t\t// console.log(mtLine);\r\n\t\tconst rowHeight = tableBodyMt.querySelector('tr').clientHeight;\r\n\t\tif (mtLine !== 10000) {\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = 0;\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight);\r\n\t\t\t// if (mtLine < 200) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight);\r\n\t\t\t// } else if (mtLine >= 200 && mtLine < 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight) + 100;\r\n\t\t\t// } else if (mtLine >= 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (mtLine * rowHeight) + 200;\r\n\t\t\t// }\r\n\t\t}\r\n\t};\r\n\r\n\tconst tablesHighlightMt = (mtId) => {\r\n\t\t// console.log(rowData);\r\n\t\tconst tableBodyMo = document.getElementById('voiceMtcDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMo.querySelectorAll('tr');\r\n\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\ttr.classList.remove('highlightBackgroundMt');\r\n\t\t\t});\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\tif (td.textContent.trim() === mtId.trim()) {\r\n\t\t\t\t\t// console.log(rowData[0]);\r\n\t\t\t\t\t// console.log(td.textContent);\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\r\n\t\t\t\t\ttr.classList.add('highlightBackgroundMt');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tconst scrollToRowMo = (moId) => {\r\n\t\tconst tableBodyMt = document.getElementById('voiceMocDataTable').querySelector('tbody');\r\n\t\tconst trs = tableBodyMt.querySelectorAll('tr');\r\n\r\n\t\tlet moLine = 10000;\r\n\t\ttrs.forEach((tr, index) => {\r\n\t\t\t// 'linha' é a referência para cada elemento \r\n\t\t\t// 'index' é o índice do elemento atual\r\n\r\n\t\t\t// Agora você pode fazer algo com cada linha, como acessar os dentro dela\r\n\t\t\tconst tds = tr.querySelectorAll('td');\r\n\r\n\t\t\ttds.forEach((td, tdIndex) => {\r\n\t\t\t\t// 'td' é a referência para cada elemento dentro da linha\r\n\t\t\t\t// 'tdIndex' é o índice do elemento atual\r\n\t\t\t\tif (td.textContent.trim() === moId) {\r\n\t\t\t\t\t// console.log(td.textContent.trim().substring(0, 19));\r\n\r\n\t\t\t\t\t// Faça algo com o elemento aqui, por exemplo, exiba seu conteúdo:\r\n\t\t\t\t\t// console.log(`Conteúdo do TD ${tdIndex} na linha ${index}: ${td.textContent}`);\r\n\r\n\t\t\t\t\tif (index < moLine) {\r\n\t\t\t\t\t\tmoLine = index;\r\n\t\t\t\t\t\t// tr.classList.add('highlightBackgroundMo');\r\n\t\t\t\t\t\t// Crie um novo elemento com a cor de fundo desejada\r\n\t\t\t\t\t\t// const newTr = document.createElement('tr');\r\n\t\t\t\t\t\t// tds.forEach((tdw) => {\r\n\t\t\t\t\t\t// \tconst newTd = document.createElement('td');\r\n\t\t\t\t\t\t// \tnewTd.textContent = tdw.textContent;\r\n\t\t\t\t\t\t// \t// Defina a cor de fundo desejada para cada dentro da nova linha\r\n\t\t\t\t\t\t// \tnewTd.style.backgroundColor = 'yellow'; // Substitua 'yellow' pela cor desejada\r\n\t\t\t\t\t\t// \tnewTr.appendChild(newTd);\r\n\t\t\t\t\t\t// });\r\n\r\n\t\t\t\t\t\t// // Substitua o existente pelo novo na mesma posição\r\n\t\t\t\t\t\t// tr.parentNode.replaceChild(newTr, tr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst rowHeight = tableBodyMt.querySelector('tr').clientHeight;\r\n\t\tif (moLine !== 10000) {\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = 0;\r\n\t\t\ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight);\r\n\t\t\t// if (moLine < 200) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight);\r\n\t\t\t// } else if (moLine >= 200 && moLine < 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight) + 100;\r\n\t\t\t// } else if (moLine >= 400) {\r\n\t\t\t// \ttableBodyMt.parentNode.parentNode.scrollTop = (moLine * rowHeight) + 200;\r\n\t\t\t// }\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onRowClick = (rowData, rowMeta) => {\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// rowData,\r\n\t\t\t\teventTime: rowData[2].props.children,\r\n\t\t\t\t// graphLineTime: rowData[2].props.children\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (rowData[1] === 'MO') {\r\n\t\t\tsetTableSide('MO');\r\n\t\t\tdispatch(GetLayer3MessageMo(rowData[0], rowData[2].props.children, 'MO', userId, filenameMtc));\r\n\t\t\tsetDataMt(dataMt);\r\n\t\t} else if (rowData[1] === 'MT') {\r\n\t\t\tsetTableSide('MT');\r\n\t\t\tdispatch(GetLayer3MessageMt(rowData[0], rowData[2].props.children, 'MT', userId, filenameMoc));\r\n\t\t\tsetDataMo(dataMo);\r\n\t\t}\r\n\r\n\t\tdispatch(GetLayer3Kpis(filenameMoc, filenameMtc, failureSide, initialTimestamp, rowData[2].props.children));\r\n\t\tdispatch(GetLayer3DriveTest(userId, formState.values.layer3Kpi || 'rsrp', filenameMoc, filenameMtc, failureSide, initialTimestamp, rowData[2].props.children));\r\n\t};\r\n\r\n\t// const [page, setPage] = useState(0);\r\n\r\n\t// const _getTableOptions = () => ({\r\n\t// \tfilterType: 'dropdown',\r\n\t// \t// selectableRows: 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// \t// pagination: false,\r\n\t// \trowsPerPageOptions: [],\r\n\t// \trowsPerPage: [20],\r\n\t// \t// page: 2,\r\n\t// \t// onTableChange: (action, tableState) => {\r\n\t// \t// \tif (action === 'changePage') {\r\n\t// \t// \t\tsetPage(tableState.page);\r\n\t// \t// \t}\r\n\t// \t// }\r\n\t// \tsetRowProps: (row, index) => {\r\n\t// \t\tif (tableSide === 'MO') {\r\n\t// \t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.id)) {\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'yellow' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\r\n\t// \t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.layer3TableMessageOtherSide.id)) {\r\n\t// \t\t\t\tconsole.log(`mt${index}`);\r\n\t// \t\t\t\tconsole.log(`mt${Math.trunc(index / 40)}`);\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'green' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\t// \t\t} else {\r\n\t// \t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.id)) {\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'green' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\r\n\t// \t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.layer3TableMessageOtherSide.id)) {\r\n\t// \t\t\t\tconsole.log(`mo${index}`);\r\n\t// \t\t\t\tconsole.log(`mo${Math.trunc(index / 40)}`);\r\n\r\n\t// \t\t\t\treturn {\r\n\t// \t\t\t\t\tstyle: { background: 'yellow' }\r\n\t// \t\t\t\t};\r\n\t// \t\t\t}\r\n\t// \t\t}\r\n\r\n\t// \t\treturn null;\r\n\t// \t}\r\n\t// });\r\n\r\n\tconst _getTableOptionsMo = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: 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\t// pagination: false,\r\n\t\trowsPerPageOptions: [],\r\n\t\trowsPerPage: [40],\r\n\t\tjumpToPage: true,\r\n\t\ttextLabels: {\r\n\t\t\tpagination: {\r\n\t\t\t\tjumpToPage: 'Page', // Substitui o texto \"Jump to Page\"\r\n\t\t\t},\r\n\t\t},\r\n\t\tpage: moPage,\r\n\t\tonTableChange: (action, tableState) => {\r\n\t\t\tif (action === 'changePage') {\r\n\t\t\t\tsetMoPage(tableState.page);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetRowProps: (row, dataIndex, rowIndex) => {\r\n\t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.id)) {\r\n\t\t\t\t// console.log(`mo${rowIndex}`);\r\n\t\t\t\t// console.log(`mo${Math.trunc(rowIndex / 40)}`);\r\n\t\t\t\t// setMoPage(Math.trunc(rowIndex / 40));\r\n\t\t\t\treturn {\r\n\t\t\t\t\tclassName: 'highlightBackgroundMo'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.layer3TableMessageOtherSide.id)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tclassName: 'highlightBackgroundMt'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t});\r\n\r\n\tconst _getTableOptionsMt = () => ({\r\n\t\tfilterType: 'dropdown',\r\n\t\t// selectableRows: 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\t// pagination: false,\r\n\t\trowsPerPageOptions: [],\r\n\t\trowsPerPage: [40],\r\n\t\tjumpToPage: true,\r\n\t\ttextLabels: {\r\n\t\t\tpagination: {\r\n\t\t\t\tjumpToPage: 'Page', // Substitui o texto \"Jump to Page\"\r\n\t\t\t},\r\n\t\t},\r\n\t\tpage: mtPage,\r\n\t\tonTableChange: (action, tableState) => {\r\n\t\t\tif (action === 'changePage') {\r\n\t\t\t\tsetMtPage(tableState.page);\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetRowProps: (row, dataIndex, rowIndex) => {\r\n\t\t\tif (row[0] === (layer3MessageMt && layer3MessageMt.id)) {\r\n\t\t\t\t// console.log(`mt${rowIndex}`);\r\n\t\t\t\t// console.log(`mt${Math.trunc(rowIndex / 40)}`);\r\n\t\t\t\t// setMtPage(Math.trunc(rowIndex / 40));\r\n\t\t\t\treturn {\r\n\t\t\t\t\t// style: { background: 'blue' }\r\n\t\t\t\t\tclassName: 'highlightBackgroundMt'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (row[0] === (layer3MessageMo && layer3MessageMo.layer3TableMessageOtherSide.id)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t// style: { background: 'blue' }\r\n\t\t\t\t\tclassName: 'highlightBackgroundMo'\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t});\r\n\r\n\tuseMemo(() => {\r\n\t\tsetDataMo(layer3.layer3TableMoc);\r\n\t}, [layer3.layer3TableMoc]);\r\n\r\n\tuseMemo(() => {\r\n\t\tsetDataMt(layer3.layer3TableMtc);\r\n\t}, [layer3.layer3TableMtc]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (layer3MessageMo !== undefined) {\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.decodedMessage,\r\n\t\t\t\t\tlayer3MessageMtc: layer3MessageMo.layer3TableMessageOtherSide && layer3MessageMo.layer3TableMessageOtherSide.decodedMessage\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (layer3MessageMo.layer3TableMessageOtherSide.id) {\r\n\t\t\t\t// tablesHighlightMo(layer3MessageMo.id);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tscrollToRowMt(layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (layer3MessageMo && layer3MessageMo.layer3TableMessageOtherSide !== undefined && layer3.layer3TableMtc !== undefined) {\r\n\t\t\t// console.log(layer3.layer3TableMtc);\r\n\t\t\tconst mtIndex = (layer3.layer3TableMtc).findIndex(x => x.id === layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\t// console.log(Math.trunc(mtIndex / 40));\r\n\t\t\t// console.log(layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\tsetMtPage(Math.trunc(mtIndex / 40));\r\n\t\t}\r\n\t}, [layer3MessageMo]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (layer3MessageMt !== undefined) {\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.decodedMessage,\r\n\t\t\t\t\tlayer3MessageMoc: layer3MessageMt.layer3TableMessageOtherSide && layer3MessageMt.layer3TableMessageOtherSide.decodedMessage\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (layer3MessageMt.layer3TableMessageOtherSide.id) {\r\n\t\t\t\t// tablesHighlightMo(layer3MessageMo.id);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tscrollToRowMo(layer3MessageMt.layer3TableMessageOtherSide.id);\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (layer3MessageMt && layer3MessageMt.layer3TableMessageOtherSide !== undefined && layer3.layer3TableMoc !== undefined) {\r\n\t\t\t// console.log(layer3.layer3TableMtc);\r\n\t\t\tconst moIndex = (layer3.layer3TableMoc).findIndex(x => x.id === layer3MessageMt.layer3TableMessageOtherSide.id);\r\n\t\t\t// console.log(Math.trunc(mtIndex / 40));\r\n\t\t\t// console.log(layer3MessageMo.layer3TableMessageOtherSide.id);\r\n\t\t\tsetMoPage(Math.trunc(moIndex / 40));\r\n\t\t}\r\n\t}, [layer3MessageMt]);\r\n\r\n\tconst componentMapping = {\r\n\t\tSkeleton,\r\n\t};\r\n\r\n\tconst renderComponentCell = (componentString) => {\r\n\t\tconst Component = componentMapping[componentString];\r\n\t\treturn Component ? : null;\r\n\t};\r\n\r\n\tlet columns = '';\r\n\tconst getColumns = (el) => {\r\n\t\tcolumns = `${columns}\"${el.name}\": \"Skeleton\", `;\r\n\t};\r\n\r\n\t_getTableColumns().forEach(element => getColumns(element));\r\n\r\n\tcolumns = columns.slice(0, -2);\r\n\tconst parsed = JSON.parse(`{${columns}}`);\r\n\tconst novo = [];\r\n\r\n\tlet i = 1;\r\n\twhile (i <= 5) {\r\n\t\tnovo.push(parsed);\r\n\t\ti++;\r\n\t}\r\n\r\n\tif (data !== []) {\r\n\t\tupdatedData = novo.slice(0, 10).map((item) => {\r\n\t\t\tconst updatedItem = {};\r\n\r\n\t\t\tObject.keys(item).forEach((key) => {\r\n\t\t\t\tupdatedItem[key] = renderComponentCell('Skeleton');\r\n\t\t\t});\r\n\r\n\t\t\treturn updatedItem;\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\t\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\t\t\r\n\t\t\t\t\t\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\t\t\r\n\t\t\t\t\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 '@mui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@mui/material';\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport { DataTable, Label, Chart } from 'components';\r\nimport { SetFormState } 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 Layer3Charts = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.voiceReducer.formState);\r\n\r\n\tconst layer3Kpis = useSelector((state) => state.voiceReducer.layer3Kpis);\r\n\r\n\tconst verticalLineData = {\r\n\t\tlabel: 'Time',\r\n\t\tdata: [{ x: layer3Kpis.graphLineTime, y: -140 }, { x: layer3Kpis.graphLineTime, y: 20 }],\r\n\t\tborderColor: 'black', // Cor da linha\r\n\t\ttype: 'line', // Tipo de gráfico\r\n\t\tfill: false, // Não preencha a área sob a linha\r\n\t\tpointRadius: 0, // Não mostre pontos de dados para a linha\r\n\t\tborderWidth: 2 // Largura da linha\r\n\t};\r\n\r\n\tlet graphWithLine = layer3Kpis.datasets;\r\n\tif (layer3Kpis.graphLineTime !== null && layer3Kpis.graphLineTime !== undefined) {\r\n\t\tgraphWithLine = [...layer3Kpis.datasets || [], verticalLineData];\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\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 '@mui/styles';\r\nimport {\r\n\tButton, TextField, Typography, Grid, Select, Card,\r\n\tCardHeader, CardContent, Divider, Accordion, AccordionSummary,\r\n\tAccordionDetails\r\n} from '@mui/material';\r\nimport L from 'leaflet';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport EditIcon from '@mui/icons-material/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\t// const makeDetailsEventTime = (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
Time: ${item.time}
Latitude: ${item.latitude}
Longitude: ${item.longitude}
`;\r\n\t// \treturn table;\r\n\t// };\r\n\r\n\tconst _addLayerKpiEvent = (map, eventData, 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(eventData)) {\r\n\t\t\tconst marker = L.marker([eventData.latitude, eventData.longitude], { title: eventData.kpi, icon: packetIcondrop });\r\n\t\t\t// markers.push(marker.bindPopup(`
${makeDetailsEventTime(eventData)}
`, { autoPan: false }));\r\n\t\t\tmarkers.push(marker);\r\n\r\n\t\t\tif (flyTo) {\r\n\t\t\t\tmap.mapContext.map.flyTo([eventData.latitude, eventData.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\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, formState.values.eventTime));\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\t_addLayerKpiEvent(mapOne.control, layer3DriveTest.driveTestEventTime, 'eventTime', false);\r\n\t\t}\r\n\t}, [layer3DriveTest]);\r\n\r\n\tconst styles = {\r\n\t\tselectField: {\r\n\t\t\theight: '40px', // Defina a altura desejada aqui\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\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, { useEffect, useMemo, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\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, GetLayer3DriveTest } 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(formState.values.filenameMoc, formState.values.filenameMtc, formState.values.initialTimestamp, userId));\r\n\t\tdispatch(GetLayer3Kpis(formState.values.filenameMoc, formState.values.filenameMtc, formState.values.failureSide, formState.values.initialTimestamp));\r\n\t\tdispatch(GetLayer3DriveTest(userId, 'rsrp', formState.values.filenameMoc, formState.values.filenameMtc, formState.values.failureSide, formState.values.initialTimestamp));\r\n\t}, []);\r\n\r\n\tconst title = `Failure ${formState.values.failureType} from ${formState.values.failureSide} at ${formState.values.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 '@mui/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 '@mui/material';\r\nimport ExpandMoreIcon from '@mui/icons-material/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, GetPacketCfn2Levels, GetPacketCfn3Levels } from '../../../../../../actions/PacketActions';\r\nimport PacketMocMtcDataTable from './components/PacketMocMtcDataTable';\r\nimport PacketComments from './components/PacketComments';\r\nimport Layer3 from './components/Layer3/Layer3Dialog';\r\nimport FailuresHelixDialog from '../../../../FailuresHelixDialog';\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 userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\t// Map\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// Packet\r\n\tconst [hideFields, setHideFields] = React.useState(false);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.packetReducer.formState);\r\n\tconst failure = useSelector((state) => state.packetReducer.failure);\r\n\tconst comments = useSelector((state) => state.packetReducer.comments.trackerPacketCommentsDto);\r\n\tconst packetCfn2Levels = useSelector((state) => state.packetReducer.packetCfn2Levels);\r\n\tconst packetCfn3Levels = useSelector((state) => state.packetReducer.packetCfn3Levels);\r\n\tconst layer3DialogVisibility = useSelector((state) => state.packetReducer.layer3DialogVisibility);\r\n\tconst layer3Failure = useSelector((state) => state.packetReducer.layer3Failure);\r\n\tconst failuresHelixDialogVisibility = useSelector((state) => state.packetReducer.failuresHelixDialogVisibility);\r\n\r\n\t// Common\r\n\tconst dropdowns = useSelector(state => state.failuresReducer.dropdowns);\r\n\r\n\t// const [stateValid, setStateValid] = React.useState(true);\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\tconst _handleChangeLevels = event => {\r\n\t\tif (event.target.name === 'cfn1Level') {\r\n\t\t\tdispatch(GetPacketCfn2Levels(event.target.value));\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tcfn2Level: undefined,\r\n\t\t\t\t\tcfn3Level: undefined,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'cfn2Level') {\r\n\t\t\tdispatch(GetPacketCfn3Levels(event.target.value));\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tcfn3Level: undefined,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'cfn3Level') {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// if (event.target.name === 'cfn1Level') {\r\n\t\t// \t// Filtrar\r\n\t\t// \tlet cfn2Levels = dropdowns.cfnLevelsRelationPacket\r\n\t\t// \t\t.filter(x => x.cfn1LevelId === event.target.value)\r\n\t\t// \t\t.map(({ cfn2LevelId, cfn2LevelName }) => ({\r\n\t\t// \t\t\tvalue: cfn2LevelId,\r\n\t\t// \t\t\ttext: cfn2LevelName\r\n\t\t// \t\t}));\r\n\t\t// \t// Distintos\r\n\t\t// \tcfn2Levels = cfn2Levels.filter((item, index, self) => {\r\n\t\t// \t\tconst foundIndex = self.findIndex(obj => obj.value === item.value && obj.text === item.text);\r\n\t\t// \t\treturn foundIndex === index;\r\n\t\t// \t});\r\n\r\n\t\t// \tsetFormState({\r\n\t\t// \t\t...formState,\r\n\t\t// \t\tvalues: {\r\n\t\t// \t\t\t...formState.values,\r\n\t\t// \t\t\t[event.target.name]: event.target.value,\r\n\t\t// \t\t\tcfn2Level: undefined,\r\n\t\t// \t\t\tcfn3Level: undefined,\r\n\t\t// \t\t\tcfn2Levels,\r\n\t\t// \t\t\tcfn3Levels: [],\r\n\t\t// \t\t},\r\n\t\t// \t});\r\n\t\t// } else if (event.target.name === 'cfn2Level') {\r\n\t\t// \t// Filtrar\r\n\t\t// \tlet cfn3Levels = dropdowns.cfnLevelsRelationPacket\r\n\t\t// \t\t.filter(x => x.cfn2LevelId === event.target.value)\r\n\t\t// \t\t.map(({ cfn3LevelId, cfn3LevelName }) => ({\r\n\t\t// \t\t\tvalue: cfn3LevelId,\r\n\t\t// \t\t\ttext: cfn3LevelName\r\n\t\t// \t\t}));\r\n\t\t// \t// Distintos\r\n\t\t// \tcfn3Levels = cfn3Levels.filter((item, index, self) => {\r\n\t\t// \t\tconst foundIndex = self.findIndex(obj => obj.value === item.value && obj.text === item.text);\r\n\t\t// \t\treturn foundIndex === index;\r\n\t\t// \t});\r\n\r\n\t\t// \tsetFormState({\r\n\t\t// \t\t...formState,\r\n\t\t// \t\tvalues: {\r\n\t\t// \t\t\t...formState.values,\r\n\t\t// \t\t\t[event.target.name]: event.target.value,\r\n\t\t// \t\t\tcfn3Level: undefined,\r\n\t\t// \t\t\tcfn3Levels,\r\n\t\t// \t\t},\r\n\t\t// \t});\r\n\t\t// } else if (event.target.name === 'cfn3Level') {\r\n\t\t// \tsetFormState({\r\n\t\t// \t\t...formState,\r\n\t\t// \t\tvalues: {\r\n\t\t// \t\t\t...formState.values,\r\n\t\t// \t\t\t[event.target.name]: event.target.value\r\n\t\t// \t\t},\r\n\t\t// \t});\r\n\t\t// }\r\n\t};\r\n\r\n\tconst _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 packetIconBlocked = 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, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst packetIconBlockedQoe = 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, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst packetIconDropped = 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, -35] // point from which the popup should open relative to the iconAnchor\r\n\t\t});\r\n\r\n\t\tconst packetIconDroppedQoe = 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, -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('packet')) {\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: packetIconBlocked });\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: packetIconBlockedQoe });\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: packetIconDropped });\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: packetIconDroppedQoe });\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: packetIconBlocked });\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 (formState.values.cfn1Level !== undefined) {\r\n\t\t\t// console.log(formState.values.cfn1Level);\r\n\t\t\tdispatch(GetPacketCfn2Levels(formState.values.cfn1Level));\r\n\t\t}\r\n\t}, [dropdowns]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (formState.values.cfn2Level !== undefined) {\r\n\t\t\t// console.log(formState.values.cfn2Level);\r\n\t\t\tdispatch(GetPacketCfn3Levels(formState.values.cfn2Level));\r\n\t\t}\r\n\t}, [packetCfn2Levels]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerFailures(mapOne.control, layer3Failure, 'packet', true);\r\n\t\t}\r\n\t}, [layer3Failure]);\r\n\r\n\tconst [openModal, setOpenModal] = useState(false);\r\n\tconst handleClickIncident = () => {\r\n\t\t// dispatch(ToggleFailuresHelixDialog(true));\r\n\t\tsetOpenModal(true);\r\n\t};\r\n\r\n\tconst _failuresHelixDialogClose = () => {\r\n\t\t// dispatch(ToggleFailuresHelixDialog(false));\r\n\t\tsetOpenModal(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{openModal && (\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\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\r\n\t\t\t\t\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\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\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 '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport PacketEditFailureDialogForm from './components/PacketEditFailureDialogForm';\r\nimport { GetFailurePacketDetails, SetFailurePacketDetails, GetFailurePacketComments, GetLayer3Failure, TogglePacketEditFailureDialog } from '../../../../../actions/PacketActions';\r\nimport { GetFailureDropdowns } from '../../../../../actions/FailuresActions';\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\tconst 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\tconst role = useSelector(state => state.session.user.role);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\t// if (formState.isValid) {\r\n\t\tdispatch(SetFailurePacketDetails(formState.values, userId, role));\r\n\t\tdispatch(TogglePacketEditFailureDialog(false));\r\n\t\t// dispatch(enqueueSnackbar({ message: 'Failure updated', options: { variant: 'info' } }));\r\n\t\t// }\r\n\t};\r\n\r\n\tconst _getData = useCallback(() => {\r\n\t\tdispatch(GetFailureDropdowns('packet'));\r\n\t\tdispatch(GetFailurePacketDetails(tableId, userId));\r\n\t\tdispatch(GetFailurePacketComments(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\r\n\t\t\r\n\t);\r\n};\r\n\r\nPacketEditFailureDialog.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 PacketEditFailureDialog;\r\n","import React, { useEffect, useCallback, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport GroupIcon from '@mui/icons-material/Group';\r\nimport BusinessCenterIcon from '@mui/icons-material/BusinessCenter';\r\nimport AssignmentTurnedInIcon from '@mui/icons-material/AssignmentTurnedIn';\r\nimport { Page, Header } from 'components';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport PacketDataTable from './components/PacketDataTable';\r\nimport PacketEditFailureDialog from './components/PacketEditFailureDialog/PacketEditFailureDialog';\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\t// From Map\r\n\tconst formState = useSelector((state) => state.packetReducer.formState);\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\t_getData();\r\n\t}, []);\r\n\r\n\tconst _packetEditFailureDialogClose = () => {\r\n\t\tdispatch(TogglePacketEditFailureDialog(false));\r\n\t};\r\n\r\n\t// const _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, { useState, useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Accordion from '@mui/material/Accordion';\r\nimport { Button, TextField, Card, Grid, CardHeader, CardContent, Typography, Box } from '@mui/material';\r\nimport { SelectField } from 'components';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { SetFormState, ToggleOptionsFailuresTrackerForm, AddDropdownField, RemoveDropdownField } from '../../actions/FailuresActions';\r\n\r\nconst FailuresTrackerOptionsForm = (props) => {\r\n\tconst { open, dropdownLabel, dropdownName, dropdownValue, dropdownId, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector(state => state.failuresReducer.formState);\r\n\r\n\tconst [dropdownValueAdded, setdropdownValueAdded] = useState('');\r\n\r\n\tconst _handleChange = (event) => {\r\n\t\tsetdropdownValueAdded(event.target.value);\r\n\t};\r\n\r\n\tconst _handleClose = () => {\r\n\t\tdispatch(ToggleOptionsFailuresTrackerForm(false));\r\n\t};\r\n\r\n\tconst relations = { cfn1LevelId: formState.values.cfn1LevelVoice, cfn2LevelId: formState.values.cfn2LevelVoice, cfn3LevelId: formState.values.cfn3LevelVoice };\r\n\r\n\tconst _handleAdd = () => {\r\n\t\tdispatch(AddDropdownField(userId, dropdownName, dropdownValueAdded, relations));\r\n\t\tdispatch(ToggleOptionsFailuresTrackerForm(false));\r\n\t};\r\n\r\n\tconst _handleRemove = () => {\r\n\t\tdispatch(RemoveDropdownField(userId, dropdownName, dropdownValue, dropdownId, relations));\r\n\t\tdispatch(ToggleOptionsFailuresTrackerForm(false));\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[dropdownName]: undefined\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tconst [expanded, setExpanded] = useState(false);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{dropdownLabel}\r\n\t\t\t\t\r\n\t\t\t\t\t :not(style)': { m: 1, width: '25ch' },\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tnoValidate\r\n\t\t\t\t\t\tautoComplete=\"off\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nFailuresTrackerOptionsForm.propTypes = {\r\n\topen: PropTypes.bool,\r\n\tdropdownLabel: PropTypes.string.isRequired,\r\n\tdropdownName: PropTypes.string.isRequired,\r\n\tdropdownValue: PropTypes.string,\r\n\tdropdownId: PropTypes.string\r\n};\r\n\r\nexport default FailuresTrackerOptionsForm;\r\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Accordion from '@mui/material/Accordion';\r\nimport { Button, TextField, Card, Grid, CardHeader, CardContent, IconButton, Tooltip } from '@mui/material';\r\nimport { SelectField } from 'components';\r\nimport AccordionDetails from '@mui/material/AccordionDetails';\r\nimport AccordionSummary from '@mui/material/AccordionSummary';\r\nimport Typography from '@mui/material/Typography';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport { SetFormState, GetFailureDropdowns, ToggleOptionsFailuresTrackerForm } from '../../actions/FailuresActions';\r\nimport FailuresTrackerOptionsForm from './FailuresTrackerOptionsForm';\r\n\r\nconst FailuresTrackerOptionsDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, tab, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst tableId = useSelector((state) => state.failuresReducer.tableId);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst role = useSelector(state => state.session.user.role);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector(state => state.failuresReducer.formState);\r\n\tconst dropdowns = useSelector(state => state.failuresReducer.dropdowns);\r\n\tconst optionsfailuresTrackerFormVisibility = useSelector(state => state.failuresReducer.optionsfailuresTrackerFormVisibility);\r\n\tconst dropdownLabel = useSelector(state => state.failuresReducer.dropdownLabel);\r\n\tconst dropdownName = useSelector(state => state.failuresReducer.dropdownName);\r\n\tconst dropdownValue = useSelector(state => state.failuresReducer.dropdownValue);\r\n\tconst dropdownId = useSelector(state => state.failuresReducer.dropdownId);\r\n\r\n\tconst newDropdownField = useSelector(state => state.failuresReducer.newDropdownField);\r\n\r\n\tconst [expanded, setExpanded] = useState(false);\r\n\r\n\tconst handleChange = (panel) => (event, isExpanded) => {\r\n\t\tsetExpanded(isExpanded ? panel : false);\r\n\t};\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetFailureDropdowns('all'));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetData();\r\n\t}, []);\r\n\r\n\tconst _handleChangeDropDown = event => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]:\r\n\t\t\t\t\tevent.target.type === 'checkbox'\r\n\t\t\t\t\t\t? event.target.checked\r\n\t\t\t\t\t\t: event.target.value\r\n\t\t\t},\r\n\t\t\ttouched: {\r\n\t\t\t\t...formState.touched,\r\n\t\t\t\t[event.target.name]: true\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tconst _handleChangeLevelsVoice = event => {\r\n\t\tif (event.target.name === 'cfn1LevelVoice') {\r\n\t\t\t// Filtrar\r\n\t\t\tlet cfn2LevelsVoice = dropdowns.cfnLevelsRelationVoice\r\n\t\t\t\t.filter(x => x.cfn1LevelId === event.target.value)\r\n\t\t\t\t.map(({ cfn2LevelId, cfn2LevelName }) => ({\r\n\t\t\t\t\tvalue: cfn2LevelId,\r\n\t\t\t\t\ttext: cfn2LevelName\r\n\t\t\t\t}));\r\n\r\n\t\t\t// Distintos\r\n\t\t\tcfn2LevelsVoice = [...new Map(cfn2LevelsVoice.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tcfn2LevelVoice: undefined,\r\n\t\t\t\t\tcfn3LevelVoice: undefined,\r\n\t\t\t\t\tcfn2LevelsVoice,\r\n\t\t\t\t\tcfn3LevelsVoice: [],\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'cfn2LevelVoice') {\r\n\t\t\t// Filtrar\r\n\t\t\tlet cfn3LevelsVoice = dropdowns.cfnLevelsRelationVoice\r\n\t\t\t\t.filter(x => x.cfn2LevelId === event.target.value)\r\n\t\t\t\t.map(({ cfn3LevelId, cfn3LevelName }) => ({\r\n\t\t\t\t\tvalue: cfn3LevelId,\r\n\t\t\t\t\ttext: cfn3LevelName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tcfn3LevelsVoice = [...new Map(cfn3LevelsVoice.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\t\tcfn3LevelVoice: undefined,\r\n\t\t\t\t\tcfn3LevelsVoice,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t} else if (event.target.name === 'cfn3LevelVoice') {\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\t[event.target.name]: event.target.value\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst _addField = (event, label, name) => {\r\n\t\tdispatch(ToggleOptionsFailuresTrackerForm(true, label, name));\r\n\t};\r\n\r\n\tuseMemo(() => {\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[newDropdownField.name]: newDropdownField.id\r\n\t\t\t}\r\n\t\t});\r\n\t}, [newDropdownField]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (dropdowns && dropdowns.cfnLevelsRelationVoice) {\r\n\t\t\t// Filtrar\r\n\t\t\tlet cfn2LevelsVoice = dropdowns.cfnLevelsRelationVoice\r\n\t\t\t\t.filter(x => x.cfn1LevelId === formState.values.cfn1LevelVoice)\r\n\t\t\t\t.map(({ cfn2LevelId, cfn2LevelName }) => ({\r\n\t\t\t\t\tvalue: cfn2LevelId,\r\n\t\t\t\t\ttext: cfn2LevelName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tcfn2LevelsVoice = [...new Map(cfn2LevelsVoice.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\t// Filtrar\r\n\t\t\tlet cfn3LevelsVoice = dropdowns.cfnLevelsRelationVoice\r\n\t\t\t\t.filter(x => x.cfn2LevelId === formState.values.cfn2LevelVoice)\r\n\t\t\t\t.map(({ cfn3LevelId, cfn3LevelName }) => ({\r\n\t\t\t\t\tvalue: cfn3LevelId,\r\n\t\t\t\t\ttext: cfn3LevelName\r\n\t\t\t\t}));\r\n\t\t\t// Distintos\r\n\t\t\tcfn3LevelsVoice = [...new Map(cfn3LevelsVoice.map((item) => [item.value, item])).values()];\r\n\r\n\t\t\tsetFormState({\r\n\t\t\t\t...formState,\r\n\t\t\t\tvalues: {\r\n\t\t\t\t\t...formState.values,\r\n\t\t\t\t\tcfn2LevelsVoice,\r\n\t\t\t\t\tcfn3LevelsVoice\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}, [dropdowns]);\r\n\r\n\tconst _deleteField = (event, label, name, value, id) => {\r\n\t\tdispatch(ToggleOptionsFailuresTrackerForm(true, label, name, value, id));\r\n\t};\r\n\r\n\tconsole.log(tab);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{optionsfailuresTrackerFormVisibility && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\taria-controls=\"panel2bh-content\"\r\n\t\t\t\t\t\tid=\"panel2bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit Solution Owner\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _addField(e, 'Solution Owners', 'solutionOwner')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Solution Owners',\r\n\t\t\t\t\t\t\t\t\t\t\t'solutionOwner',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.solutionOwner.find(x => x.value === formState.values.solutionOwner).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.solutionOwner\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\taria-controls=\"panel4bh-content\"\r\n\t\t\t\t\t\tid=\"panel4bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit Solution\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _addField(e, 'solution', 'solution')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'solution',\r\n\t\t\t\t\t\t\t\t\t\t\t'solution',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.solution.find(x => x.value === formState.values.solution).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.solution\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\taria-controls=\"panel5bh-content\"\r\n\t\t\t\t\t\tid=\"panel5bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit Status\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _addField(e, 'Status', 'status')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Status',\r\n\t\t\t\t\t\t\t\t\t\t\t'status',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.status.find(x => x.value === formState.values.status).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.status\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\taria-controls=\"panel6bh-content\"\r\n\t\t\t\t\t\tid=\"panel6bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit Failure Type\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _addField(e, 'Failure Type Voice', 'failureTypeVoice')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'Failure Type',\r\n\t\t\t\t\t\t\t\t\t\t\t'failureTypeVoice',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.failureTypeVoice.find(x => x.value === formState.values.failureTypeVoice).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.failureTypeVoice\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{/* \r\n\t\t\t\t\t}\r\n\t\t\t\t\t\taria-controls=\"panel7bh-content\"\r\n\t\t\t\t\t\tid=\"panel7bh-header\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tEdit CFN Levels\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _addField(e, 'CFN 1 Level', 'cfn1LevelVoice')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'CFN 1 Level',\r\n\t\t\t\t\t\t\t\t\t\t\t'cfn1LevelVoice',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.cfn1LevelVoice.find(x => x.value === formState.values.cfn1LevelVoice).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.cfn1LevelVoice\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _addField(e, 'CFN 2 Level', 'cfn2LevelVoice')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'CFN 2 Level',\r\n\t\t\t\t\t\t\t\t\t\t\t'cfn2LevelVoice',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.cfn2LevelVoice.find(x => x.value === formState.values.cfn2LevelVoice).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.cfn2LevelVoice\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _addField(e, 'CFN 3 Level', 'cfn3LevelVoice')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t _deleteField(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\t'CFN 3 Level',\r\n\t\t\t\t\t\t\t\t\t\t\t'cfn3LevelVoice',\r\n\t\t\t\t\t\t\t\t\t\t\tdropdowns.cfn3LevelVoice.find(x => x.value === formState.values.cfn3LevelVoice).text,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.values.cfn3LevelVoice\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t */}\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nFailuresTrackerOptionsDialog.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\ttab: PropTypes.string\r\n};\r\n\r\nexport default FailuresTrackerOptionsDialog;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tabs, Tab, Divider, Card, CardContent } from '@mui/material';\r\nimport { useParams } from 'react-router-dom';\r\nimport { Page, Header } from 'components';\r\nimport SpeedDial from '@mui/material/SpeedDial';\r\nimport SpeedDialIcon from '@mui/material/SpeedDialIcon';\r\nimport SpeedDialAction from '@mui/material/SpeedDialAction';\r\nimport AddBoxIcon from '@mui/icons-material/AddBox';\r\nimport FileOpenIcon from '@mui/icons-material/FileOpen';\r\nimport IosShareIcon from '@mui/icons-material/IosShare';\r\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts';\r\nimport { ExportFailuresVoice, ToggleOptionsFailuresTrackerDialog, ToggleVoiceEditFailureDialog } from '../actions/VoiceActions';\r\nimport { ExportFailuresPacket } from '../actions/PacketActions';\r\nimport Voice from './components/Voice/Voice';\r\nimport Packet from './components/Packet/Packet';\r\nimport FailuresTrackerOptionsDialog from './components/FailuresTrackerOptionsDialog';\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 { id } = useParams();\r\n\r\n\tconst [tab, setTab] = useState('voice');\r\n\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 optionsFailuresTrackerDialogVisibility = useSelector((state) => state.failuresReducer.optionsFailuresTrackerDialogVisibility);\r\n\r\n\tconst getData = useCallback(() => {\r\n\t\tif (id !== '0') {\r\n\t\t\tdispatch(ToggleVoiceEditFailureDialog(true, id));\r\n\t\t}\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\tconst _onOptionsClick = () => {\r\n\t\tdispatch(ToggleOptionsFailuresTrackerDialog(true));\r\n\t};\r\n\r\n\tconst _optionsFailuresTrackerDialogClose = () => {\r\n\t\tdispatch(ToggleOptionsFailuresTrackerDialog(false));\r\n\t};\r\n\r\n\tconst actions = [\r\n\t\t{ icon: , name: 'Export Incidents', id: 'exportIncidents' },\r\n\t];\r\n\r\n\tif (role === 'Administrator' || role === 'Manager') {\r\n\t\tactions.push({ icon: , name: 'Options', id: 'options' });\r\n\t}\r\n\r\n\tconst _handleSpeedDialClick = (action) => {\r\n\t\tif (action.id === 'exportIncidents') {\r\n\t\t\tif (tab === 'voice') {\r\n\t\t\t\tdispatch(ExportFailuresVoice(userId, role));\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(ExportFailuresPacket(userId, role));\r\n\t\t\t}\r\n\t\t} else if (action.id === 'options') {\r\n\t\t\t_onOptionsClick();\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t{actions.map((action) => (\r\n\t\t\t\t\t { _handleSpeedDialClick(action); }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{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\t{/* {tab === 'packet' &&

Under construction

} */}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t{optionsFailuresTrackerDialogVisibility && (\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, { useMemo } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport L from 'leaflet';\r\nimport 'leaflet.sync';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, FormControlLabel, TextField, Card, Grid, Switch } from '@mui/material';\r\nimport Autocomplete, { createFilterOptions } from '@mui/material/Autocomplete';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\n\r\nimport { SetFormState, GetSiteIdLocation, ToggleCarriersColorsDialog, ToggleCustomLayerDialog } from '../../actions/DualMapActions';\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.dualMapReducer.formState);\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\r\n\t// Map\r\n\tconst mapOne = maps.filter(item => item.id === 'dual-map')[0];\r\n\tconst driveTest = useSelector(state => state.dualMapReducer.driveTest);\r\n\tconst failuresVoice = useSelector(state => state.dualMapReducer.failuresVoice);\r\n\tconst failuresPacket = useSelector(state => state.dualMapReducer.failuresPacket);\r\n\tconst techBand = useSelector(state => state.dualMapReducer.techBand);\r\n\tconst sitesIds = useSelector(state => state.dualMapReducer.sitesIds);\r\n\tconst siteIdLocation = useSelector(state => state.dualMapReducer.siteIdLocation);\r\n\tconst customLayer = useSelector((state) => state.dualMapReducer.customLayer);\r\n\r\n\t// Map Compare\r\n\tconst mapTwo = maps.filter(item => item.id === 'dual-map-compare')[0];\r\n\tconst driveTestCompare = useSelector(state => state.dualMapReducer.driveTestCompare);\r\n\tconst failuresVoiceCompare = useSelector(state => state.dualMapReducer.failuresVoiceCompare);\r\n\tconst failuresPacketCompare = useSelector(state => state.dualMapReducer.failuresPacketCompare);\r\n\tconst techBandVoiceCompare = useSelector(state => state.dualMapReducer.techBandVoiceCompare);\r\n\tconst techBandPacketCompare = useSelector(state => state.dualMapReducer.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\tconst currentZoom = mapOne.instance.getZoom();\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tmapOne.instance.setZoom(currentZoom);\r\n\t\t\t}, 1);\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\t// mapOne.instance.sync(mapTwo.instance);\r\n\t\t// mapTwo.instance.sync(mapOne.instance);\r\n\r\n\t\tmapOne.instance.invalidateSize();\r\n\t\tmapTwo.instance.invalidateSize();\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\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\t// Fix map drift for Leaflet.sync\r\n\t\t\tconst zooms = mapOne.instance.getZoom();\r\n\t\t\tmapOne.instance.setZoom(zooms);\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\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// 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.techBandActive) {\r\n\t\t\t\t_autoZoom(mapOne.control, techBand.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// 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 handleChangeCustomLayer = (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 _onSiteIdChange = (value) => {\r\n\t\tif (value === null) {\r\n\t\t\tmapOne.control.RemoveLayerById('siteIdLocation');\r\n\t\t\tmapTwo.control.RemoveLayerById('siteIdLocation');\r\n\t\t} else {\r\n\t\t\tdispatch(GetSiteIdLocation(value.value));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _onCarriersColorsClick = (event) => {\r\n\t\tdispatch(ToggleCarriersColorsDialog(true));\r\n\t};\r\n\r\n\tconst _onCustomLayerClick = (event) => {\r\n\t\tdispatch(ToggleCustomLayerDialog(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// disabled={!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\t{/* }\r\n\t\t\t\t\t\t\t\tlabel=\"Custom Layer\"\r\n\t\t\t\t\t\t\t\tlabelPlacement=\"start\"\r\n\t\t\t\t\t\t\t\tchecked={formState.values.customLayer}\r\n\t\t\t\t\t\t\t\tonChange={handleChangeCustomLayer}\r\n\t\t\t\t\t\t\t\tdisabled={customLayer === ''}\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 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\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\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\tCarriers Colors\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}\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>\r\n\t\t\t\t\t\t\t\t\t\t\tCustom Layer\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}\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>\r\n\t\t\t\t\t\t\t\t\t\t\tUpload Kpis\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\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { TextField, Checkbox, Card, Grid } from '@mui/material';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\r\nimport { SelectField } from 'components';\r\nimport {\r\n\tSetFormState, SetSelectedDates, SetSelectedLogs,\r\n\tGetDriveTestsDrives, GetDriveTestsDates, GetDriveTestsLogs,\r\n\tGetDriveTest,\r\n\tGetDriveTestScannerCodes2g, GetDriveTestScannerCodes3g, GetDriveTestScannerCodes4g, GetDriveTestScannerCodes5g,\r\n\tGetDriveTestScanner,\r\n\tGetCrowdsourcing,\r\n\tGetFailuresPointsVoice, GetFailuresPointsPacket,\r\n\tSetSelectedDatesCompare\r\n} from '../../actions/DualMapActions';\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.dualMapReducer.formState);\r\n\r\n\tconst cities = useSelector((state) => state.dualMapReducer.cities);\r\n\tconst drives = useSelector((state) => state.dualMapReducer.drives);\r\n\tconst dates = useSelector((state) => state.dualMapReducer.dates);\r\n\tconst selectedDates = useSelector((state) => state.dualMapReducer.selectedDates);\r\n\tconst logs = useSelector((state) => state.dualMapReducer.logs);\r\n\tconst selectedLogs = useSelector((state) => state.dualMapReducer.selectedLogs);\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\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\t\tdispatch(SetSelectedDates([]));\r\n\t\tdispatch(SetSelectedDatesCompare([]));\r\n\t\tdispatch(SetSelectedLogs([]));\r\n\t\t// dispatch(SetSelectedLogsCompare(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\tdispatch(SetSelectedDates([]));\r\n\t\tdispatch(SetSelectedLogs([]));\r\n\t};\r\n\r\n\tconst _handleCloseDates = (optionDates) => {\r\n\t\tdispatch(SetSelectedDates(optionDates));\r\n\t\tdispatch(GetDriveTestsLogs(formState.values.selectedCity, optionDates));\r\n\r\n\t\tdispatch(SetSelectedLogs([]));\r\n\r\n\t\t// Scanner\r\n\t\tif (formState.values.selectedKpiScannerTech === '4g' && formState.values.kpi4gScanner !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes4g(userId, '4g', formState.values.selectedCity, selectedDates, formState.values.freq4g, formState.values.top4g));\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpi4gScanner,\r\n\t\t\t\tformState.values.freq4g, formState.values.top4g, formState.values.scannerPci\r\n\t\t\t));\r\n\t\t} else if (formState.values.selectedKpiScannerTech === '3g' && formState.values.kpi3gScanner !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes3g(userId, '3g', formState.values.selectedCity, selectedDates, formState.values.freq3g, formState.values.top3g));\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpi3gScanner,\r\n\t\t\t\tformState.values.freq3g, formState.values.top3g, formState.values.scannerSc\r\n\t\t\t));\r\n\t\t} else if (formState.values.selectedKpiScannerTech === '2g' && formState.values.kpi2gScanner !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes2g(userId, '2g', formState.values.selectedCity, selectedDates, formState.values.freq2g, formState.values.top2g));\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpi2gScanner,\r\n\t\t\t\tformState.values.freq2g, formState.values.top2g, formState.values.scannerBsic\r\n\t\t\t));\r\n\t\t} else if (formState.values.selectedKpiScannerTech === '5g' && formState.values.kpi5gScanner !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes5g(userId, '5g', formState.values.selectedCity, selectedDates, formState.values.freq5g, formState.values.top5g));\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.kpi5gScanner,\r\n\t\t\t\tformState.values.freq5g, formState.values.top5g, formState.values.scannerNrPci\r\n\t\t\t));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleCloseLogs = (optionLogs) => {\r\n\t\t// UE\r\n\t\tif (formState.values.selectedKpiTech === '5g' && formState.values.kpi5g !== undefined) {\r\n\t\t\tdispatch(GetDriveTest(userId, '5g', formState.values.selectedCity, selectedDates, optionLogs, formState.values.kpi5g));\r\n\t\t} else if (formState.values.selectedKpiTech === '4g' && formState.values.kpi4g !== undefined) {\r\n\t\t\tdispatch(GetDriveTest(userId, '4g', formState.values.selectedCity, selectedDates, optionLogs, formState.values.kpi4g));\r\n\t\t} else if (formState.values.selectedKpiTech === '3g' && formState.values.kpi3g !== undefined) {\r\n\t\t\tdispatch(GetDriveTest(userId, '3g', formState.values.selectedCity, selectedDates, optionLogs, formState.values.kpi3g));\r\n\t\t} else if (formState.values.selectedKpiTech === '2g' && formState.values.kpi2g !== undefined) {\r\n\t\t\tdispatch(GetDriveTest(userId, '2g', formState.values.selectedCity, selectedDates, optionLogs, formState.values.kpi2g));\r\n\t\t} else if (formState.values.selectedKpiTech === 'common' && formState.values.kpiCommon !== undefined) {\r\n\t\t\tdispatch(GetDriveTest(userId, 'common', formState.values.selectedCity, selectedDates, optionLogs, formState.values.kpiCommon));\r\n\t\t}\r\n\r\n\t\t// Crowdsourcing\r\n\t\t// if (formState.values.selectedKpiCrowdsourcingTech === '4g' && formState.values.kpiCrowdsourcing4g !== undefined) {\r\n\t\t// \tdispatch(GetCrowdsourcing(userId, '4g', formState.values.selectedCity, selectedDates, formState.values.kpiCrowdsourcing4g));\r\n\t\t// } else if (formState.values.selectedKpiCrowdsourcingTech === '3g' && formState.values.kpiCrowdsourcing3g !== undefined) {\r\n\t\t// \tdispatch(GetCrowdsourcing(userId, '3g', formState.values.selectedCity, selectedDates, formState.values.kpiCrowdsourcing3g));\r\n\t\t// } else if (formState.values.selectedKpiCrowdsourcingTech === '2g' && formState.values.kpiCrowdsourcing2g !== undefined) {\r\n\t\t// \tdispatch(GetCrowdsourcing(userId, '2g', formState.values.selectedCity, selectedDates, formState.values.kpiCrowdsourcing2g));\r\n\t\t// }\r\n\r\n\t\t// Failures\r\n\t\tif (formState.values.voiceActive) {\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsVoice(userId, role, formState.values.selectedCity, selectedDates, optionLogs, formState.values.failureTypeVoice, formState.values.cfn1LevelVoice)\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (formState.values.packetActive) {\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsPacket(userId, role, formState.values.selectedCity, selectedDates, optionLogs, formState.values.failureTypePacket, formState.values.cfn1LevelPacket)\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleChangeDates = (event, option, reason) => {\r\n\t\tdispatch(SetSelectedDates(option));\r\n\t\tif (reason === 'removeOption') {\r\n\t\t\t_handleCloseDates(option);\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleChangeLogs = (event, option, reason) => {\r\n\t\tdispatch(SetSelectedLogs(option));\r\n\t\tif (reason === 'removeOption') {\r\n\t\t\t_handleCloseLogs(option);\r\n\t\t}\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 { _handleChangeDates(event, value, reason); }}\r\n\t\t\t\t\t\t\t\tonClose={() => { _handleCloseDates(selectedDates); }}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(option) => option.text}\r\n\t\t\t\t\t\t\t\trenderOption={(renderProps, 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: 8 }}\r\n\t\t\t\t\t\t\t\t\t\t\tchecked={selected}\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\t// defaultValue={[top100Films[13], top100Films[12], top100Films[11]]}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t// sx={{ width: '500px' }}\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 { _handleChangeLogs(event, value, reason); }}\r\n\t\t\t\t\t\t\t\tonClose={() => { _handleCloseLogs(selectedLogs); }}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(option) => option.text.slice(0, 32)}\r\n\t\t\t\t\t\t\t\trenderOption={(renderProps, 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: 8 }}\r\n\t\t\t\t\t\t\t\t\t\t\tchecked={selected}\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\t// defaultValue={[top100Films[13], top100Films[12], top100Films[11]]}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t// sx={{ width: '500px' }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { TextField, Checkbox, Card, Grid } from '@mui/material';\r\nimport { Autocomplete } from '@mui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\r\nimport { SelectField } from 'components';\r\nimport {\r\n\tSetFormState, SetSelectedDatesCompare,\r\n\tGetDriveTestsDrivesCompare, GetDriveTestsDatesCompare, GetDriveTestCompare,\r\n\tGetDriveTestScannerCodes2gCompare, GetDriveTestScannerCodes3gCompare, GetDriveTestScannerCodes4gCompare, GetDriveTestScannerCodes5gCompare,\r\n\tGetDriveTestScannerCompare,\r\n\tGetFailuresPointsVoiceCompare, GetFailuresPointsPacketCompare, GetCrowdsourcingCompare\r\n} from '../../actions/DualMapActions';\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.dualMapReducer.formState);\r\n\tconst cities = useSelector((state) => state.dualMapReducer.citiesCompare);\r\n\tconst drives = useSelector((state) => state.dualMapReducer.drivesCompare);\r\n\tconst dates = useSelector((state) => state.dualMapReducer.datesCompare);\r\n\tconst selectedDates = useSelector((state) => state.dualMapReducer.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 _handleCloseDates = (option) => {\r\n\t\t// UE\r\n\t\tif (formState.values.selectedKpiTechCompare === '5g' && formState.values.kpi5gCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestCompare(userId, '5g', formState.values.selectedCity, option, formState.values.kpi5gCompare));\r\n\t\t} else if (formState.values.selectedKpiTechCompare === '4g' && formState.values.kpi4gCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestCompare(userId, '4g', formState.values.selectedCity, option, formState.values.kpi4gCompare));\r\n\t\t} else if (formState.values.selectedKpiTechCompare === '3g' && formState.values.kpi3gCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestCompare(userId, '3g', formState.values.selectedCity, option, formState.values.kpi3gCompare));\r\n\t\t} else if (formState.values.selectedKpiTechCompare === '2g' && formState.values.kpi2gCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestCompare(userId, '2g', formState.values.selectedCity, option, formState.values.kpi2gCompare));\r\n\t\t} else if (formState.values.selectedKpiTech === 'common' && formState.values.kpiCommon !== undefined) {\r\n\t\t\tdispatch(GetDriveTestCompare(userId, 'common', formState.values.selectedCity, option, formState.values.kpiCommon));\r\n\t\t}\r\n\r\n\t\t// Scanner\r\n\t\tif (formState.values.selectedKpiScannerTechCompare === '4g' && formState.values.kpi4gScannerCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes4gCompare(userId, formState.values.selectedCity, option, formState.values.freq4gCompare, formState.values.top4gCompare));\r\n\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\tuserId, '4g', formState.values.selectedCity, option, formState.values.kpi4gScannerCompare,\r\n\t\t\t\tformState.values.freq4gCompare, formState.values.top4gCompare, formState.values.scannerPciCompare\r\n\t\t\t));\r\n\t\t} else if (formState.values.selectedKpiScannerTechCompare === '3g' && formState.values.kpi3gScannerCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes3gCompare(userId, formState.values.selectedCity, option, formState.values.freq3gCompare, formState.values.top3gCompare));\r\n\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\tuserId, '3g', formState.values.selectedCity, option, formState.values.kpi3gScannerCompare,\r\n\t\t\t\tformState.values.freq3gCompare, formState.values.top3gCompare, formState.values.scannerScCompare\r\n\t\t\t));\r\n\t\t} else if (formState.values.selectedKpiScannerTechCompare === '2g' && formState.values.kpi2gScannerCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes2gCompare(userId, formState.values.selectedCity, option, formState.values.freq2gCompare, formState.values.top2gCompare));\r\n\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\tuserId, '2g', formState.values.selectedCity, option, formState.values.kpi2gScannerCompare,\r\n\t\t\t\tformState.values.freq2gCompare, formState.values.top2gCompare, formState.values.scannerBsicCompare\r\n\t\t\t));\r\n\t\t} else if (formState.values.selectedKpiScannerTechCompare === '5g' && formState.values.kpi5gScannerCompare !== undefined) {\r\n\t\t\tdispatch(GetDriveTestScannerCodes5gCompare(userId, formState.values.selectedCity, option, formState.values.freq5gCompare, formState.values.top5gCompare));\r\n\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\tuserId, '5g', formState.values.selectedCity, option, formState.values.kpi5gScannerCompare,\r\n\t\t\t\tformState.values.freq5gCompare, formState.values.top5gCompare, formState.values.scannerPciCompare\r\n\t\t\t));\r\n\t\t}\r\n\r\n\t\t// Crowdsourcing\r\n\t\tif (formState.values.selectedKpiCrowdsourcingTech === '4g' && formState.values.kpiCrowdsourcing4g !== undefined) {\r\n\t\t\tdispatch(GetCrowdsourcingCompare(userId, '4g', formState.values.selectedCity, option, formState.values.kpiCrowdsourcing4g));\r\n\t\t} else if (formState.values.selectedKpiCrowdsourcingTech === '3g' && formState.values.kpiCrowdsourcing3g !== undefined) {\r\n\t\t\tdispatch(GetCrowdsourcingCompare(userId, '3g', formState.values.selectedCity, option, formState.values.kpiCrowdsourcing3g));\r\n\t\t} else if (formState.values.selectedKpiCrowdsourcingTech === '2g' && formState.values.kpiCrowdsourcing2g !== undefined) {\r\n\t\t\tdispatch(GetCrowdsourcingCompare(userId, '2g', formState.values.selectedCity, option, formState.values.kpiCrowdsourcing2g));\r\n\t\t}\r\n\r\n\t\t// Failures\r\n\t\tif (formState.values.voiceActiveCompare) {\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsVoiceCompare(userId, role, formState.values.selectedCity, option, formState.values.failureTypeVoiceCompare, formState.values.cfn1LevelVoiceCompare)\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (formState.values.packetActiveCompare) {\r\n\t\t\tdispatch(\r\n\t\t\t\tGetFailuresPointsPacketCompare(userId, role, formState.values.selectedCity, option, formState.values.failureTypePacketCompare, formState.values.cfn1LevelPacketCompare)\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleChangeDates = (event, option, reason) => {\r\n\t\tdispatch(SetSelectedDatesCompare(option));\r\n\t\tif (reason === 'removeOption') {\r\n\t\t\t_handleCloseDates(option);\r\n\t\t}\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 { _handleChangeDates(event, value, reason); }}\r\n\t\t\t\t\t\t\t\tonClose={() => { _handleCloseDates(selectedDates); }}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(option) => option.text}\r\n\t\t\t\t\t\t\t\trenderOption={(renderProps, 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: 8 }}\r\n\t\t\t\t\t\t\t\t\t\t\tchecked={selected}\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\t// defaultValue={[top100Films[13], top100Films[12], top100Films[11]]}\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t// sx={{ width: '500px' }}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\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 _ from 'underscore';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { makeStyles } from '@mui/styles';\r\nimport L from 'leaflet';\r\nimport {\r\n\tCollapse, Divider, FormControlLabel, Radio, RadioGroup, Typography, Checkbox, Card,\r\n\tListItemText, ListItemIcon, ListItem, List, FormGroup, Button\r\n} from '@mui/material';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport { SelectField } from 'components';\r\nimport PhoneAndroidIcon from '@mui/icons-material/PhoneAndroid';\r\nimport SettingsInputAntennaIcon from '@mui/icons-material/SettingsInputAntenna';\r\nimport AppsIcon from '@mui/icons-material/Apps';\r\nimport BubbleChartIcon from '@mui/icons-material/BubbleChart';\r\nimport ExpandLess from '@mui/icons-material/ExpandLess';\r\nimport ExpandMore from '@mui/icons-material/ExpandMore';\r\nimport EventAvailableIcon from '@mui/icons-material/EventAvailable';\r\nimport ScannerIcon from '@mui/icons-material/Scanner';\r\nimport GroupsIcon from '@mui/icons-material/Groups';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport {\r\n\tSetFormState, GetFailuresPointsVoice, GetFailuresPointsPacket,\r\n\tGetDriveTest, GetUeRoute,\r\n\tGetDriveTestScannerFrequencies2g, GetDriveTestScannerFrequencies3g, GetDriveTestScannerFrequencies4g, GetDriveTestScannerFrequencies5g,\r\n\tGetDriveTestScannerCodes2g, GetDriveTestScannerCodes3g, GetDriveTestScannerCodes4g, GetDriveTestScannerCodes5g,\r\n\tGetDriveTestScanner, GetScannerRoute,\r\n\tGetTopology2g, GetTopology3g, GetTopology4g, GetTopology5g, GetCrowdsourcing,\r\n\tExportScanner\r\n} from '../../actions/DualMapActions';\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 history = useHistory();\r\n\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst baseURL = window.location.origin;\r\n\r\n\t// const failures = useSelector(state => state.dualMapReducer.failures;\r\n\t// Map\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst formState = useSelector((state) => state.dualMapReducer.formState);\r\n\tconst mapOne = maps.filter(item => item.id === 'dual-map')[0];\r\n\tconst selectedDates = useSelector((state) => state.dualMapReducer.selectedDates);\r\n\tconst selectedLogs = useSelector((state) => state.dualMapReducer.selectedLogs);\r\n\tconst failuresFilters = useSelector(state => state.dualMapReducer.failuresFilters);\r\n\tconst failuresVoice = useSelector(state => state.dualMapReducer.failuresVoice);\r\n\tconst failuresPacket = useSelector(state => state.dualMapReducer.failuresPacket);\r\n\tconst topology2gData = useSelector(state => state.dualMapReducer.topology2gData);\r\n\tconst topology3gData = useSelector(state => state.dualMapReducer.topology3gData);\r\n\tconst topology4gData = useSelector(state => state.dualMapReducer.topology4gData);\r\n\tconst topology5gData = useSelector(state => state.dualMapReducer.topology5gData);\r\n\tconst topologyLabelsData = useSelector(state => state.dualMapReducer.topologyLabelsData);\r\n\tconst techBand = useSelector(state => state.dualMapReducer.techBand);\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 driveTestScannerFrequencies2g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies2g);\r\n\tconst driveTestScannerFrequencies3g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies3g);\r\n\tconst driveTestScannerFrequencies4g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies4g);\r\n\tconst driveTestScannerFrequencies5g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies5g);\r\n\tconst driveTestScannerCodes2g = useSelector(state => state.dualMapReducer.driveTestScannerCodes2g);\r\n\tconst driveTestScannerCodes3g = useSelector(state => state.dualMapReducer.driveTestScannerCodes3g);\r\n\tconst driveTestScannerCodes4g = useSelector(state => state.dualMapReducer.driveTestScannerCodes4g);\r\n\tconst driveTestScannerCodes5g = useSelector(state => state.dualMapReducer.driveTestScannerCodes5g);\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\tconst [state, setState] = React.useState({\r\n\t\ttechBandSelection: false,\r\n\t\tvoice: false,\r\n\t\tpacket: false,\r\n\t\ttopologyLabels: false,\r\n\t\ttopology2g900: false,\r\n\t\ttopology2g1800: false,\r\n\t\ttopology3g900: false,\r\n\t\ttopology3g2100: false,\r\n\t\ttopology4g800: false,\r\n\t\ttopology4g2100: false,\r\n\t\ttopology4g2600: false,\r\n\t\ttopology5g78: false,\r\n\t});\r\n\r\n\tconst {\r\n\t\tvoice, packet,\r\n\t\ttopologyLabels,\r\n\t\ttopology2g900, topology2g1800,\r\n\t\ttopology3g900, topology3g2100,\r\n\t\ttopology4g800, topology4g2100, topology4g2600,\r\n\t\ttopology5g78,\r\n\t} = state;\r\n\r\n\t// UE\r\n\tconst [openUe, setOpenUe] = React.useState(false);\r\n\tconst [open5g, setOpen5g] = 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\tconst [value5g, setValue5g] = React.useState('none');\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\tconst [valueCommon, setValueCommon] = React.useState('none');\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 [openScanner5g, setOpenScanner5g] = 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\tconst [valueScanner4g, setValueScanner4g] = React.useState('none');\r\n\tconst [valueScanner5g, setValueScanner5g] = React.useState('none');\r\n\tconst [valueScanner3g, setValueScanner3g] = React.useState('none');\r\n\tconst [valueScanner2g, setValueScanner2g] = React.useState('none');\r\n\r\n\t// Crowdsourcing\r\n\tconst [openCrowdsourcing, setOpenCrowdsourcing] = React.useState(false);\r\n\tconst [openCrowdsourcing5g, setOpenCrowdsourcing5g] = React.useState(false);\r\n\tconst [openCrowdsourcing4g, setOpenCrowdsourcing4g] = React.useState(false);\r\n\tconst [openCrowdsourcing3g, setOpenCrowdsourcing3g] = React.useState(false);\r\n\tconst [openCrowdsourcing2g, setOpenCrowdsourcing2g] = React.useState(false);\r\n\tconst [valueCrowdsourcing5g, setValueCrowdsourcing5g] = React.useState('none');\r\n\tconst [valueCrowdsourcing4g, setValueCrowdsourcing4g] = React.useState('none');\r\n\tconst [valueCrowdsourcing3g, setValueCrowdsourcing3g] = React.useState('none');\r\n\tconst [valueCrowdsourcing2g, setValueCrowdsourcing2g] = 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 handleClick5g = () => {\r\n\t\tsetOpen5g(!open5g);\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 handleClickScanner5g = () => {\r\n\t\tsetOpenScanner5g(!openScanner5g);\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\t// Crowdsourcing\r\n\tconst handleClickCrowdsourcing = () => {\r\n\t\tsetOpenCrowdsourcing(!openCrowdsourcing);\r\n\t};\r\n\tconst handleClickCrowdsourcing5g = () => {\r\n\t\tsetOpenCrowdsourcing5g(!openCrowdsourcing5g);\r\n\t};\r\n\tconst handleClickCrowdsourcing4g = () => {\r\n\t\tsetOpenCrowdsourcing4g(!openCrowdsourcing4g);\r\n\t};\r\n\tconst handleClickCrowdsourcing3g = () => {\r\n\t\tsetOpenCrowdsourcing3g(!openCrowdsourcing3g);\r\n\t};\r\n\tconst handleClickCrowdsourcing2g = () => {\r\n\t\tsetOpenCrowdsourcing2g(!openCrowdsourcing2g);\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, selectedLogs, 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, selectedLogs, 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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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} 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} 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} 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}\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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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} 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} 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} 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}\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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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} 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} 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} 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} 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} 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}\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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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} 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}\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\tif (mapOne) {\r\n\t\t\tif (event.target.checked) {\r\n\t\t\t\tif (topologyLabelsData && topologyLabelsData.length !== 0) {\r\n\t\t\t\t\tmapOne.control.addTopologyLabels(topologyLabelsData, 'topologyLabels');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tmapOne.control.RemoveLayerById('topologyLabels');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeUeRoute = (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\tueRoute: true\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tdispatch(GetUeRoute(userId, formState.values.selectedCity, selectedDates, selectedLogs));\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\tueRoute: false\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\t_removeLayerById(mapOne.control, 'ueRoute');\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\r\n\t\tconst button = ``;\r\n\r\n\t\t// Retornar a tabela e o botão\r\n\t\treturn table + button;\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\tlet marker = [];\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\tmarker = 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\tmarker = 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\tmarker = 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\tmarker = 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\tmarker = 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\tmarker.on('popupopen', () => {\r\n\t\t\t\t\tconst buttons = document.querySelectorAll('.failurePopupBtn');\r\n\t\t\t\t\tbuttons.forEach((button) => {\r\n\t\t\t\t\t\tconst buttonValue = button.getAttribute('data-value');\r\n\t\t\t\t\t\tbutton.addEventListener('click', () => {\r\n\t\t\t\t\t\t\t// history.push(`/modules/failuresTracker/${buttonValue}`);\r\n\t\t\t\t\t\t\tif (baseURL.includes('localhost')) {\r\n\t\t\t\t\t\t\t\twindow.open(`/modules/failuresTracker/${buttonValue}`, '_blank');\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twindow.open(`/PortalVdfUkPpsApp/modules/failuresTracker/${buttonValue}`, '_blank');\r\n\t\t\t\t\t\t\t}\r\n\t\t\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\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\tif (topology3gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology3g(topology3gData.topology3gDto, 'topology3g');\r\n\t\t\t}\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\tif (topology5gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology5g(topology5gData.topology5gDto, 'topology5g');\r\n\t\t\t}\r\n\r\n\t\t\tif (topologyLabels) {\r\n\t\t\t\tif (topologyLabelsData && topologyLabelsData.length !== 0) {\r\n\t\t\t\t\tmapOne.control.addTopologyLabels(topologyLabelsData, 'topologyLabels');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology2gData, topology3gData, topology4gData, topology5gData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_addLayerTechBandKpi(mapOne.control, techBand.driveTestTechBand, techBand.driveTestTechBandLegend, formState.values.mapAutoZoom, 'techBand');\r\n\t\t}\r\n\t}, [techBand]);\r\n\r\n\t// UE\r\n\tconst handleChange5g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g(event.target.value);\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTech: '5g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetDriveTest(userId, '5g', formState.values.selectedCity, selectedDates, selectedLogs, event.target.value));\r\n\t};\r\n\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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTech: '4g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetDriveTest(userId, '4g', formState.values.selectedCity, selectedDates, selectedLogs, 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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTech: '3g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetDriveTest(userId, '3g', formState.values.selectedCity, selectedDates, selectedLogs, 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\tsetValue5g('none');\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTech: '2g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetDriveTest(userId, '2g', formState.values.selectedCity, selectedDates, selectedLogs, event.target.value));\r\n\t};\r\n\r\n\t// Scanner\r\n\tconst handleChangeScanner5g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g(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: '5g',\r\n\t\t\t\tselectedKpiTech: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tif (formState.values.freq5g !== '') {\r\n\t\t\tdispatch(GetDriveTestScanner(\r\n\t\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\t\tformState.values.freq5g, formState.values.top5g, formState.values.scannerPci\r\n\t\t\t));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeScanner4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g(event.target.value);\r\n\t\tsetValueScanner5g('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: '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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g(event.target.value);\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g(event.target.value);\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('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\t// Common\r\n\tconst handleChangeCommon = (event) => {\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValue4g('none');\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetValueCommon(event.target.value);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTech: 'common',\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTest(userId, 'common', formState.values.selectedCity, selectedDates, selectedLogs, event.target.value));\r\n\t};\r\n\r\n\t// Crowdsourcing\r\n\tconst handleChangeCrowdsourcing5g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValueCrowdsourcing2g('none');\r\n\t\tsetValueCrowdsourcing3g('none');\r\n\t\tsetValueCrowdsourcing4g('none');\r\n\t\tsetValueCrowdsourcing5g(event.target.value);\r\n\t\tsetOpenCrowdsourcing2g(false);\r\n\t\tsetOpenCrowdsourcing3g(false);\r\n\t\tsetOpenCrowdsourcing4g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTech: '5g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcing(userId, '5g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChangeCrowdsourcing4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValueCrowdsourcing2g('none');\r\n\t\tsetValueCrowdsourcing3g('none');\r\n\t\tsetValueCrowdsourcing4g(event.target.value);\r\n\t\tsetValueCrowdsourcing5g('none');\r\n\t\tsetOpenCrowdsourcing2g(false);\r\n\t\tsetOpenCrowdsourcing3g(false);\r\n\t\tsetOpenCrowdsourcing5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTech: '4g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcing(userId, '4g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChangeCrowdsourcing3g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValue2g('none');\r\n\t\tsetValueCrowdsourcing3g(event.target.value);\r\n\t\tsetValueCrowdsourcing4g('none');\r\n\t\tsetValueCrowdsourcing5g('none');\r\n\t\tsetOpenCrowdsourcing2g(false);\r\n\t\tsetOpenCrowdsourcing4g(false);\r\n\t\tsetOpenCrowdsourcing5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTech: '3g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcing(userId, '3g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChangeCrowdsourcing2g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValueCrowdsourcing2g(event.target.value);\r\n\t\tsetValueCrowdsourcing3g('none');\r\n\t\tsetValueCrowdsourcing4g('none');\r\n\t\tsetValueCrowdsourcing5g('none');\r\n\t\tsetOpenCrowdsourcing3g(false);\r\n\t\tsetOpenCrowdsourcing4g(false);\r\n\t\tsetOpenCrowdsourcing5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTech: '2g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcing(userId, '2g', formState.values.selectedCity, selectedDates, event.target.value));\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, selectedLogs, 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, selectedLogs, 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 frequencies5g = [\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 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 topList2g = [\r\n\t\t// { value: 'O2', text: 'O2' },\r\n\t\t// { value: 'VF', text: 'Vodafone' },\r\n\t\t// { value: 'OR', text: 'OR' },\r\n\t\t// { value: 'TM', text: 'TM' },\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 topList = [\r\n\t\t// { value: 'O2', text: 'O2' },\r\n\t\t// { value: 'VF', text: 'Vodafone' },\r\n\t\t// { value: 'EE', text: 'EE' },\r\n\t\t// { value: 'TH', text: 'TH' },\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 _handleChangeFrequency5g = (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: '5g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes5g(userId, '5g', formState.values.selectedCity, selectedDates, event.target.value, formState.values.top5g));\r\n\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.kpi5gScanner,\r\n\t\t\tevent.target.value, formState.values.top5g, formState.values.scannerPci\r\n\t\t));\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(GetDriveTestScannerCodes4g(userId, '4g', 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(GetDriveTestScannerCodes3g(userId, '3g', 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(GetDriveTestScannerCodes2g(userId, '2g', 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 _handleChangeTop5g = (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: '5g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerFrequencies5g(\r\n\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.freq5g, event.target.value\r\n\t\t));\r\n\r\n\t\t// dispatch(GetDriveTestScanner(\r\n\t\t// \tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.kpi5gScanner,\r\n\t\t// \tformState.values.freq5g, event.target.value, formState.values.scannerPci\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(GetDriveTestScannerFrequencies4g(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.freq4g, event.target.value\r\n\t\t));\r\n\r\n\t\t// dispatch(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(GetDriveTestScannerFrequencies3g(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.freq3g, event.target.value\r\n\t\t));\r\n\r\n\t\t// dispatch(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(GetDriveTestScannerFrequencies2g(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.freq2g, event.target.value\r\n\t\t));\r\n\r\n\t\t// dispatch(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\r\n\tconst _handleChangeNrPci = (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: '5g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScanner(\r\n\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.kpi5gScanner,\r\n\t\t\tformState.values.freq5g, formState.values.top5g, event.target.value\r\n\t\t));\r\n\t};\r\n\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\tconst _onExportScannerClick = () => {\r\n\t\tdispatch(ExportScanner(formState.values.drive, selectedDates));\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\tlabel=\"Labels\"\r\n\t\t\t\t\t\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\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\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\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\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\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\" />\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{open5g ? : }\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\" />\r\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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Tech Band\" />\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\tlabel=\"Route\"\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{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\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\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\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\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\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\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{openScanner5g ? : }\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\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\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 } label=\"RSSI\" />\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\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{openCrowdsourcing ? : }\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{openCrowdsourcing2g ? : }\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\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{openCrowdsourcing3g ? : }\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\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{openCrowdsourcing4g ? : }\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\" />\r\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{openCrowdsourcing5g ? : }\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\" />\r\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\t\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{openEvents ? : }\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 */}\r\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{openEventsVoice ? : }\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\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/>\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\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\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\r\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\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\r\n\t\t\t\t\t\t\t\t\t\t\t{openEventsPacket ? : }\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\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/>\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\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\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\tExport Scanner\r\n\t\t\t\t\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 _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport L from 'leaflet';\r\nimport {\r\n\tCollapse, Divider, FormControlLabel, Radio, RadioGroup,\r\n\tTypography, Checkbox, Card, ListItemText, ListItemIcon,\r\n\tListItem, List, FormGroup\r\n} from '@mui/material';\r\nimport { onUpdateLegend } from 'components/Map/actions/MapActions';\r\nimport { SelectField } from 'components';\r\nimport PhoneAndroidIcon from '@mui/icons-material/PhoneAndroid';\r\nimport SettingsInputAntennaIcon from '@mui/icons-material/SettingsInputAntenna';\r\nimport AppsIcon from '@mui/icons-material/Apps';\r\nimport BubbleChartIcon from '@mui/icons-material/BubbleChart';\r\nimport ExpandLess from '@mui/icons-material/ExpandLess';\r\nimport ExpandMore from '@mui/icons-material/ExpandMore';\r\nimport EventAvailableIcon from '@mui/icons-material/EventAvailable';\r\nimport ScannerIcon from '@mui/icons-material/Scanner';\r\nimport {\r\n\tSetFormState, GetFailuresPointsVoiceCompare, GetFailuresPointsPacketCompare,\r\n\tGetDriveTestCompare,\r\n\tGetDriveTestScannerFrequencies2gCompare, GetDriveTestScannerFrequencies3gCompare, GetDriveTestScannerFrequencies4gCompare, GetDriveTestScannerFrequencies5gCompare,\r\n\tGetDriveTestScannerCodes2gCompare, GetDriveTestScannerCodes3gCompare, GetDriveTestScannerCodes4gCompare, GetDriveTestScannerCodes5gCompare,\r\n\tGetDriveTestScannerCompare, GetScannerRouteCompare,\r\n\tGetTopology2gCompare, GetTopology3gCompare, GetTopology4gCompare, GetTopology5gCompare, GetCrowdsourcingCompare\r\n} from '../../actions/DualMapActions';\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// Map\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\tconst formState = useSelector((state) => state.dualMapReducer.formState);\r\n\tconst mapOne = maps.filter(item => item.id === 'dual-map-compare')[0];\r\n\tconst selectedDates = useSelector((state) => state.dualMapReducer.selectedDatesCompare);\r\n\tconst failuresFilters = useSelector(state => state.dualMapReducer.failuresFiltersCompare);\r\n\tconst failuresVoice = useSelector(state => state.dualMapReducer.failuresVoiceCompare);\r\n\tconst failuresPacket = useSelector(state => state.dualMapReducer.failuresPacketCompare);\r\n\tconst topology2gData = useSelector(state => state.dualMapReducer.topology2gDataCompare);\r\n\tconst topology3gData = useSelector(state => state.dualMapReducer.topology3gDataCompare);\r\n\tconst topology4gData = useSelector(state => state.dualMapReducer.topology4gDataCompare);\r\n\tconst topology5gData = useSelector(state => state.dualMapReducer.topology5gDataCompare);\r\n\tconst topologyLabelsData = useSelector(state => state.dualMapReducer.topologyLabelsDataCompare);\r\n\tconst techBandVoice = useSelector(state => state.dualMapReducer.techBandVoiceCompare);\r\n\tconst techBandPacket = useSelector(state => state.dualMapReducer.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 driveTestScannerFrequencies2g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies2gCompare);\r\n\tconst driveTestScannerFrequencies3g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies3gCompare);\r\n\tconst driveTestScannerFrequencies4g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies4gCompare);\r\n\tconst driveTestScannerFrequencies5g = useSelector(state => state.dualMapReducer.driveTestScannerFrequencies5gCompare);\r\n\tconst driveTestScannerCodes2g = useSelector(state => state.dualMapReducer.driveTestScannerCodes2gCompare);\r\n\tconst driveTestScannerCodes3g = useSelector(state => state.dualMapReducer.driveTestScannerCodes3gCompare);\r\n\tconst driveTestScannerCodes4g = useSelector(state => state.dualMapReducer.driveTestScannerCodes4gCompare);\r\n\tconst driveTestScannerCodes5g = useSelector(state => state.dualMapReducer.driveTestScannerCodes5gCompare);\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\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\ttopologyLabels: false,\r\n\t\ttopology2g900: false,\r\n\t\ttopology2g1800: false,\r\n\t\ttopology3g900: false,\r\n\t\ttopology3g2100: false,\r\n\t\ttopology4g800: false,\r\n\t\ttopology4g2100: false,\r\n\t\ttopology4g2600: false,\r\n\t\ttopology5g78: false,\r\n\t});\r\n\r\n\tconst {\r\n\t\tvoice, packet,\r\n\t\ttopologyLabels,\r\n\t\ttopology2g900, topology2g1800,\r\n\t\ttopology3g900, topology3g2100,\r\n\t\ttopology4g800, topology4g2100, topology4g2600,\r\n\t\ttopology5g78,\r\n\t} = state;\r\n\r\n\t// UE\r\n\tconst [openUe, setOpenUe] = React.useState(false);\r\n\tconst [open5g, setOpen5g] = 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\tconst [value5g, setValue5g] = React.useState('none');\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\tconst [valueCommon, setValueCommon] = React.useState('none');\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 [openScanner5g, setOpenScanner5g] = 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\tconst [valueScanner4g, setValueScanner4g] = React.useState('none');\r\n\tconst [valueScanner5g, setValueScanner5g] = React.useState('none');\r\n\tconst [valueScanner3g, setValueScanner3g] = React.useState('none');\r\n\tconst [valueScanner2g, setValueScanner2g] = React.useState('none');\r\n\r\n\t// Crowdsourcing\r\n\tconst [openCrowdsourcing, setOpenCrowdsourcing] = React.useState(false);\r\n\tconst [openCrowdsourcing5g, setOpenCrowdsourcing5g] = React.useState(false);\r\n\tconst [openCrowdsourcing4g, setOpenCrowdsourcing4g] = React.useState(false);\r\n\tconst [openCrowdsourcing3g, setOpenCrowdsourcing3g] = React.useState(false);\r\n\tconst [openCrowdsourcing2g, setOpenCrowdsourcing2g] = React.useState(false);\r\n\tconst [valueCrowdsourcing5g, setValueCrowdsourcing5g] = React.useState('none');\r\n\tconst [valueCrowdsourcing4g, setValueCrowdsourcing4g] = React.useState('none');\r\n\tconst [valueCrowdsourcing3g, setValueCrowdsourcing3g] = React.useState('none');\r\n\tconst [valueCrowdsourcing2g, setValueCrowdsourcing2g] = 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 handleClick5g = () => {\r\n\t\tsetOpen5g(!open5g);\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 handleClickScanner5g = () => {\r\n\t\tsetOpenScanner5g(!openScanner5g);\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\t// Crowdsourcing\r\n\tconst handleClickCrowdsourcing = () => {\r\n\t\tsetOpenCrowdsourcing(!openCrowdsourcing);\r\n\t};\r\n\tconst handleClickCrowdsourcing5g = () => {\r\n\t\tsetOpenCrowdsourcing5g(!openCrowdsourcing5g);\r\n\t};\r\n\tconst handleClickCrowdsourcing4g = () => {\r\n\t\tsetOpenCrowdsourcing4g(!openCrowdsourcing4g);\r\n\t};\r\n\tconst handleClickCrowdsourcing3g = () => {\r\n\t\tsetOpenCrowdsourcing3g(!openCrowdsourcing3g);\r\n\t};\r\n\tconst handleClickCrowdsourcing2g = () => {\r\n\t\tsetOpenCrowdsourcing2g(!openCrowdsourcing2g);\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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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} 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} 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} 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}\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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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} 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} 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} 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}\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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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(GetTopology4gCompare(userId, bands4g, mapBoundsPoints));\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} 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} 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} 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} 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}\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.instance;\r\n\t\t// const width = _map.getBounds().getEast() - _map.getBounds().getWest();\r\n\t\t// const 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} 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}\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\tif (mapOne) {\r\n\t\t\tif (event.target.checked) {\r\n\t\t\t\tif (topologyLabelsData && topologyLabelsData.length !== 0) {\r\n\t\t\t\t\tmapOne.control.addTopologyLabels(topologyLabelsData, 'topologyLabels');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tmapOne.control.RemoveLayerById('topologyLabels');\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\tif (topology3gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology3g(topology3gData.topology3gDto, 'topology3g');\r\n\t\t\t}\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\tif (topology5gData.length !== 0) {\r\n\t\t\t\tmapOne.control.updateTopology5g(topology5gData.topology5gDto, 'topology5g');\r\n\t\t\t}\r\n\r\n\t\t\tif (topologyLabels) {\r\n\t\t\t\tif (topologyLabelsData && topologyLabelsData.length !== 0) {\r\n\t\t\t\t\tmapOne.control.addTopologyLabels(topologyLabelsData, 'topologyLabels');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}, [topology2gData, topology3gData, topology4gData, topology5gData]);\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 handleChange5g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g(event.target.value);\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTechCompare: '5g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetDriveTestCompare(userId, '5g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTechCompare: '4g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTechCompare: '3g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\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\tsetValue5g('none');\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTechCompare: '2g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\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 handleChangeScanner5g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g(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: '5g',\r\n\t\t\t\tselectedKpiTechCompare: undefined\r\n\t\t\t},\r\n\t\t});\r\n\t\tif (formState.values.freq5g !== '') {\r\n\t\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, event.target.value,\r\n\t\t\t\tformState.values.freq5gCompare, formState.values.top5gCompare, formState.values.scannerPci\r\n\t\t\t));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleChangeScanner4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g(event.target.value);\r\n\t\tsetValueScanner5g('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: '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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g(event.target.value);\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('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\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g(event.target.value);\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('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\t// Common\r\n\tconst handleChangeCommon = (event) => {\r\n\t\tsetOpen2g(false);\r\n\t\tsetValue2g('none');\r\n\t\tsetOpen3g(false);\r\n\t\tsetValue3g('none');\r\n\t\tsetOpen4g(false);\r\n\t\tsetValue4g('none');\r\n\t\tsetValueCommon(event.target.value);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiTechCompare: 'common',\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestCompare(userId, 'common', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\t// Crowdsourcing\r\n\tconst handleChangeCrowdsourcing5g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValueCrowdsourcing2g('none');\r\n\t\tsetValueCrowdsourcing3g('none');\r\n\t\tsetValueCrowdsourcing4g('none');\r\n\t\tsetValueCrowdsourcing5g(event.target.value);\r\n\t\tsetOpenCrowdsourcing2g(false);\r\n\t\tsetOpenCrowdsourcing3g(false);\r\n\t\tsetOpenCrowdsourcing4g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTechCompare: '5g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcingCompare(userId, '5g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChangeCrowdsourcing4g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValueCrowdsourcing2g('none');\r\n\t\tsetValueCrowdsourcing3g('none');\r\n\t\tsetValueCrowdsourcing4g(event.target.value);\r\n\t\tsetValueCrowdsourcing5g('none');\r\n\t\tsetOpenCrowdsourcing2g(false);\r\n\t\tsetOpenCrowdsourcing3g(false);\r\n\t\tsetOpenCrowdsourcing5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTechCompare: '4g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcingCompare(userId, '4g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChangeCrowdsourcing3g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen2g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValue2g('none');\r\n\t\tsetValueCrowdsourcing3g(event.target.value);\r\n\t\tsetValueCrowdsourcing4g('none');\r\n\t\tsetValueCrowdsourcing5g('none');\r\n\t\tsetOpenCrowdsourcing2g(false);\r\n\t\tsetOpenCrowdsourcing4g(false);\r\n\t\tsetOpenCrowdsourcing5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTechCompare: '3g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcingCompare(userId, '3g', formState.values.selectedCity, selectedDates, event.target.value));\r\n\t};\r\n\r\n\tconst handleChangeCrowdsourcing2g = (event) => {\r\n\t\tsetValue2g('none');\r\n\t\tsetValue3g('none');\r\n\t\tsetValue4g('none');\r\n\t\tsetValue5g('none');\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen3g(false);\r\n\t\tsetOpen4g(false);\r\n\t\tsetOpen5g(false);\r\n\t\tsetValueScanner2g('none');\r\n\t\tsetValueScanner3g('none');\r\n\t\tsetValueScanner4g('none');\r\n\t\tsetValueScanner5g('none');\r\n\t\tsetOpenScanner2g(false);\r\n\t\tsetOpenScanner3g(false);\r\n\t\tsetOpenScanner4g(false);\r\n\t\tsetOpenScanner5g(false);\r\n\t\tsetValueCrowdsourcing2g(event.target.value);\r\n\t\tsetValueCrowdsourcing3g('none');\r\n\t\tsetValueCrowdsourcing4g('none');\r\n\t\tsetValueCrowdsourcing5g('none');\r\n\t\tsetOpenCrowdsourcing3g(false);\r\n\t\tsetOpenCrowdsourcing4g(false);\r\n\t\tsetOpenCrowdsourcing5g(false);\r\n\t\tsetFormState({\r\n\t\t\t...formState,\r\n\t\t\tvalues: {\r\n\t\t\t\t...formState.values,\r\n\t\t\t\t[event.target.name]: event.target.value,\r\n\t\t\t\tselectedKpiCrowdsourcingTechCompare: '2g',\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetCommonMenu(false);\r\n\t\tsetValueCommon('none');\r\n\t\tdispatch(GetCrowdsourcingCompare(userId, '2g', formState.values.selectedCity, selectedDates, event.target.value));\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 topList2g = [\r\n\t\t{ value: 'O2', text: 'O2' },\r\n\t\t{ value: 'VF', text: 'Vodafone' },\r\n\t\t{ value: 'OR', text: 'OR' },\r\n\t\t{ value: 'TM', text: 'TM' },\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 topList = [\r\n\t\t{ value: 'O2', text: 'O2' },\r\n\t\t{ value: 'VF', text: 'Vodafone' },\r\n\t\t{ value: 'EE', text: 'EE' },\r\n\t\t{ value: 'TH', text: 'TH' },\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 _handleChangeFrequency5g = (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: '5g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerCodes5gCompare(userId, '5g', formState.values.selectedCity, selectedDates, event.target.value, formState.values.top5gCompare));\r\n\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.kpi5gScannerCompare,\r\n\t\t\tevent.target.value, formState.values.top5gCompare, formState.values.scannerPciCompare\r\n\t\t));\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(GetDriveTestScannerCodes4gCompare(userId, '4g', 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(GetDriveTestScannerCodes3gCompare(userId, '3g', 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(GetDriveTestScannerCodes2gCompare(userId, '2g', 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 _handleChangeTop5g = (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: '5g'\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tdispatch(GetDriveTestScannerFrequencies5gCompare(\r\n\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.freq5gCompare, event.target.value\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(GetDriveTestScannerFrequencies4gCompare(\r\n\t\t\tuserId, '4g', formState.values.selectedCity, selectedDates, formState.values.freq4gCompare, event.target.value\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(GetDriveTestScannerFrequencies3gCompare(\r\n\t\t\tuserId, '3g', formState.values.selectedCity, selectedDates, formState.values.freq3gCompare, event.target.value\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(GetDriveTestScannerFrequencies2gCompare(\r\n\t\t\tuserId, '2g', formState.values.selectedCity, selectedDates, formState.values.freq2gCompare, event.target.value\r\n\t\t));\r\n\t};\r\n\r\n\tconst _handleChangeNrPci = (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: '5g'\r\n\t\t\t},\r\n\t\t});\r\n\t\tdispatch(GetDriveTestScannerCompare(\r\n\t\t\tuserId, '5g', formState.values.selectedCity, selectedDates, formState.values.kpi5gScannerCompare,\r\n\t\t\tformState.values.freq5gCompare, formState.values.top5gCompare, event.target.value\r\n\t\t));\r\n\t};\r\n\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\tlabel=\"Labels\"\r\n\t\t\t\t\t\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\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\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\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\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\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\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\" />\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=\"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{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} label=\"None\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t} label=\"Tech Band\" />\r\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{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\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\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=\"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\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\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\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\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=\"RSSI\" /> */}\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{openScanner5g ? : }\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\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\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=\"RSSI\" /> */}\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\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{openEvents ? : }\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 */}\r\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{openEventsVoice ? : }\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\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/>\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\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\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\r\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\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\r\n\t\t\t\t\t\t\t\t\t\t\t{openEventsPacket ? : }\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\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/>\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\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\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 from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { 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, useCallback } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { TextField, Card, Grid } from '@mui/material';\r\nimport {\r\n\tSetFormState\r\n} from '../../actions/DualMapActions';\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.dualMapReducer.formState);\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\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\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 '@mui/styles';\r\nimport moment from 'moment';\r\nimport { Button, TextField, Typography, Checkbox, Card, Grid, IconButton, Tooltip } from '@mui/material';\r\nimport { ToggleButton, ToggleButtonGroup, Autocomplete } from '@mui/lab';\r\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\r\nimport _ from 'underscore';\r\nimport EditIcon from '@mui/icons-material/EditOutlined';\r\nimport CancelIcon from '@mui/icons-material/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/DualMapActions';\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.dualMapReducer.formState);\r\n\r\n\tconst carriersColors = useSelector(state => state.dualMapReducer.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\t// selectableRows: 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 ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport CarriersColorsDialogForm from './Components/CarriersColorsDialogForm';\r\nimport {\r\n\tSetFormState, GetCarriersColors\r\n} from '../../../actions/DualMapActions';\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.dualMapReducer.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, { useState } from 'react';\r\nimport { makeStyles } from '@mui/styles';\r\nimport SketchPicker from 'react-color';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Grid, Card } from '@mui/material';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport {\r\n\tSetFormState, GetCarriersColors, SaveCarrierColor, ToggleCarriersColorsPickerDialog, ToggleCarriersColorsDialog\r\n} from '../../../actions/DualMapActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tcontentSection: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n}));\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 classes = useStyles();\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.dualMapReducer.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.dualMapReducer.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\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
    \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, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport { CardHeader, CardContent, Divider, Card, Alert } from '@mui/material';\r\nimport { FilesDropzone } from 'components';\r\n\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\n\r\nimport { UploadCustomLayerFiles } from '../../../actions/DualMapActions';\r\n\r\nconst CustomLayerDialog = (props) => {\r\n\tconst { open, onClose, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _onFilesUpload = files => {\r\n\t\tlet totalSize = 0;\r\n\t\tconst allowedFormats = ['.dat', '.map', '.tab', '.id'];\r\n\t\tlet mapInfoFiles = [];\r\n\r\n\t\tfiles.forEach(file => {\r\n\t\t\ttotalSize += file.size;\r\n\t\t\tconst fileNameWithoutExtension = file.name.slice(0, file.name.lastIndexOf('.'));\r\n\t\t\tconst fileExtension = file.name.slice(file.name.lastIndexOf('.'));\r\n\t\t\t// if its a map info file\r\n\t\t\tif (allowedFormats.includes(fileExtension)) {\r\n\t\t\t\tif (mapInfoFiles === []) {\r\n\t\t\t\t\tmapInfoFiles = [{ name: fileNameWithoutExtension, count: 1 }];\r\n\t\t\t\t} else if (mapInfoFiles.some(object => object.name === fileNameWithoutExtension)) {\r\n\t\t\t\t\tmapInfoFiles.find(object => object.name === fileNameWithoutExtension).count++;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmapInfoFiles.push({ name: fileNameWithoutExtension, count: 1 });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (totalSize > 100000000) {\r\n\t\t\tdispatch(\r\n\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\tmessage: 'Files not valid. Please check files size.',\r\n\t\t\t\t\toptions: { variant: 'warning' }\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t} else if (mapInfoFiles !== [] && mapInfoFiles.some(object => object.count < 4)) {\r\n\t\t\tdispatch(\r\n\t\t\t\tenqueueSnackbar({\r\n\t\t\t\t\tmessage: 'Files not valid. Please check if map info files are all selected.',\r\n\t\t\t\t\toptions: { variant: 'warning' }\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tdispatch(UploadCustomLayerFiles(files, userId));\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t);\r\n};\r\n\r\nCustomLayerDialog.propTypes = {\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default CustomLayerDialog;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, Button, Grid, Card, CardContent, CardHeader, Divider } from '@mui/material';\r\nimport { Page, Header, Alert, FilePicker, FilesDropzone } from 'components';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport { SetFormState, XcapToolAttachmentsUpload, ToggleXcapToolDialog } from '../../actions/DualMapActions.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 XcapToolFilesUploadDialog = (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.dualMapReducer.formState);\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\r\n\tconst _addAttachments = (files) => {\r\n\t\tfiles.forEach(file => {\r\n\t\t\tif (!file.size > 50000000) {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: `File size${file.name} cannot be superior to 50MB`, options: { variant: 'warning' } }));\r\n\t\t\t}\r\n\t\t});\r\n\t\tdispatch(XcapToolAttachmentsUpload(userId, files));\r\n\t\tdispatch(ToggleXcapToolDialog(false));\r\n\t\t// dispatch(enqueueSnackbar({ message: 'Files uploaded', options: { variant: 'info' } }));\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\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\r\n\t\t\r\n\t);\r\n};\r\n\r\nXcapToolFilesUploadDialog.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 XcapToolFilesUploadDialog;\r\n","import React, { useEffect, useMemo, useCallback } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, Grid, Card, CardContent } from '@mui/material';\r\nimport { Page, Map } 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, GetDriveTestsCities, GetDriveTestsDrives, GetFailuresFilters,\r\n\tSetSelectedDates, SetSelectedLogs,\r\n\tGetFailuresFiltersCompare, SetSelectedDatesCompare, GetSitesIds, GetCustomLayer,\r\n\tToggleCarriersColorsDialog, ToggleCarriersColorsPickerDialog, ToggleCustomLayerDialog,\r\n\tToggleXcapToolDialog } from '../actions/DualMapActions';\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 CarriersColorsDialog from './components/Components/CarriersColorsDialog';\r\nimport CarriersColorsPickerDialog from './components/Components/CarriersColorsPickerDialog';\r\nimport CustomLayerDialog from './components/Components/CustomLayerDialog';\r\nimport XcapToolFilesUploadDialog from './components/XcapToolFilesUploadDialog';\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 DualMap = () => {\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.dualMapReducer.formState);\r\n\tconst maps = useSelector(state => state.mapReducer.maps);\r\n\r\n\t// Commun\r\n\tconst customLayer = useSelector((state) => state.dualMapReducer.customLayer);\r\n\tconst sitesIds = useSelector(state => state.dualMapReducer.sitesIds);\r\n\r\n\t// Map\r\n\tconst selectedDates = useSelector(state => state.dualMapReducer.selectedDates);\r\n\tconst mapOne = maps.filter(item => item.id === 'dual-map')[0];\r\n\tconst driveTest = useSelector(state => state.dualMapReducer.driveTest);\r\n\tconst ueRoute = useSelector(state => state.dualMapReducer.ueRoute);\r\n\tconst driveTestScanner = useSelector(state => state.dualMapReducer.driveTestScanner);\r\n\tconst scannerRoute = useSelector(state => state.dualMapReducer.scannerRoute);\r\n\tconst crowdsourcing = useSelector(state => state.dualMapReducer.crowdsourcing);\r\n\r\n\t// Map Compare\r\n\tconst selectedDatesCompare = useSelector(state => state.dualMapReducer.selectedDatesCompare);\r\n\tconst mapTwo = maps.filter(item => item.id === 'dual-map-compare')[0];\r\n\tconst driveTestCompare = useSelector(state => state.dualMapReducer.driveTestCompare);\r\n\tconst driveTestScannerCompare = useSelector(state => state.dualMapReducer.driveTestScannerCompare);\r\n\tconst scannerRouteCompare = useSelector(state => state.dualMapReducer.scannerRouteCompare);\r\n\tconst crowdsourcingCompare = useSelector(state => state.dualMapReducer.crowdsourcingCompare);\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\t// Other\r\n\tconst carriersColorsDialogVisibility = useSelector((state) => state.dualMapReducer.carriersColorsDialogVisibility);\r\n\tconst carriersColorsPickerDialogVisibility = useSelector((state) => state.dualMapReducer.carriersColorsPickerDialogVisibility);\r\n\tconst customLayerDialogVisibility = useSelector((state) => state.dualMapReducer.customLayerDialogVisibility);\r\n\tconst currentColorCode = useSelector((state) => state.dualMapReducer.currentColorCode);\r\n\tconst xcapToolDialogVisibility = useSelector((state) => state.dualMapReducer.xcapToolDialogVisibility);\r\n\r\n\tconst _removeLayerById = (map, id) => {\r\n\t\tmap.RemoveLayerById(id);\r\n\t};\r\n\r\n\tconst _getData = useCallback(() => {\r\n\t\tdispatch(GetSitesIds());\r\n\t\t// dispatch(ResetFields());\r\n\t\tdispatch(GetDriveTestsCities(userId, userOperator));\r\n\t\tdispatch(GetDriveTestsDrives());\r\n\t\t// Map\r\n\t\tdispatch(GetFailuresFilters(role));\r\n\t\tdispatch(SetSelectedDates([]));\r\n\t\tdispatch(SetSelectedLogs([]));\r\n\t\tdispatch(GetCustomLayer(userId));\r\n\t\t// Map Compare\r\n\t\tdispatch(GetFailuresFiltersCompare(role));\r\n\t\tdispatch(SetSelectedDatesCompare([]));\r\n\t\t// if (formState.values.mapCompare === undefined) {\r\n\t\t// \tdispatch(ResetFields());\r\n\t\t// }\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t_getData();\r\n\t}, [_getData]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (mapOne) {\r\n\t\t\t_removeLayerById(mapOne.control, 'voice');\r\n\t\t}\r\n\t}, [sitesIds]);\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\tconst makeDetailsTableKpisUeRoute = (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
    Latitude: ${item.latitude}
    Longitude: ${item.longitude}
    `;\r\n\r\n\t\treturn table;\r\n\t};\r\n\r\n\tconst makeDetailsTableKpisScannerRoute = (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
    Latitude: ${item.latitude}
    Longitude: ${item.longitude}
    `;\r\n\r\n\t\treturn table;\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 _addLayerKpiUeRoute = (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(`
    ${makeDetailsTableKpisUeRoute(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 _addLayerKpiScannerRoute = (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(`
    ${makeDetailsTableKpisScannerRoute(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 _addCustomLayer = (map) => {\r\n\t\tmap.RemoveLayerById('CustomLayer');\r\n\t\tconst geojsonLayer = L.geoJSON(customLayer, {\r\n\t\t\t// layer id\r\n\t\t\tid: 'CustomLayer',\r\n\t\t\t// draw layer\r\n\t\t\tpointToLayer(feature, latlng) {\r\n\t\t\t\t// Check if the geometry type is \"Point\"\r\n\t\t\t\tif (feature.geometry.type === 'Point') {\r\n\t\t\t\t\treturn L.circleMarker(latlng, {\r\n\t\t\t\t\t\tradius: 5 // Adjust the radius as needed\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// if is not \"Point\"\r\n\t\t\t\treturn L.marker(latlng);\r\n\t\t\t},\r\n\t\t\t// draw properties\r\n\t\t\tonEachFeature(feature, layer) {\r\n\t\t\t\tlet labelContent = '';\r\n\r\n\t\t\t\tif (feature.properties) {\r\n\t\t\t\t\tconst propertyKeys = Object.keys(feature.properties);\r\n\t\t\t\t\tpropertyKeys.forEach((prop) => {\r\n\t\t\t\t\t\tlabelContent += `${prop}: ${feature.properties[prop]}
    `;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (labelContent !== '') {\r\n\t\t\t\t\tlayer.bindTooltip(labelContent, { sticky: true });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\t// Add the GeoJSON layer to the map when needed\r\n\t\tgeojsonLayer.addTo(map.mapContext.map);\r\n\t};\r\n\r\n\t// Map\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 === '5g') {\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\tif (driveTest.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTest.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (driveTest.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(driveTest.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(driveTest.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.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\tif (driveTest.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTest.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (driveTest.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(driveTest.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(driveTest.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.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\tif (driveTest.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTest.driveTestLegend.title === 'SC') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (driveTest.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(driveTest.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(driveTest.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.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\tif (driveTest.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTest.driveTestLegend.title === 'BSIC') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (driveTest.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(driveTest.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(driveTest.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.selectedKpiTech === 'common') {\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 && ueRoute) {\r\n\t\t\t_addLayerKpiUeRoute(\r\n\t\t\t\tmapOne.control, ueRoute.driveTestPoints,\r\n\t\t\t\tueRoute.driveTestLegend || '', formState.values.mapAutoZoom,\r\n\t\t\t\t'ueRoute'\r\n\t\t\t);\r\n\t\t}\r\n\t}, [ueRoute]);\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) {\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 === '5g') {\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 === '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\tif (driveTestScanner.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTestScanner.driveTestLegend.title === 'BSIC') {\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}\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 && scannerRoute) {\r\n\t\t\t_addLayerKpiScannerRoute(\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\t// Crowdsourcing\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 (crowdsourcing.driveTestLegend !== undefined) {\r\n\t\t\t\tif (crowdsourcing.driveTestLegend.title !== 'none') {\r\n\t\t\t\t\tif (selectedDates.length > 0) {\r\n\t\t\t\t\t\tif (crowdsourcing.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, crowdsourcing.driveTestPoints,\r\n\t\t\t\t\t\t\t\tcrowdsourcing.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.selectedKpiCrowdsourcingTech === '5g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, crowdsourcing.driveTestPoints,\r\n\t\t\t\t\t\t\t\tcrowdsourcing.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 (crowdsourcing.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (crowdsourcing.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (crowdsourcing.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(crowdsourcing.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(crowdsourcing.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.selectedKpiCrowdsourcingTech === '4g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, crowdsourcing.driveTestPoints,\r\n\t\t\t\t\t\t\t\tcrowdsourcing.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 (crowdsourcing.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (crowdsourcing.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (crowdsourcing.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(crowdsourcing.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(crowdsourcing.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.selectedKpiCrowdsourcingTech === '3g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, crowdsourcing.driveTestPoints,\r\n\t\t\t\t\t\t\t\tcrowdsourcing.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 (crowdsourcing.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (crowdsourcing.driveTestLegend.title === 'SC') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (crowdsourcing.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(crowdsourcing.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(crowdsourcing.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.selectedKpiCrowdsourcingTech === '2g') {\r\n\t\t\t\t\t\t\t_addLayerKpi(\r\n\t\t\t\t\t\t\t\tmapOne.control, crowdsourcing.driveTestPoints,\r\n\t\t\t\t\t\t\t\tcrowdsourcing.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 (driveTest.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (crowdsourcing.driveTestLegend.title === 'BSIC') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapOne.instance;\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 (crowdsourcing.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.updateTopologyCarriersColors(crowdsourcing.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapOne.control.addTopologyLabels(crowdsourcing.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}\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, crowdsourcing.driveTestPoints,\r\n\t\t\t\t\t\tcrowdsourcing.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}, [crowdsourcing]);\r\n\r\n\t// Map Compare\r\n\tuseMemo(() => {\r\n\t\tif (mapTwo) {\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyColors');\r\n\t\t\t_removeLayerById(mapOne.control, 'topologyColorsLabels');\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 === '5g') {\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\tif (driveTestCompare.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTestCompare.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapTwo.instance;\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 (driveTestCompare.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.updateTopologyCarriersColors(driveTestCompare.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.addTopologyLabels(driveTestCompare.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.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\tif (driveTestCompare.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTestCompare.driveTestLegend.title === 'PCI') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapTwo.instance;\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 (driveTestCompare.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.updateTopologyCarriersColors(driveTestCompare.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.addTopologyLabels(driveTestCompare.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.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\tif (driveTestCompare.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTestCompare.driveTestLegend.title === 'SC') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapTwo.instance;\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 (driveTestCompare.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.updateTopologyCarriersColors(driveTestCompare.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.addTopologyLabels(driveTestCompare.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.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\tif (driveTestCompare.driveTestLegend !== undefined) {\r\n\t\t\t\t\t\t\t\tif (driveTestCompare.driveTestLegend.title === 'BSIC') {\r\n\t\t\t\t\t\t\t\t\tconst _map = mapTwo.instance;\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 (driveTestCompare.topologyColors.length !== 0) {\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.updateTopologyCarriersColors(driveTestCompare.topologyColors, 'topologyColors');\r\n\t\t\t\t\t\t\t\t\t\tmapTwo.control.addTopologyLabels(driveTestCompare.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.selectedKpiTechCompare === 'common') {\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) {\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 === '5g') {\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\tmapTwo.control.addTopologyLabels(driveTestCompare.topologyColors, 'topologyColorsLabels');\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\tmapTwo.control.addTopologyLabels(driveTestCompare.topologyColors, 'topologyColorsLabels');\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\tmapTwo.control.addTopologyLabels(driveTestCompare.topologyColors, 'topologyColorsLabels');\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\tif (driveTestScannerCompare.driveTestLegend.title === 'BSIC') {\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\tmapTwo.control.addTopologyLabels(driveTestCompare.topologyColors, 'topologyColorsLabels');\r\n\t\t\t\t\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 && scannerRouteCompare) {\r\n\t\t\t_addLayerKpiScannerRoute(\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\tuseMemo(() => {\r\n\t\tif (mapOne && formState.values.customLayer) {\r\n\t\t\t_addCustomLayer(mapOne.control);\r\n\t\t\t_addCustomLayer(mapTwo.control);\r\n\t\t} else if (mapOne && !formState.values.customLayer) {\r\n\t\t\tmapOne.control.RemoveLayerById('CustomLayer');\r\n\t\t\tmapTwo.control.RemoveLayerById('CustomLayer');\r\n\t\t}\r\n\t}, [customLayer, formState.values.customLayer]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (mapOne) {\r\n\t\t\tmapOne.instance.invalidateSize();\r\n\t\t\tmapTwo.instance.invalidateSize();\r\n\t\t\tmapOne.instance.sync(mapTwo.instance);\r\n\t\t\tmapTwo.instance.sync(mapOne.instance);\r\n\t\t}\r\n\t}, [formState.values.mapCompare, formState.values.mapFilters]);\r\n\r\n\t// if (mapOne) {\r\n\t// \tmapOne.instance.on('moveend', () => {\r\n\t// \t\t// callback\r\n\t// \t\tsetTimeout(() => {\r\n\t// \t\t\tconsole.log('moveend');\r\n\t// \t\t\tconst center = mapOne.instance.getCenter();\r\n\t// \t\t\tconsole.log(center);\r\n\t// \t\t\tmapTwo.instance.setView(center);\r\n\t// \t\t}, 1000);\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\tconst _customLayerDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleCustomLayerDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _xcapToolDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleXcapToolDialog(false));\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\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{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\t{customLayerDialogVisibility && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{xcapToolDialogVisibility && (\r\n\t\t\t\t\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 DualMap;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip\r\n} from '@mui/material';\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport EditIcon from '@mui/icons-material/EditOutlined';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport Label from '../../../../components/Label';\r\nimport DataTable from '../../../../components/DataTable/DataTable.js';\r\n\r\nimport { GetSiteOptIncidentDetails, ToggleSiteOptDialog, ToggleDeleteSiteOptDialog } from '../../actions/SiteOptActions';\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 SiteOptDatatable = (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(GetSiteOptIncidentDetails(userId, tableId));\r\n\t\tdispatch(ToggleSiteOptDialog(true, tableId));\r\n\t};\r\n\r\n\tconst _deleteIncident = (tableId) => {\r\n\t\tdispatch(ToggleDeleteSiteOptDialog(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: true,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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: 'driveTestDrive',\r\n\t\t\t\tlabel: 'DriveTest Week',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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\nSiteOptDatatable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default SiteOptDatatable;\r\n","import React, { useState, useEffect, useRef, useMemo } from 'react';\r\nimport Chip from '@mui/material/Chip';\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport validate from 'validate.js';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport moment from 'moment';\r\nimport {\r\n\tButton, Collapse, Divider, Drawer,\r\n\tFormControlLabel, Radio, RadioGroup, Slider,\r\n\tTypography, Checkbox, Card, Grid, FormControl,\r\n\tFormGroup, FormLabel, Switch, CardHeader, CardContent,\r\n} from '@mui/material';\r\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\r\nimport _ from 'underscore';\r\nimport ExpandMoreIcon from '@mui/icons-material/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, ToggleAttachFileSiteOptDialog, DownloadAttachment,\r\n\tToggleRemoveFileSiteOptDialog\r\n} from '../../../../actions/SiteOptActions';\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 SiteOptDialogForm = (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.siteOptReducer.formState);\r\n\tconst dropdowns = useSelector((state) => state.siteOptReducer.dropdowns);\r\n\tconst incidentDetails = useSelector((state) => state.siteOptReducer.incidentDetails);\r\n\tconst autocompleteFields = useSelector((state) => state.siteOptReducer.autocompleteFields);\r\n\tconst cities = useSelector((state) => state.siteOptReducer.cities);\r\n\tconst drives = useSelector((state) => state.siteOptReducer.drives);\r\n\tconst dates = useSelector((state) => state.siteOptReducer.dates);\r\n\tconst selectedDates = useSelector((state) => state.siteOptReducer.selectedDates);\r\n\tconst failures = useSelector((state) => state.siteOptReducer.failures);\r\n\tconst selectedFailures = useSelector((state) => state.siteOptReducer.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 _handleCloseDates = (option) => {\r\n\r\n\t};\r\n\r\n\tfunction removeDuplicates(arr, key) {\r\n\t\tconst unique = {};\r\n\t\tconst result = [];\r\n\r\n\t\tarr.forEach(item => {\r\n\t\t\tif (!unique[item[key]]) {\r\n\t\t\t\tunique[item[key]] = true;\r\n\t\t\t\tresult.push(item);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tconst _handleChangeDates = (event, option, reason) => {\r\n\t\t// Quick fix\r\n\t\tconst uniqueData = removeDuplicates(option, 'value');\r\n\t\tdispatch(SetSelectedDates(uniqueData));\r\n\t\tdispatch(SetSelectedFailures([]));\r\n\t\tdispatch(GetFailures(formState.values.driveTestCity, option));\r\n\t\tif (reason === 'removeOption') {\r\n\t\t\t_handleCloseDates(option);\r\n\t\t}\r\n\t};\r\n\r\n\tconst _handleChangeFailures = (event, option, reason) => {\r\n\t\tdispatch(SetSelectedFailures(option));\r\n\t\tif (reason === 'removeOption') {\r\n\t\t\t// _handleCloseFailures(option);\r\n\t\t}\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(ToggleAttachFileSiteOptDialog(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(ToggleRemoveFileSiteOptDialog(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\t// useMemo(() => {\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\t// console.log(incidentDetails);\r\n\t\t// if (incidentDetails.driveTestDatesList !== undefined) {\r\n\t\t// \tdispatch(SetSelectedDates(incidentDetails.driveTestDatesList));\r\n\t\t// }\r\n\t\t// if (incidentDetails.failuresList !== undefined) {\r\n\t\t// \tdispatch(SetSelectedFailures(incidentDetails.failuresList));\r\n\t\t// }\r\n\t\tif (incidentDetails.driveTestDrive !== undefined) {\r\n\t\t\tdispatch(GetDriveTestsDates(incidentDetails.driveTestCity, incidentDetails.driveTestDrive));\r\n\t\t}\r\n\t}, [incidentDetails]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (incidentDetails.driveTestDatesList !== undefined) {\r\n\t\t\tdispatch(SetSelectedDates(incidentDetails.driveTestDatesList));\r\n\t\t}\r\n\t\tif (incidentDetails.failuresList !== undefined) {\r\n\t\t\tdispatch(SetSelectedFailures(incidentDetails.failuresList));\r\n\t\t}\r\n\t}, [dates]);\r\n\r\n\t// useMemo(() => {\r\n\t// \tdispatch(GetFailures(formState.values.driveTestCity, formState.values.selectedDates));\r\n\t// \tif (formState.values.driveTestDatesList !== undefined) {\r\n\t// \t\tdispatch(SetSelectedFailures(formState.values.failuresList));\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\t// useMemo(() => {\r\n\t// \tconsole.log(formState.values.failuresList);\r\n\t// \tif (formState.values.failuresList !== undefined) {\r\n\t// \t\tdispatch(SetSelectedFailures(formState.values.failuresList));\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{/* { _handleChangeDates(event, value, reason); }}\r\n\t\t\t\t\t\tonClose={() => { _handleCloseDates(selectedDates); }}\r\n\t\t\t\t\t\tgetOptionLabel={(option) => option.text}\r\n\t\t\t\t\t\trenderOption={(renderProps, 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: 8 }}\r\n\t\t\t\t\t\t\t\t\tchecked={selected}\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\t// defaultValue={[top100Films[13], top100Films[12], top100Films[11]]}\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// sx={{ width: '500px' }}\r\n\t\t\t\t\t/> */}\r\n\t\t\t\t\t { _handleChangeDates(event, value, reason); }}\r\n\t\t\t\t\t\toptions={dates}\r\n\t\t\t\t\t\tgetOptionLabel={(option) => option.text}\r\n\t\t\t\t\t\trenderTags={(tagValue, getTagProps) => tagValue.map((option, index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\tstyle={{ width: 500 }}\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/>\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{/* { _handleChangeFailures(event, value, reason); }}\r\n\t\t\t\t\t\tgetOptionLabel={(option) => option.text}\r\n\t\t\t\t\t\trenderOption={(renderProps, 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: 8 }}\r\n\t\t\t\t\t\t\t\t\tchecked={selected}\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\t// defaultValue={[top100Films[13], top100Films[12], top100Films[11]]}\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// sx={{ width: '500px' }} */}\r\n\t\t\t\t\t { _handleChangeFailures(event, value, reason); }}\r\n\t\t\t\t\t\toptions={failures}\r\n\t\t\t\t\t\tgetOptionLabel={(option) => option.text}\r\n\t\t\t\t\t\trenderTags={(tagValue, getTagProps) => tagValue.map((option, index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\tstyle={{ width: 500 }}\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/>\r\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\nSiteOptDialogForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ttableId: PropTypes.string\r\n};\r\n\r\nexport default SiteOptDialogForm;\r\n","import React, { useEffect, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tcolors,\r\n} from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport SiteOptDialogForm from './components/SiteOptDialogForm';\r\nimport {\r\n\tSetFormState, ResetFields, GetSiteOptIncidentDetails, GetSiteOptIncidentDropdowns,\r\n\tEditSiteOptIncidentDetails, CreateSiteOptIncident,\r\n\tToggleSiteOptDialog, SetSelectedDates, SetSelectedFailures, GetDriveTestsDrives\r\n} from '../../../actions/SiteOptActions';\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 SiteOptDialog = (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.siteOptReducer.tableId);\r\n\tconst selectedDates = useSelector((state) => state.siteOptReducer.selectedDates);\r\n\tconst selectedFailures = useSelector((state) => state.siteOptReducer.selectedFailures);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.siteOptReducer.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\t\tconst driveTestDatesList = selectedDates;\r\n\t\tconst failuresList = selectedFailures;\r\n\r\n\t\tif (formState.isValid) {\r\n\t\t\tconst object = { ...formState.values, userId, driveTestDatesList, failuresList };\r\n\t\t\tif (tableId) {\r\n\t\t\t\tdispatch(EditSiteOptIncidentDetails(object));\r\n\t\t\t\tdispatch(ToggleSiteOptDialog(false));\r\n\t\t\t\t// dispatch(GetSitesOptIncidents(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(CreateSiteOptIncident(object));\r\n\t\t\t\tdispatch(ToggleSiteOptDialog(false));\r\n\t\t\t\t// dispatch(GetSitesOptIncidents(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(GetSiteOptIncidentDetails(userId, tableId));\r\n\t// }, []);\r\n\r\n\t// useEffect(() => {\r\n\t// \t_getData();\r\n\t// }, [tableId]);\r\n\r\n\tuseMemo(() => {\r\n\t\tif (tableId) {\r\n\t\t\tdispatch(GetSiteOptIncidentDetails(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\tconst getData = useCallback(() => {\r\n\t\tdispatch(GetSiteOptIncidentDropdowns());\r\n\t\tdispatch(GetDriveTestsDrives());\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\nSiteOptDialog.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 SiteOptDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, InputBase } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../components/ModalDialog/ModalDialog.js';\r\nimport SiteOptDialogForm from './components/SiteOptDialogForm.js';\r\nimport {\r\n\tSetFormState, DeleteSiteOptIncident, ToggleDeleteSiteOptDialog, GetSitesOptIncidents\r\n} from '../../../actions/SiteOptActions.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 SiteOptDeleteDialog = (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.siteOptReducer.tableId);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.siteOptReducer.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(DeleteSiteOptIncident(userId, tableId));\r\n\t\tdispatch(ToggleDeleteSiteOptDialog(false));\r\n\t\tdispatch(GetSitesOptIncidents(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\nSiteOptDeleteDialog.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 SiteOptDeleteDialog;\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 '@mui/styles';\r\nimport FilterListIcon from '@mui/icons-material/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 '@mui/material';\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, ToggleAttachFileSiteOptDialog\r\n} from '../../../../../actions/SiteOptActions';\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 SiteOptAddFileDialog = (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.siteOptReducer.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(ToggleAttachFileSiteOptDialog(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\nSiteOptAddFileDialog.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 SiteOptAddFileDialog;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, InputBase } from '@mui/material';\r\nimport { enqueueSnackbar } from 'actions';\r\nimport ModalDialog from '../../../../../../../components/ModalDialog/ModalDialog.js';\r\nimport {\r\n\tSetFormState, RemoveAttachment, ToggleRemoveFileSiteOptDialog\r\n} from '../../../../../actions/SiteOptActions';\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 SiteOptDeleteFileDialog = (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.siteOptReducer.tableId);\r\n\tconst setFormState = formState => dispatch(SetFormState(formState));\r\n\tconst formState = useSelector((state) => state.siteOptReducer.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(ToggleRemoveFileSiteOptDialog(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\nSiteOptDeleteFileDialog.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 SiteOptDeleteFileDialog;\r\n","import React, { useEffect, useCallback, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button, Divider } from '@mui/material';\r\nimport FileOpenIcon from '@mui/icons-material/FileOpen';\r\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts';\r\nimport { Page, Header } from 'components';\r\nimport { DownloadFile } from 'actions/sessionActions.js';\r\nimport SpeedDial from '@mui/material/SpeedDial';\r\nimport IosShareIcon from '@mui/icons-material/IosShare';\r\nimport SpeedDialIcon from '@mui/material/SpeedDialIcon';\r\nimport SpeedDialAction from '@mui/material/SpeedDialAction';\r\nimport SiteOptDatatable from './components/SiteOptDatatable';\r\nimport SiteOptDialog from './components/SiteOptDialog/SiteOptDialog';\r\nimport SiteOptDeleteDialog from './components/SiteOptDialog/SiteOptDeleteDialog';\r\nimport SiteOptAddFileDialog from './components/SiteOptDialog/components/components/SiteOptAddFileDialog';\r\nimport SiteOptDeleteFileDialog from './components/SiteOptDialog/components/components/SiteOptDeleteFileDialog';\r\nimport {\r\n\tSetFormState, GetSitesOptIncidents, ToggleSiteOptDialog,\r\n\tToggleDeleteSiteOptDialog, ExportSitesOptIncidents,\r\n\tGetDriveTestsCities, GetDriveTestsDrives, SetSelectedDates, SetSelectedFailures,\r\n\tToggleAttachFileSiteOptDialog, ToggleRemoveFileSiteOptDialog\r\n} from '../actions/SiteOptActions';\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 SiteOptTracker = () => {\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.siteOptReducer.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.siteOptReducer.incidents);\r\n\tconst SiteOptDialogVisibility = useSelector((state) => state.siteOptReducer.SiteOptDialogVisibility);\r\n\tconst deleteSiteOptDialogVisibility = useSelector((state) => state.siteOptReducer.deleteSiteOptDialogVisibility);\r\n\tconst attachFileSiteOptDialogVisibility = useSelector((state) => state.siteOptReducer.attachFileSiteOptDialogVisibility);\r\n\tconst removeFileSiteOptDialogVisibility = useSelector((state) => state.siteOptReducer.removeFileSiteOptDialogVisibility);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (SiteOptDialogVisibility === false && deleteSiteOptDialogVisibility === false) {\r\n\t\t\tdispatch(GetSitesOptIncidents(userId, role));\r\n\t\t} else {\r\n\t\t\t// dispatch(GetDriveTestsCities());\r\n\t\t\t// dispatch(GetDriveTestsDrives());\r\n\t\t}\r\n\t}, [SiteOptDialogVisibility, deleteSiteOptDialogVisibility]);\r\n\r\n\tconst _SiteOptDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleSiteOptDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _SiteOptDeleteDialogClose = () => {\r\n\t\tdispatch(ToggleDeleteSiteOptDialog(false));\r\n\t};\r\n\r\n\tconst _attachFileSiteOptDialogClose = () => {\r\n\t\tdispatch(ToggleAttachFileSiteOptDialog(false));\r\n\t};\r\n\r\n\tconst _removeFileSiteOptDialogClose = () => {\r\n\t\tdispatch(ToggleRemoveFileSiteOptDialog(false));\r\n\t};\r\n\r\n\tconst _onCreateSiteIncidentClick = () => {\r\n\t\tdispatch(ToggleSiteOptDialog(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(ExportSitesOptIncidents(userId, role));\r\n\t};\r\n\r\n\tconst actions = [\r\n\t\t{ icon: , name: 'Create Incident', id: 'createtIncident' },\r\n\t\t{ icon: , name: 'Export Incidents', id: 'exportIncidents' },\r\n\t];\r\n\r\n\tconst _handleSpeedDialClick = (action) => {\r\n\t\tif (action.id === 'createtIncident') {\r\n\t\t\t_onCreateSiteIncidentClick();\r\n\t\t} else if (action.id === 'exportIncidents') {\r\n\t\t\tdispatch(ExportSitesOptIncidents(userId, role));\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
    \r\n\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t{actions.map((action) => (\r\n\t\t\t\t\t { _handleSpeedDialClick(action); }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t{/* \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\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{SiteOptDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{deleteSiteOptDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{attachFileSiteOptDialogVisibility && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{removeFileSiteOptDialogVisibility && (\r\n\t\t\t\t\t\t\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 SiteOptTracker;\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 '@mui/styles';\r\nimport FilterListIcon from '@mui/icons-material/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 '@mui/material';\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.repositoryExcelReducer.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 > 200000000) {\r\n\t\t\t\tdispatch(enqueueSnackbar({ message: 'File size cannot be superior to 200MB', 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 '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport CloudDownloadIcon from '@mui/icons-material/CloudDownload';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport Label from '../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../components/DataTable/DataTable.js';\r\nimport { 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 '@mui/styles';\r\nimport FilterListIcon from '@mui/icons-material/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 '@mui/material';\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.repositoryExcelReducer.formState);\r\n\tconst filesInfo = useSelector((state) => state.repositoryExcelReducer.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 '@mui/styles';\r\nimport { colors, InputBase } from '@mui/material';\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.repositoryExcelReducer.tableId);\r\n\tconst filename = useSelector((state) => state.repositoryExcelReducer.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 '@mui/styles';\r\nimport { Tabs, Tab, Divider } from '@mui/material';\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.repositoryExcelReducer.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 '@mui/styles';\r\nimport FilterListIcon from '@mui/icons-material/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 '@mui/material';\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.repositoryPdfReducer.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 '@mui/styles';\r\nimport {\r\n\tcolors,\r\n\tIconButton,\r\n\tTooltip,\r\n} from '@mui/material';\r\n\r\nimport CreateIcon from '@mui/icons-material/Create';\r\nimport EmailIcon from '@mui/icons-material/Email';\r\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp';\r\nimport CloudDownloadIcon from '@mui/icons-material/CloudDownload';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport Label from '../../../../../components/Label/Label.js';\r\nimport DataTable from '../../../../../components/DataTable/DataTable.js';\r\nimport { 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.repositoryPdfReducer.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 '@mui/styles';\r\nimport { Tabs, Tab, Divider } from '@mui/material';\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 '@mui/styles';\r\nimport FilterListIcon from '@mui/icons-material/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 '@mui/material';\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.repositoryPdfReducer.formState);\r\n\tconst filesInfo = useSelector((state) => state.repositoryPdfReducer.filesInfo);\r\n\tconst pdfInformationBase64 = useSelector((state) => state.repositoryPdfReducer.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 '@mui/styles';\r\nimport { colors, InputBase } from '@mui/material';\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.repositoryPdfReducer.tableId);\r\n\tconst filename = useSelector((state) => state.repositoryPdfReducer.filename);\r\n\tconst stream = useSelector((state) => state.repositoryPdfReducer.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 '@mui/styles';\r\nimport { Tabs, Tab, Divider } from '@mui/material';\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.repositoryPdfReducer.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 '@mui/styles';\r\nimport { Select, MenuItem } from '@mui/material';\r\n\r\nimport DataTable from '../../../../components/DataTable/DataTable.js';\r\n\r\nimport { SetSelectedFiles } from '../../actions/DriveTestUploadActions';\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 UploadSelectedFilesTable = (props) => {\r\n\tconst { className, data, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\tconst setSelectedFiles = selectedFiles => dispatch(SetSelectedFiles(selectedFiles));\r\n\r\n\tconst handleFileTypeChange = (index, newFileType) => {\r\n\t\t// Create a new array based on the existing data\r\n\t\tconst updatedData = [...data];\r\n\r\n\t\t// Update the fileType for the specific index\r\n\t\tupdatedData[index] = {\r\n\t\t\t...updatedData[index],\r\n\t\t\tfileType: newFileType // Update fileType with the new value\r\n\t\t};\r\n\r\n\t\t// Dispatch the updated array to the Redux store\r\n\t\tsetSelectedFiles(updatedData);\r\n\t};\r\n\r\n\tconst fileTypeOptions = [\r\n\t\t{ value: 'Packet UL', label: 'Packet UL' },\r\n\t\t{ value: 'Packet DL', label: 'Packet DL' },\r\n\t\t{ value: 'Scanner', label: 'Scanner' },\r\n\t\t{ value: 'Voice MO', label: 'Voice MO' },\r\n\t\t{ value: 'Voice MT', label: 'Voice MT' },\r\n\t\t{ value: 'Unknown', label: 'Unknown' }];\r\n\r\n\tconst _getTableColumns = () => (\r\n\t\t[\r\n\t\t\t{\r\n\t\t\t\tname: 'fileDirectory',\r\n\t\t\t\tlabel: 'File Directory',\r\n\t\t\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: 'file',\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: 'fileType',\r\n\t\t\t\tlabel: 'File 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\t// Custom render function for fileType to include TextField\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta) => {\r\n\t\t\t\t\t\tconst index = tableMeta.rowIndex; // Get the row index\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t handleFileTypeChange(index, e.target.value)} // Call a function to update state\r\n\t\t\t\t\t\t\t\tfullWidth // Makes the Select take full width of the cell\r\n\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{fileTypeOptions.map((option) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{option.label}\r\n\t\t\t\t\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\tconst options = {\r\n\t\tfilter: false, // Disables the filter options\r\n\t\tsearch: false, // Disables the search bar\r\n\t\tprint: false, // Disables the print button\r\n\t\tdownload: false, // Disables the download button\r\n\t\tviewColumns: false, // Disables the view columns option\r\n\t\tpagination: false, // Disables the pagination\r\n\t\tselectableRows: 'none', // Disables row selection checkboxes\r\n\t\trowHover: false, // Disables row hover effect\r\n\t\tsort: false, // Disables sorting\r\n\t\ttableBodyHeight: '75vh', // Adjust the table body height\r\n\t\tresponsive: 'standard', // Adjust responsive behavior\r\n\t\televation: 0, // Removes the shadow from the table\r\n\t\ttitle: true, // Hides the title\r\n\t\ttoolbar: false, // Hides the toolbar with filter, search, etc.\r\n\t\thideHeader: true, // Hides the header of the table\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\nUploadSelectedFilesTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default UploadSelectedFilesTable;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors, Card, CardContent, CardHeader, Checkbox, Grid, Paper, IconButton, InputBase } from '@mui/material';\r\nimport TreeView from '@mui/lab/TreeView';\r\nimport TreeItem from '@mui/lab/TreeItem';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\n\r\nimport ModalDialog from '../../../../components/ModalDialog/ModalDialog.js';\r\nimport UploadSelectedFilesTable from './UploadSelectedFilesTable';\r\n\r\nimport { SetSelectedFiles, GetKpiFilesTree, RunKpiFilesParser, SearchFTPDirectory } from '../../actions/DriveTestUploadActions';\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 KpisUploadDialog = (props) => {\r\n\tconst { author, open, onClose, onApply, className, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst [searchPath, setSearchPath] = useState('');\r\n\tconst kpiFilesTree = useSelector((state) => state.driveTestUploadReducer.kpiFilesTree);\r\n\tconst setSelectedFiles = selectedFiles => dispatch(SetSelectedFiles(selectedFiles));\r\n\tconst selectedFiles = useSelector((state) => state.driveTestUploadReducer.selectedFiles);\r\n\tconst [selectedFilesHelper, setSelectedFilesHelper] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetKpiFilesTree(userId));\r\n\t}, []);\r\n\r\n\tconst _onConfirmClick = () => {\r\n\t\tdispatch(RunKpiFilesParser(userId, selectedFiles));\r\n\t};\r\n\r\n\tconst _onSearchClick = () => {\r\n\t\tdispatch(SearchFTPDirectory(userId, searchPath));\r\n\t};\r\n\r\n\tconst _handleSearchChange = (event) => {\r\n\t\tsetSearchPath(event.target.value);\r\n\t};\r\n\r\n\t// Recursive helper function to get all child IDs\r\n\tconst getAllChildIds = (children) => {\r\n\t\tif (!children || !children.length) return [];\r\n\t\treturn children.reduce((acc, child) => [...acc, child.id, ...getAllChildIds(child.children)], []);\r\n\t};\r\n\r\n\tconst getFileType = (filePath) => {\r\n\t\tif (filePath.includes('FTP') && filePath.includes('UL')) {\r\n\t\t\treturn 'Packet UL';\r\n\t\t} if (filePath.includes('FTP') && filePath.includes('DL')) {\r\n\t\t\treturn 'Packet DL';\r\n\t\t} if (filePath.includes('SCANNER')) {\r\n\t\t\treturn 'Scanner';\r\n\t\t} if (filePath.includes('VOLTE') && filePath.includes('MO')) {\r\n\t\t\treturn 'Voice MO';\r\n\t\t} if (filePath.includes('VOLTE') && filePath.includes('MT')) {\r\n\t\t\treturn 'Voice MT';\r\n\t\t}\r\n\t\treturn 'Unknown'; // Default case if no condition is met\r\n\t};\r\n\r\n\t// Handle checkbox toggle (only files should be selected, not folders)\r\n\tconst handleToggle = (event, node, path = []) => {\r\n\t\tevent.stopPropagation(); // Prevents expanding/collapsing when clicking checkbox\r\n\r\n\t\tconst fullPath = [...path, node.name].join('/'); // Full path to the node\r\n\r\n\t\tif (!node.isDirectory) { // Only toggle files, not directories\r\n\t\t\t// Update selectedFilesHelper\r\n\t\t\tsetSelectedFilesHelper((prevSelected) => {\r\n\t\t\t\tconst newSelectedFiles = prevSelected.includes(fullPath)\r\n\t\t\t\t\t? prevSelected.filter((file) => file !== fullPath) // Deselect file\r\n\t\t\t\t\t: [...prevSelected, fullPath]; // Select file\r\n\r\n\t\t\t\t// Update selectedFilesObject based on newSelectedFiles\r\n\t\t\t\tconst updatedFilesObject = newSelectedFiles.map(file => {\r\n\t\t\t\t\t// Check if the file already exists in selectedFilesObject\r\n\t\t\t\t\tconst existingFileObject = selectedFiles.find(obj => obj.file === file);\r\n\t\t\t\t\tconst newFileType = getFileType(file);\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tfileDirectory: existingFileObject ? existingFileObject.fileDirectory : kpiFilesTree.directory,\r\n\t\t\t\t\t\tfile,\r\n\t\t\t\t\t\tfileType: existingFileObject ? existingFileObject.fileType : newFileType // Preserve fileType\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Update the selectedFilesObject state\r\n\t\t\t\tsetSelectedFiles(updatedFilesObject);\r\n\t\t\t\treturn newSelectedFiles; // Return the updated selected files\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t// Recursively render tree nodes with checkboxes\r\n\tconst renderTree = (node, path = []) => (\r\n\t\t\r\n\t\t\t\t\t{!node.isDirectory && ( // Render checkbox only for files\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tevent.stopPropagation(); // This prevents the tree from collapsing when clicking checkbox\r\n\t\t\t\t\t\t\t\thandleToggle(event, node, path); // Pass node and current path\r\n\t\t\t\t\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{node.name}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t>\r\n\t\t\t{Array.isArray(node.children) && node.children.length > 0\r\n\t\t\t\t? node.children.map((childNode) => renderTree(childNode, [...path, node.name]))\r\n\t\t\t\t: null}\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\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\r\n\t\t\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\tdefaultExpandIcon={}\r\n\t\t\t\t\t\t\t\t\tsx={{ overflowX: 'hidden', minHeight: 270, flexGrow: 1 }}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{kpiFilesTree.ftpFileInfo.map((treeItem) => renderTree(treeItem))}\r\n\t\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\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\nKpisUploadDialog.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 KpisUploadDialog;\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 moment from 'moment';\r\nimport _ from 'underscore';\r\nimport { makeStyles } from '@mui/styles';\r\nimport DataTable from '../../../../components/DataTable/DataTable.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t},\r\n\tinner: {\r\n\t\tminWidth: 700,\r\n\t},\r\n\tnameCell: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tavatar: {\r\n\t\theight: 42,\r\n\t\twidth: 42,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tjustifyContent: 'flex-end',\r\n\t},\r\n\tprimaryButton: {\r\n\t\tcolor: theme.palette.primary.main\r\n\t},\r\n\terrorButton: {\r\n\t\tcolor: theme.palette.error.main\r\n\t},\r\n\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 KpiUploadProcessTable = (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: 'id',\r\n\t\t\t\tlabel: 'Id',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilter: false,\r\n\t\t\t\t\tviewColumns: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'user',\r\n\t\t\t\tlabel: 'User',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: '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: 'directory',\r\n\t\t\t\tlabel: 'Directory',\r\n\t\t\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: 'file',\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: 'downloadStart',\r\n\t\t\t\tlabel: 'DownloadStart',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'downloadEnd',\r\n\t\t\t\tlabel: 'DownloadEnd',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'parsingStart',\r\n\t\t\t\tlabel: 'ParsingStart',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'parsingEnd',\r\n\t\t\t\tlabel: 'ParsingEnd',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'processingStart',\r\n\t\t\t\tlabel: 'ProcessingStart',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: false,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'processingEnd',\r\n\t\t\t\tlabel: 'ProcessingEnd',\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tdisplay: true,\r\n\t\t\t\t\tfilterType: 'textField',\r\n\t\t\t\t\tcustomBodyRender: (value, tableMeta, updateValue) => <>{moment(value).format('DD-MM-YYYY HH:mm:ss').toString()}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t]\r\n\t);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nKpiUploadProcessTable.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default KpiUploadProcessTable;\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, SpeedDialAction, SpeedDialIcon, SpeedDial, Card, CardContent } from '@mui/material';\r\nimport { useParams } from 'react-router-dom';\r\nimport { Page, Header, Alert } from 'components';\r\nimport { Sync } from '@mui/icons-material';\r\nimport UploadIcon from '@mui/icons-material/Upload';\r\nimport _ from 'underscore';\r\n\r\nimport KpisUploadDialog from './components/KpisUploadDialog';\r\nimport KpiUploadProcessTable from './components/KpiUploadProcessTable';\r\n\r\nimport { GetTreeLastUpdate, SyncFtpTree, ToggleKpisUploadDialog, GetKpiProcessTable } from '../actions/DriveTestUploadActions.js';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontainer: {\r\n\t\tmarginTop: theme.spacing(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 actions = [\r\n\t{ icon: , name: 'Sync FTP File Tree', id: 'syncTree' },\r\n\t{ icon: , name: 'Upload Kpis From FTP', id: 'uploadKpis' },\r\n];\r\n\r\nconst DriveTestUpload = () => {\r\n\tconst classes = useStyles();\r\n\tconst dispatch = useDispatch();\r\n\tconst userId = useSelector(state => state.session.user.id);\r\n\tconst treeLastUpdate = useSelector((state) => state.driveTestUploadReducer.treeLastUpdate);\r\n\tconst kpisUploadDialogVisibility = useSelector((state) => state.driveTestUploadReducer.kpisUploadDialogVisibility);\r\n\tconst kpiProcessTable = useSelector((state) => state.driveTestUploadReducer.kpiProcessTable);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(GetTreeLastUpdate());\r\n\t\tdispatch(GetKpiProcessTable());\r\n\t}, []);\r\n\r\n\tconst _handleSpeedDialClick = (action) => {\r\n\t\tif (action.id === 'syncTree') {\r\n\t\t\tdispatch(SyncFtpTree(userId));\r\n\t\t} else if (action.id === 'uploadKpis') {\r\n\t\t\tdispatch(ToggleKpisUploadDialog(true));\r\n\t\t}\r\n\t};\r\n\r\n\tconst _kpisUploadDialogClose = (event, reason) => {\r\n\t\tif (reason !== 'backdropClick') {\r\n\t\t\tdispatch(ToggleKpisUploadDialog(false));\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t{actions.map((action) => (\r\n\t\t\t\t\t { _handleSpeedDialClick(action); }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{kpisUploadDialogVisibility && (\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 DriveTestUpload;\r\n","import React, { lazy } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport AuthGuard from './components/AuthGuard';\r\nimport AuthLayout from './layouts/Auth';\r\nimport ErrorLayout from './layouts/Error';\r\nimport DashboardLayout from './layouts/Dashboard';\r\nimport Home from './views/Home';\r\nimport Users from './views/Management/components/Users';\r\nimport Operators from './views/Management/components/Operators';\r\nimport OperatorDetails from './views/Management/components/OperatorDetails';\r\nimport Settings from './views/Management/components/Settings';\r\nimport DashboardInspect from './views/Dashboard/components/Inspect/DashboardInspect.js';\r\nimport FailuresTracker from './views/FailuresTracker/components/FailuresTracker';\r\nimport DualMap from './views/DualMap/components/DualMap';\r\nimport SiteOptTracker from './views/SiteOptimizationsTracker/components/SiteOptTracker';\r\nimport RepositoryExcel from './views/RepositoryExcel/components/RepositoryExcel';\r\nimport RepositoryPdf from './views/RepositoryPdf/components/RepositoryPdf';\r\nimport DriveTestUpload from './views/DriveTestUpload/components/DriveTestUpload';\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\t// component: (props) => AuthGuard({\r\n\t\t\t\t\t\t\t\t// \t// : ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t// \tchildren: Home(props)\r\n\t\t\t\t\t\t\t\t// }),\r\n\t\t\t\t\t\t\t\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/failuresTracker/:id',\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: FailuresTracker()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dualMap',\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: DualMap()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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: RepositoryPdf()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/driveTestUpload',\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: DriveTestUpload()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/siteOptTracker',\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: SiteOptTracker()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dashboard1',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 1 } }, pageTitle: 'Dashboard1', module: 'Modules' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dashboard2',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 2 } }, pageTitle: 'Dashboard2', module: 'Modules' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dashboard3',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 3 } }, pageTitle: 'Dashboard2', module: 'Modules' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dashboard4',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 4 } }, pageTitle: 'Dashboard2', module: 'Modules' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dashboard5',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 5 } }, pageTitle: 'Dashboard2', module: 'Modules' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dashboard6',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 6 } }, pageTitle: 'Dashboard2', module: 'Modules' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\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/dashboard7',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 7 } }, pageTitle: 'Dashboard2', module: 'Modules' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/dashboards',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/dashboardOne',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 2 } }, pageTitle: 'Page Title', module: 'Module' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/dashboards/dashboardTwo',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\t// roles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: DashboardInspect({ match: { params: { id: 2 } }, pageTitle: 'Page Title', module: 'Module' })\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\t},\r\n\t{\r\n\t\tpath: '/management',\r\n\t\tcomponent: () => AuthGuard({\r\n\t\t\t// roles: ['Administrator'],\r\n\t\t\t// operator: ['Vodafone', ...]\r\n\t\t\tchildren: DashboardLayout(\r\n\t\t\t\t{\r\n\t\t\t\t\troute: {\r\n\t\t\t\t\t\troutes: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Operators()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/operators/details',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: OperatorDetails()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/users',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\troles: ['Administrator', 'Manager'],\r\n\t\t\t\t\t\t\t\t\tchildren: Users(),\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tpath: '/management/settings',\r\n\t\t\t\t\t\t\t\texact: true,\r\n\t\t\t\t\t\t\t\tcomponent: () => AuthGuard({\r\n\t\t\t\t\t\t\t\t\tchildren: Settings()\r\n\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcomponent: () => ,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t}),\r\n\r\n\t},\r\n\t{\r\n\t\tpath: '/auth',\r\n\t\tcomponent: AuthLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/login',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/Login')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/completeregistration',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/CompleteRegistration')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/resetpassword',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/ResetPassword')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/requestAccess',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/RequestAccess')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/auth/requestAccessConfirmation',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Auth/RequestAccessConfirmation')),\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\t{\r\n\t\tpath: '/errors',\r\n\t\tcomponent: ErrorLayout,\r\n\t\troutes: [\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-401',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error401')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-404',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error404')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: '/errors/error-500',\r\n\t\t\t\texact: true,\r\n\t\t\t\tcomponent: lazy(() => import('views/Error500')),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tcomponent: () => ,\r\n\t\t\t},\r\n\t\t],\r\n\t}\r\n];\r\n\r\nexport default routes;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useSnackbar } from 'notistack';\r\nimport { removeSnackbar } from 'actions';\r\n\r\nlet displayed = [];\r\n\r\nconst Notifier = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst notifications = useSelector(store => store.notifierReducer.notifications || []);\r\n\tconst { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n\tconst storeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed, id];\r\n\t};\r\n\r\n\tconst removeDisplayed = (id) => {\r\n\t\tdisplayed = [...displayed.filter(key => id !== key)];\r\n\t};\r\n\r\n\tReact.useEffect(() => {\r\n\t\tnotifications.forEach(({ key, message, options = {}, dismissed = false }) => {\r\n\t\t\tif (dismissed) {\r\n\t\t\t\t// dismiss snackbar using notistack\r\n\t\t\t\tcloseSnackbar(key);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// do nothing if snackbar is already displayed\r\n\t\t\tif (displayed.includes(key)) return;\r\n\r\n\t\t\t// display snackbar using notistack\r\n\t\t\tenqueueSnackbar(message, {\r\n\t\t\t\tkey,\r\n\t\t\t\t...options,\r\n\t\t\t\tonClose: (event, reason, myKey) => {\r\n\t\t\t\t\tif (options.onClose) {\r\n\t\t\t\t\t\toptions.onClose(event, reason, myKey);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tonExited: (event, myKey) => {\r\n\t\t\t\t\t// remove this snackbar from redux store\r\n\t\t\t\t\tdispatch(removeSnackbar(myKey));\r\n\t\t\t\t\tremoveDisplayed(myKey);\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\t// keep track of snackbars that we've displayed\r\n\t\t\tstoreDisplayed(key);\r\n\t\t});\r\n\t}, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default Notifier;\r\n","import { Chart } from 'react-chartjs-2';\r\n\r\n// ChartJS extension rounded bar chart\r\n// https://codepen.io/jedtrow/full/ygRYgo\r\nfunction draw() {\r\n\tconst { ctx } = this._chart;\r\n\tconst vm = this._view;\r\n\tlet { borderWidth } = vm;\r\n\r\n\tlet left;\r\n\tlet right;\r\n\tlet top;\r\n\tlet bottom;\r\n\tlet signX;\r\n\tlet signY;\r\n\tlet borderSkipped;\r\n\tlet radius;\r\n\r\n\t// If radius is less than 0 or is large enough to cause drawing errors a max\r\n\t// radius is imposed. If cornerRadius is not defined set it to 0.\r\n\tlet { cornerRadius } = this._chart.config.options;\r\n\tif (cornerRadius < 0) {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (typeof cornerRadius === 'undefined') {\r\n\t\tcornerRadius = 0;\r\n\t}\r\n\r\n\tif (!vm.horizontal) {\r\n\t\t// bar\r\n\t\tleft = vm.x - vm.width / 2;\r\n\t\tright = vm.x + vm.width / 2;\r\n\t\ttop = vm.y;\r\n\t\tbottom = vm.base;\r\n\t\tsignX = 1;\r\n\t\tsignY = bottom > top ? 1 : -1;\r\n\t\tborderSkipped = vm.borderSkipped || 'bottom';\r\n\t} else {\r\n\t\t// horizontal bar\r\n\t\tleft = vm.base;\r\n\t\tright = vm.x;\r\n\t\ttop = vm.y - vm.height / 2;\r\n\t\tbottom = vm.y + vm.height / 2;\r\n\t\tsignX = right > left ? 1 : -1;\r\n\t\tsignY = 1;\r\n\t\tborderSkipped = vm.borderSkipped || 'left';\r\n\t}\r\n\r\n\t// Canvas doesn't allow us to stroke inside the width so we can\r\n\t// adjust the sizes to fit if we're setting a stroke on the line\r\n\tif (borderWidth) {\r\n\t\t// borderWidth shold be less than bar width and bar height.\r\n\t\tconst barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n\t\tconst halfStroke = borderWidth / 2;\r\n\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\r\n\t\tconst borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n\t\tconst borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n\t\tconst borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n\t\tconst borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n\t\t// not become a vertical line?\r\n\t\tif (borderLeft !== borderRight) {\r\n\t\t\ttop = borderTop;\r\n\t\t\tbottom = borderBottom;\r\n\t\t}\r\n\t\t// not become a horizontal line?\r\n\t\tif (borderTop !== borderBottom) {\r\n\t\t\tleft = borderLeft;\r\n\t\t\tright = borderRight;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.fillStyle = vm.backgroundColor;\r\n\tctx.strokeStyle = vm.borderColor;\r\n\tctx.lineWidth = borderWidth;\r\n\r\n\t// Corner points, from bottom-left to bottom-right clockwise\r\n\t// | 1 2 |\r\n\t// | 0 3 |\r\n\tconst corners = [\r\n\t\t[left, bottom],\r\n\t\t[left, top],\r\n\t\t[right, top],\r\n\t\t[right, bottom],\r\n\t];\r\n\r\n\t// Find first (starting) corner with fallback to 'bottom'\r\n\tconst borders = ['bottom', 'left', 'top', 'right'];\r\n\tlet startCorner = borders.indexOf(borderSkipped, 0);\r\n\tif (startCorner === -1) {\r\n\t\tstartCorner = 0;\r\n\t}\r\n\r\n\tfunction cornerAt(index) {\r\n\t\treturn corners[(startCorner + index) % 4];\r\n\t}\r\n\r\n\t// Draw rectangle from 'startCorner'\r\n\tlet corner = cornerAt(0);\r\n\tctx.moveTo(corner[0], corner[1]);\r\n\r\n\tfor (let i = 1; i < 4; i += 1) {\r\n\t\tcorner = cornerAt(i);\r\n\t\tlet nextCornerId = i + 1;\r\n\t\tif (nextCornerId === 4) {\r\n\t\t\tnextCornerId = 0;\r\n\t\t}\r\n\r\n\t\tconst width = corners[2][0] - corners[1][0];\r\n\t\tconst height = corners[0][1] - corners[1][1];\r\n\t\tconst x = corners[1][0];\r\n\t\tconst y = corners[1][1];\r\n\r\n\t\tradius = cornerRadius;\r\n\t\t// Fix radius being too large\r\n\t\tif (radius > Math.abs(height) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(height) / 2);\r\n\t\t}\r\n\t\tif (radius > Math.abs(width) / 2) {\r\n\t\t\tradius = Math.floor(Math.abs(width) / 2);\r\n\t\t}\r\n\r\n\t\tif (height < 0) {\r\n\t\t\t// Negative values in a standard bar chart\r\n\t\t\tconst xTl = x;\r\n\t\t\tconst xTr = x + width;\r\n\t\t\tconst yTl = y + height;\r\n\t\t\tconst yTr = y + height;\r\n\r\n\t\t\tconst xBl = x;\r\n\t\t\tconst xBr = x + width;\r\n\t\t\tconst yBl = y;\r\n\t\t\tconst yBr = y;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else if (width < 0) {\r\n\t\t\t// Negative values in a horizontal bar chart\r\n\t\t\tconst xTl = x + width;\r\n\t\t\tconst xTr = x;\r\n\t\t\tconst yTl = y;\r\n\t\t\tconst yTr = y;\r\n\r\n\t\t\tconst xBl = x + width;\r\n\t\t\tconst xBr = x;\r\n\t\t\tconst yBl = y + height;\r\n\t\t\tconst yBr = y + height;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.moveTo(xBl + radius, yBl);\r\n\t\t\tctx.lineTo(xBr - radius, yBr);\r\n\t\t\tctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n\t\t\tctx.lineTo(xTr, yTr + radius);\r\n\t\t\tctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n\t\t\tctx.lineTo(xTl + radius, yTl);\r\n\t\t\tctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n\t\t\tctx.lineTo(xBl, yBl - radius);\r\n\t\t\tctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n\t\t} else {\r\n\t\t\t// Positive Value\r\n\t\t\tctx.moveTo(x + radius, y);\r\n\t\t\tctx.lineTo(x + width - radius, y);\r\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n\t\t\tctx.lineTo(x + width, y + height - radius);\r\n\t\t\tctx.quadraticCurveTo(\r\n\t\t\t\tx + width,\r\n\t\t\t\ty + height,\r\n\t\t\t\tx + width - radius,\r\n\t\t\t\ty + height\r\n\t\t\t);\r\n\t\t\tctx.lineTo(x + radius, y + height);\r\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n\t\t\tctx.lineTo(x, y + radius);\r\n\t\t\tctx.quadraticCurveTo(x, y, x + radius, y);\r\n\t\t}\r\n\t}\r\n\r\n\tctx.fill();\r\n\tif (borderWidth) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n\tdraw,\r\n});\r\n","import moment from 'moment';\r\n\r\nmoment.updateLocale('en', {\r\n\trelativeTime: {\r\n\t\tfuture: 'in %s',\r\n\t\tpast: '%s ago',\r\n\t\ts: 'seconds',\r\n\t\tss: '%ss',\r\n\t\tm: '1m',\r\n\t\tmm: '%dm',\r\n\t\th: '1h',\r\n\t\thh: '%dh',\r\n\t\td: '1d',\r\n\t\tdd: '%dd',\r\n\t\tM: '1M',\r\n\t\tMM: '%dM',\r\n\t\ty: '1Y',\r\n\t\tyy: '%dY',\r\n\t},\r\n});\r\n","/* eslint-disable consistent-return */\r\nimport validate from 'validate.js';\r\n\r\nconst regex = (value, options) => {\r\n\tconst regExp = new RegExp(options.pattern);\r\n\r\n\tif (!regExp.test(value)) {\r\n\t\treturn options.message;\r\n\t}\r\n};\r\n\r\nconst checked = (value, options) => {\r\n\tif (value !== true) {\r\n\t\treturn options.message || 'must be checked';\r\n\t}\r\n};\r\n\r\nvalidate.validators = {\r\n\t...validate.validators,\r\n\tregex,\r\n\tchecked,\r\n};\r\n","import AxiosMockAdapter from 'axios-mock-adapter';\r\n\r\nimport axios from './axios';\r\n\r\nconst instance = new AxiosMockAdapter(axios, { delayResponse: 0 });\r\n\r\nexport default instance;\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/account/profile').reply(200, {\r\n\tprofile: {\r\n\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\tcanHire: false,\r\n\t\tcountry: 'USA',\r\n\t\temail: 'shen.zhi@devias.io',\r\n\t\tfirstName: 'Shen',\r\n\t\tisPublic: true,\r\n\t\tlastName: 'Zhi',\r\n\t\tphone: '+40 777666555',\r\n\t\tstate: 'Alabama',\r\n\t\ttimezone: '4:32PM (GMT-4)',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/statistics').reply(200, {\r\n\tstatistics: {\r\n\t\tpayout: '4,250',\r\n\t\tprojects: '12,500',\r\n\t\tvisitors: '230',\r\n\t\twatching: '5',\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '3K - 6K',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/todos').reply(200, {\r\n\ttodos: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment().subtract(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Finish the proposal design and contract for the client ASAP',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Upload the files for the client @Adrian Stefan with the fonts, assets exported and all the fancy svgs',\r\n\t\t\tdeadline: moment().add(2, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Re-write the card component with hooks and context',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Send proposal for the fintech project',\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t\tdone: false,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle:\r\n\t\t\t\t'Create todo app with react hooks just to get a better understanding of the concept',\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t\tdone: true,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/notifications').reply(200, {\r\n\tnotifications: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New order has been received',\r\n\t\t\ttype: 'order',\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New customer is registered',\r\n\t\t\ttype: 'user',\r\n\t\t\tcreated_at: moment().subtract(1, 'day'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Project has been approved',\r\n\t\t\ttype: 'project',\r\n\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'New feature has been added',\r\n\t\t\ttype: 'feature',\r\n\t\t\tcreated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/account/subscription').reply(200, {\r\n\tsubscription: {\r\n\t\tname: 'Freelancer',\r\n\t\tprice: '5',\r\n\t\tcurrency: '$',\r\n\t\tproposalsLeft: 12,\r\n\t\ttemplatesLeft: 5,\r\n\t\tinvitesLeft: 24,\r\n\t\tadsLeft: 10,\r\n\t\thasAnalytics: true,\r\n\t\thasEmailAlerts: true,\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/account/settings').reply(200, {\r\n\tsettings: {},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/calendar').reply(200, {\r\n\tdraft: [],\r\n\tevents: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Samantha',\r\n\t\t\tdesc: 'Inform about new contract',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-01 16:55:00'),\r\n\t\t\tend: moment('2019-07-01 17:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Meet with IBM',\r\n\t\t\tdesc: 'Discuss about new partnership',\r\n\t\t\tstart: moment('2019-07-03 08:55:00'),\r\n\t\t\tend: moment('2019-07-04 15:02:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'SCRUM Planning',\r\n\t\t\tdesc: 'Prepare documentation',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-14 16:55:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Beign SEM',\r\n\t\t\tdesc: 'Meet with team to discuss',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-18 07:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Fire John',\r\n\t\t\tdesc: 'Sorry, John',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tstart: moment('2019-07-20 08:55:00'),\r\n\t\t\tend: moment('2019-07-20 09:30:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Call Alex',\r\n\t\t\tdesc: 'Discuss about the new project',\r\n\t\t\tallDay: true,\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Visit Samantha',\r\n\t\t\tcolor: colors.green['700'],\r\n\t\t\tdesc: 'Get a new quote for the payment processor',\r\n\t\t\tstart: moment('2019-07-30 08:00:00'),\r\n\t\t\tend: moment('2019-07-30 09:00:00'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/chat/conversations').reply(200, {\r\n\tconversations: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t\tlastActivity: moment(),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(10, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t'I would need to know more details, but my hourly rate stats at $35/hour. Thanks!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Well it's a really easy one, I'm sure we can make it half of the price.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Then why don't you make it if it's that easy? Sorry I'm not interetes, have fantastic day Adam!\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Last offer, $25 per hour',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: '/images/projects/project_1.jpg',\r\n\t\t\t\t\tcontentType: 'image',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(1, 'minute'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey, would you like to collaborate?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(6, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I don't think that's ideal\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 3,\r\n\t\t\tcreated_at: moment().subtract(26, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(2, 'minutes'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hi Shen, we should submit the product today',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Oh, totally forgot about it',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t\t\t.subtract(2, 'minutes'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Alright then',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(1, 'hour'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\"Hi Kwak! I've seen your projects and we can work together on a project. Will send you the details later.\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha, right, we'll do it\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 1,\r\n\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tactive: false,\r\n\t\t\t\tlastActivity: moment().subtract(4, 'hours'),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Did you receive my email about the brief?',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"I'm not sure, but I will check it later\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\totherUser: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tactive: true,\r\n\t\t\t\tlastActivity: moment(),\r\n\t\t\t},\r\n\t\t\tmessages: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: false,\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: 'Hey Shen! I love your projects!!!',\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tsender: {\r\n\t\t\t\t\t\tauthUser: true,\r\n\t\t\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: \"Haha thank you Clarke, I'm doing our best\",\r\n\t\t\t\t\tcontentType: 'text',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'days'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tunread: 0,\r\n\t\t\tcreated_at: moment().subtract(5, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/chat/activity').reply(200, {\r\n\tgroups: [\r\n\t\t{\r\n\t\t\tid: 'clients',\r\n\t\t\tname: 'Clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'friends',\r\n\t\t\tname: 'Friends',\r\n\t\t},\r\n\t],\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(1, 'minutes'),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'clients',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(24, 'minutes'),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tactive: true,\r\n\t\t\tlastActivity: moment(),\r\n\t\t\tgroup: 'friends',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tactive: false,\r\n\t\t\tlastActivity: moment().subtract(2, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/management/customers').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'West Virginia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '3',\r\n\t\t\trating: 4.3,\r\n\t\t\tlocation: 'Bristow',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tspent: '2,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Georgia, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Anje Keizer',\r\n\t\t\temail: 'anje.keizer@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\tspent: '5,600.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '6',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'Ohio, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Clarke Gillebert',\r\n\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\tspent: '500.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '1',\r\n\t\t\trating: 3.5,\r\n\t\t\tlocation: 'Texas, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tspent: '5,230.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\temail: 'ava.gregoraci@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tspent: '300.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 4,\r\n\t\t\tlocation: 'California, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\temail: 'emilee.simchenko@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tspent: '100.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '4',\r\n\t\t\trating: 4.5,\r\n\t\t\tlocation: 'Nevada, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\temail: 'kwak.seong.min@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\tspent: '1,000.00',\r\n\t\t\ttype: 'Freelancer',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '2',\r\n\t\t\trating: 5,\r\n\t\t\tlocation: 'Michigan, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Shen Zhi',\r\n\t\t\temail: 'shen.zhi@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\tspent: '2,300.00',\r\n\t\t\ttype: 'Agency',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '0',\r\n\t\t\trating: 3.9,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Merrile Burgett',\r\n\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\tspent: '200.00',\r\n\t\t\ttype: 'Enterprise',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprojects: '7',\r\n\t\t\trating: 4.2,\r\n\t\t\tlocation: 'Utah, USA',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/summary').reply(200, {\r\n\tsummary: {\r\n\t\tname: 'Ekaterina Tankova',\r\n\t\temail: 'ekaterina@devias.io',\r\n\t\tphone: '+55 748 327 439',\r\n\t\tstate: 'Alabama',\r\n\t\tcountry: 'United States',\r\n\t\tzipCode: '240355',\r\n\t\taddress1: 'Street John Wick, no. 7',\r\n\t\taddress2: 'House #25',\r\n\t\tiban: '4142 **** **** **** ****',\r\n\t\tautoCC: false,\r\n\t\tverified: true,\r\n\t\tcurrency: '$',\r\n\t\tinvoices: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'paid',\r\n\t\t\t\tvalue: 15.0,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'due',\r\n\t\t\t\tvalue: 5,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\ttype: 'income',\r\n\t\t\t\tvalue: 10.0,\r\n\t\t\t},\r\n\t\t],\r\n\t\tvat: 19,\r\n\t\tbalance: 0,\r\n\t\temails: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(3, 'days')\r\n\t\t\t\t\t.subtract(5, 'hours')\r\n\t\t\t\t\t.subtract(34, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdescription: 'Order confirmation',\r\n\t\t\t\tcreated_at: moment()\r\n\t\t\t\t\t.subtract(4, 'days')\r\n\t\t\t\t\t.subtract(11, 'hours')\r\n\t\t\t\t\t.subtract(49, 'minutes'),\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/invoices').reply(200, {\r\n\tinvoices: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tdate: moment(),\r\n\t\t\tdescription: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\tpaymentMethod: 'Credit Card',\r\n\t\t\tvalue: '5.25',\r\n\t\t\tcurrency: '$',\r\n\t\t\tstatus: 'paid',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/management/customers/1/logs').reply(200, {\r\n\tlogs: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 522,\r\n\t\t\terror: 'Invalid credit card',\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/purchase',\r\n\t\t\tdesc: 'Purchase',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(2, 'minutes')\r\n\t\t\t\t.subtract(56, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'DELETE',\r\n\t\t\troute: '/api/products/d65654e/remove',\r\n\t\t\tdesc: 'Cart remove',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(8, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/d65654e/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(20, 'minutes')\r\n\t\t\t\t.subtract(54, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f/add',\r\n\t\t\tdesc: 'Cart add',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(34, 'minutes')\r\n\t\t\t\t.subtract(16, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products/c85727f',\r\n\t\t\tdesc: 'View product',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(54, 'minutes')\r\n\t\t\t\t.subtract(30, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'GET',\r\n\t\t\troute: '/api/products',\r\n\t\t\tdesc: 'Get products',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(56, 'minutes')\r\n\t\t\t\t.subtract(40, 'seconds'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tstatus: 200,\r\n\t\t\tmethod: 'POST',\r\n\t\t\troute: '/api/login',\r\n\t\t\tdesc: 'Login',\r\n\t\t\tIP: '84.234.243.42',\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(2, 'days')\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(5, 'seconds'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/mail').reply(200, {\r\n\temails: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Business',\r\n\t\t\t\t\tcolor: colors.blue[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Personal',\r\n\t\t\t\t\tcolor: colors.orange[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tsubject: 'Website redesign. Interested in collaboration',\r\n\t\t\tmessage: `\r\nHi Matt, I saw your work on instagram and would be interested in getting a quote for Logo and slider\r\n\r\nInteger velit massa, pharetra sed lacus eu, pulvinar faucibus ex. Ut pretium ex id turpis elementum, aliquam accumsan enim sollicitudin. Sed nec consectetur lorem, ac ullamcorper augue. Suspendisse tempus ligula suscipit finibus vehicula. Morbi viverra finibus lectus, egestas dictum mi mollis nec. Proin eget vehicula eros, sit amet molestie ipsum. Morbi feugiat, elit non placerat fringilla, leo risus tristique felis, sollicitudin tristique nibh arcu nec arcu. Maecenas vel turpis nibh. Etiam in lectus quis felis facilisis dictum. Morbi id vehicula lectus, vel imperdiet dolor. Phasellus consequat tempor tellus, quis placerat quam posuere eget. Mauris blandit, nisl eu sollicitudin tincidunt, tellus diam accumsan arcu, vel pharetra lectus est nec nisi. In sem dolor, mollis sed risus eu, mattis dictum lectus. Suspendisse urna est, finibus et urna non, tincidunt placerat eros.\r\n\r\nDonec viverra ipsum id auctor rutrum. Morbi consequat a nunc non interdum. Nulla accumsan eget felis a dictum. Cras rhoncus tortor eget velit fringilla suscipit. Donec quis arcu eu nibh aliquet auctor eget fringilla felis. Sed commodo efficitur massa. Proin maximus elit in suscipit laoreet. Integer pretium arcu ac mauris ullamcorper auctor. Vivamus tincidunt lacus eget purus feugiat tincidunt. Etiam feugiat gravida ullamcorper. Pellentesque cursus vehicula lectus et consectetur. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam ligula risus, congue eu pellentesque id, volutpat aliquam arcu. Donec efficitur ipsum id neque rhoncus viverra. Vestibulum hendrerit et eros eu bibendum.\r\n\r\n\r\nKind regards,\r\n\r\nEkaterina Tankova\r\n\t `,\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina.tankova@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Amazing work',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Hey, nice projects! I really liked the one in react. What's your quote on kinda similar project?\",\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t\temail: 'adam.denisov@devias.io',\r\n\t\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: false,\r\n\t\t\tfavorited: false,\r\n\t\t\tsubject: 'Flight reminder',\r\n\t\t\tlabels: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Work',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tmessage:\r\n\t\t\t\t'Dear Shen, Your flight is coming up soon. Please don’t forget to check in for your scheduled flight.',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tseen: true,\r\n\t\t\tfavorited: true,\r\n\t\t\tlabels: [],\r\n\t\t\tsubject: 'Posible candidates for the position',\r\n\t\t\tmessage:\r\n\t\t\t\t'My market leading client has another fantastic opportunity for an experienced Software Developer to join them on a heavily remote basis',\r\n\t\t\treceiver: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment(),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 5,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 3,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 8,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'In progress',\r\n\t\t\tmembers: 10,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(3, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Canceled',\r\n\t\t\tmembers: 2,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Kalli UI Kit',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\tstatus: 'Completed',\r\n\t\t\tmembers: 12,\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tstart_date: moment(),\r\n\t\t\tend_date: moment(),\r\n\t\t\tupdated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/projects/1').reply(200, {\r\n\tproject: {\r\n\t\ttitle: 'Develop a PDF Export App',\r\n\t\tauthor: {\r\n\t\t\tname: 'Emilee Simchenko',\r\n\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\tbio: 'We build beautiful functional themes for web professionals',\r\n\t\t},\r\n\t\tbrief: `\r\n#### TL;DR\r\n\r\nThe primary aim of the product is to convert survery responses into PDF reports, these reports are generated on to what we call templates. This product is designer to work with 3rd party survery providers. The first MVP will integrate with TypeForm, because the's no direct way to convert results to PDF from the form people create in TypeForm and then ask users to fill out.\r\n\r\n#### Background information\r\n\r\nDesign files are attachedin the files tab.\r\n\r\nDevelop the web app screens for our product called \"PDFace\". Please look at the wireframes, system activity workflow and read the section above to understand what we're trying to archive.\r\n\r\nThere's not many screens we need designed, but there will be modals and various other system triggered evenets that will need to be considered.\r\n\r\nThe project has benn created in Sketch so let me know if there are any problmes opening this project and I'll try to convert into a usable file.\r\n\r\nI have attached a chat with our users most used devices.\r\n\r\n#### Goals:\r\n - Maintainable Code\r\n - Easy UX\r\n - Readable Code\r\n - No Redux\r\n\t`,\r\n\t\tprice: '12,500',\r\n\t\tcurrency: 'USD',\r\n\t\ttags: [\r\n\t\t\t{\r\n\t\t\t\ttext: 'React JS',\r\n\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t},\r\n\t\t],\r\n\t\tmembers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tbio: 'Front End Developer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tbio: 'UX Designer',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\tbio: 'Copyright',\r\n\t\t\t},\r\n\t\t],\r\n\t\tfiles: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project1.jpg',\r\n\t\t\t\turl: '/images/projects/project_2.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 3,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'docs.zip',\r\n\t\t\t\turl: '#',\r\n\t\t\t\tmimeType: 'application/zip',\r\n\t\t\t\tsize: 1024 * 1024 * 25,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'example-project2.jpg',\r\n\t\t\t\turl: '/images/projects/project_1.jpg',\r\n\t\t\t\tmimeType: 'image/png',\r\n\t\t\t\tsize: 1024 * 1024 * 2,\r\n\t\t\t},\r\n\t\t],\r\n\t\tactivities: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'upload_file',\r\n\t\t\t\taction_desc: 'has uploaded a new file',\r\n\t\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Adrian Stefan',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Front-End Developer',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Alexandru Robert',\r\n\t\t\t\taction_type: 'join_team',\r\n\t\t\t\taction_desc: 'joined team as a Full Stack Developer',\r\n\t\t\t\tcreated_at: moment().subtract(9, 'hours'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Project owner',\r\n\t\t\t\tsubject_type: 'user',\r\n\t\t\t\taction_type: 'price_change',\r\n\t\t\t\taction_desc: 'raised the project budget',\r\n\t\t\t\tcreated_at: moment().subtract(2, 'days'),\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tsubject: 'Contest',\r\n\t\t\t\tsubject_type: 'project',\r\n\t\t\t\taction_type: 'contest_created',\r\n\t\t\t\taction_desc: 'created',\r\n\t\t\t\tcreated_at: moment().subtract(4, 'days'),\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubscribers: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t\tcover: '/images/covers/cover_1.jpg',\r\n\t\t\t\tcommon_connections: 12,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Experience',\r\n\t\t\t\t\t'FrontEnd development',\r\n\t\t\t\t\t'HTML5',\r\n\t\t\t\t\t'VueJS',\r\n\t\t\t\t\t'ReactJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 5,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'User Interface',\r\n\t\t\t\t\t'FullStack development',\r\n\t\t\t\t\t'Angular',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\tcover: '/images/covers/cover_2.jpg',\r\n\t\t\t\tcommon_connections: 17,\r\n\t\t\t\tlabels: [\r\n\t\t\t\t\t'BackEnd development',\r\n\t\t\t\t\t'Firebase',\r\n\t\t\t\t\t'MongoDB',\r\n\t\t\t\t\t'ExpressJS',\r\n\t\t\t\t],\r\n\t\t\t},\r\n\t\t],\r\n\t\tdeadline: moment().add(7, 'days'),\r\n\t\tupdated_at: moment().subtract(23, 'minutes'),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/social-feed').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\tmessage: \"Hey guys! What's your favorite framework?\",\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 1,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_12.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: \"I've been using Angular for the past 3 years\",\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(16, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'Oh... so sentimental',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/users').reply(200, {\r\n\tusers: [],\r\n});\r\n\r\nmock.onGet('/api/users/1/posts').reply(200, {\r\n\tposts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'Just made this home screen for a project, what-cha thinkin?',\r\n\t\t\tmedia: '/images/posts/post_1.jpg',\r\n\t\t\tliked: true,\r\n\t\t\tlikes: 24,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Could use some more statistics, but that’s me haha',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'Hmm, honestly this looks nice but I would change the shadow though',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\tmessage:\r\n\t\t\t\t'As a human being, you are designed in a way that makes you incapable of experiencing any positive emotion unless you set an aim and progress towards it. What makes you happy is not, in fact, attaining it, but making progress towards it.',\r\n\t\t\tliked: false,\r\n\t\t\tlikes: 65,\r\n\t\t\tcomments: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage:\r\n\t\t\t\t\t\t'That’s actually deep. Thanks for the design, would you consider making an interaction?',\r\n\t\t\t\t\tcreated_at: moment().subtract(3, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: uuid(),\r\n\t\t\t\t\tauthor: {\r\n\t\t\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmessage: 'It looks nice',\r\n\t\t\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tcreated_at: moment().subtract(7, 'hours'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(24, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(1, 'hour'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Devias IO',\r\n\t\t\t\tavatar: '',\r\n\t\t\t},\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\ttype: 'Full-Time',\r\n\t\t\tlocation: 'Europe',\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tupdated_at: moment().subtract(16, 'hour'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/reviews').reply(200, {\r\n\treviews: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 4,\r\n\t\t\tmessage:\r\n\t\t\t\t'Shen was really great during the all time session we created the project',\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\t\tprice: '5,240.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '43.00',\r\n\t\t\thours: 31,\r\n\t\t\tcurrency: '$',\r\n\t\t\tcreated_at: moment().subtract(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\trating: 5,\r\n\t\t\treviewer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tproject: {\r\n\t\t\t\ttitle: 'Dashboard Design',\r\n\t\t\t\tprice: '3,680.00',\r\n\t\t\t},\r\n\t\t\tpricePerHour: '38.00',\r\n\t\t\thours: 76,\r\n\t\t\tcurrency: '$',\r\n\t\t\tmessage:\r\n\t\t\t\t\"Being the savage's bowsman, that is, the person who pulled the bow-oar in his boat (the second one from forward), it was my cheerful duty to attend upon him while taking that hard-scrabble scramble upon the dead whale's back. You have seen Italian organ-boys holding a dancing-ape by a long cord. Just so, from the ship's steep side, did I hold Queequeg down there in the sea, by what is technically called in the fishery a monkey-rope, attached to a strong strip of canvas belted round his waist.\",\r\n\t\t\tcreated_at: moment().subtract(8, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/users/1/connections').reply(200, {\r\n\tconnections: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\tcommon: 12,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Cao Yu',\r\n\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\tcommon: 10,\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Alexa Richardson',\r\n\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\tcommon: 8,\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Adam Denisov',\r\n\t\t\tavatar: '/images/avatars/avatar_7.png',\r\n\t\t\tcommon: 5,\r\n\t\t\tstatus: 'not_connected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tname: 'Ava Gregoraci',\r\n\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\tcommon: 1,\r\n\t\t\tstatus: 'connected',\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/invoices').reply(200, {\r\n\tinvoices: [],\r\n});\r\n\r\nmock.onGet('/api/invoices/1').reply(200, {\r\n\tinvoice: {\r\n\t\tid: uuid(),\r\n\t\tdue_date: moment(),\r\n\t\tissue_date: moment().add(15, 'days'),\r\n\t\tref: 'DEV-9483',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Tracey Herman',\r\n\t\t\tcompany: 'Countdown Grey Lynn',\r\n\t\t\tnzbn: '6934656584231',\r\n\t\t\taddress: '271 Richmond Rd, Grey Lynn, Auckland 1022, New Zealand',\r\n\t\t},\r\n\t\tproducts: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tdesc: 'Freelancer Subscription (12/05/2019 - 11/06/2019)',\r\n\t\t\t\tvalue: '55.50',\r\n\t\t\t},\r\n\t\t],\r\n\t\tsubtotal: '50.00',\r\n\t\ttaxes: '5.50',\r\n\t\ttotal: '55.50',\r\n\t\tcurrency: '$',\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/kanban').reply(200, {\r\n\tlists: [\r\n\t\t{\r\n\t\t\tid: 'incoming',\r\n\t\t\ttitle: 'Incoming',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_progress',\r\n\t\t\ttitle: 'In progress',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'in_review',\r\n\t\t\ttitle: 'In review',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: 'completed',\r\n\t\t\ttitle: 'Completed',\r\n\t\t},\r\n\t],\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '38',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Call with sales of HubSpot',\r\n\t\t\tdesc:\r\n\t\t\t\t'Duis condimentum lacus finibus felis pellentesque, ac auctor nibh fermentum. Duis sed dui ante. Phasellus id eros tincidunt, dictum lorem vitae, pellentesque sem. Aenean eu enim sit amet mauris rhoncus mollis. Sed enim turpis, porta a felis et, luctus faucibus nisi. Phasellus et metus fermentum, ultrices arcu aliquam, facilisis justo. Cras nunc nunc, elementum sed euismod ut, maximus eget nibh. Phasellus condimentum lorem neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce sagittis pharetra eleifend. Suspendisse potenti.',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_1.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '37',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Interview for the Asis. Sales Manager',\r\n\t\t\tdesc:\r\n\t\t\t\t'We are looking for vue experience and of course node js strong knowledge',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(6, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '39',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_11.png'],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(5, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '19',\r\n\t\t\tlist: 'incoming',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 1,\r\n\t\t\tprogress: 0,\r\n\t\t\tdeadline: moment().add(4, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '15',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Update the customer API for payments',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: ['/images/avatars/avatar_10.png'],\r\n\t\t\tfiles: 2,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 60,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '10',\r\n\t\t\tlist: 'in_progress',\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_11.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 2,\r\n\t\t\tprogress: 76,\r\n\t\t\tdeadline: moment().add(4, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '24',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '21',\r\n\t\t\tlist: 'in_review',\r\n\t\t\ttitle: 'Integrate Stripe API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t],\r\n\t\t\tfiles: 0,\r\n\t\t\tcomments: 7,\r\n\t\t\tprogress: 90,\r\n\t\t\tdeadline: moment().subtract(1, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '17',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Design Customer Management Page',\r\n\t\t\tdesc:\r\n\t\t\t\t'Change the height of the top bar because it looks too chunky',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 3,\r\n\t\t\tcomments: 3,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: '23',\r\n\t\t\tlist: 'completed',\r\n\t\t\ttitle: 'Integrate Messaging API',\r\n\t\t\tdesc:\r\n\t\t\t\t'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_9.png',\r\n\t\t\t],\r\n\t\t\tfiles: 1,\r\n\t\t\tcomments: 0,\r\n\t\t\tprogress: 100,\r\n\t\t\tdeadline: moment().subtract(7, 'days'),\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/tasks').reply(200, {\r\n\ttasks: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Update the API for the project',\r\n\t\t\tdeadline: moment().add(1, 'days').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_3.png',\r\n\t\t\t\t'/images/avatars/avatar_4.png',\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t\t'/images/avatars/avatar_7.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign the landing page',\r\n\t\t\tdeadline: moment().add(2, 'day').add(1, 'hour'),\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_8.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t\t'/images/avatars/avatar_12.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Solve the bug for the showState',\r\n\t\t\tdeadline: moment(),\r\n\t\t\tmembers: ['/images/avatars/avatar_7.png'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Release v1.0 Beta',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_10.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'GDPR Compliance',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: [\r\n\t\t\t\t'/images/avatars/avatar_5.png',\r\n\t\t\t\t'/images/avatars/avatar_2.png',\r\n\t\t\t\t'/images/avatars/avatar_6.png',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Redesign Landing Page',\r\n\t\t\tdeadline: null,\r\n\t\t\tmembers: ['/images/avatars/avatar_8.png'],\r\n\t\t},\r\n\t],\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(10, 'minutes'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD103',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(32, 'minutes')\r\n\t\t\t\t.subtract(23, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD102',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(36, 'minutes')\r\n\t\t\t\t.subtract(51, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD101',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(38, 'minutes')\r\n\t\t\t\t.subtract(55, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD100',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(40, 'minutes').subtract(3, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD99',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(45, 'minutes')\r\n\t\t\t\t.subtract(32, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Adam Denisov',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD98',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(48, 'minutes')\r\n\t\t\t\t.subtract(57, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ava Gregoraci',\r\n\t\t\t\tavatar: '/images/avatars/avatar_8.png',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD97',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'pending',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(49, 'minutes').subtract(4, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD96',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t},\r\n\t\t\tstatus: 'active',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(57, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD95',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'rejected',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment().subtract(59, 'minutes').subtract(6, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD94',\r\n\t\t\t\tmethod: 'CreditCard',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcreated_at: moment()\r\n\t\t\t\t.subtract(1, 'hour')\r\n\t\t\t\t.subtract(15, 'minutes')\r\n\t\t\t\t.subtract(43, 'seconds'),\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t},\r\n\t\t\tpayment: {\r\n\t\t\t\tref: 'FAD93',\r\n\t\t\t\tmethod: 'PayPal',\r\n\t\t\t\ttotal: '500.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t\tstatus: 'canceled',\r\n\t\t\t},\r\n\t\t\tstatus: 'inactive',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/orders/1').reply(200, {\r\n\torder: {\r\n\t\tid: uuid(),\r\n\t\tref: 'FAD107',\r\n\t\tpromoCode: null,\r\n\t\tvalue: '55.25',\r\n\t\tcurrency: '$',\r\n\t\tstatus: 'canceled',\r\n\t\tcustomer: {\r\n\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\taddress: 'Street King William, 42456',\r\n\t\t\tcity: 'Montgomery',\r\n\t\t\tcountry: 'United States',\r\n\t\t},\r\n\t\titems: [\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Project Points',\r\n\t\t\t\tcuantity: 25,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '50.25',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: uuid(),\r\n\t\t\t\tname: 'Freelancer Subscription',\r\n\t\t\t\tcuantity: 1,\r\n\t\t\t\tbilling: 'monthly',\r\n\t\t\t\tstatus: 'completed',\r\n\t\t\t\tvalue: '5.00',\r\n\t\t\t\tcurrency: '$',\r\n\t\t\t},\r\n\t\t],\r\n\t\tcreated_at: moment(),\r\n\t},\r\n});\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\nimport { colors } from '@mui/material';\r\n\r\nimport mock from 'utils/mock';\r\n\r\nmock.onGet('/api/dashboard/top-referrals').reply(200, {\r\n\treferrals: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['700'],\r\n\t\t\tname: 'GitHub',\r\n\t\t\tinitials: 'GT',\r\n\t\t\tvalue: '53,032',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.cyan['500'],\r\n\t\t\tname: 'Twitter',\r\n\t\t\tinitials: 'TW',\r\n\t\t\tvalue: '39,551',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.indigo[600],\r\n\t\t\tname: 'Hacker News',\r\n\t\t\tinitials: 'HN',\r\n\t\t\tvalue: '23,150',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.red['500'],\r\n\t\t\tname: 'Stack Overflow',\r\n\t\t\tinitials: 'SO',\r\n\t\t\tvalue: '14,093',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.orange['900'],\r\n\t\t\tname: 'Reddit.com',\r\n\t\t\tinitials: 'RD',\r\n\t\t\tvalue: '7,251',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Dev.to',\r\n\t\t\tinitials: 'DE',\r\n\t\t\tvalue: '5,694',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blue['900'],\r\n\t\t\tname: 'Facebook',\r\n\t\t\tinitials: 'FB',\r\n\t\t\tvalue: '3,643',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tcolor: colors.blueGrey['900'],\r\n\t\t\tname: 'Medium',\r\n\t\t\tinitials: 'MD',\r\n\t\t\tvalue: '1,654',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/profitable-products').reply(200, {\r\n\tproducts: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_basic',\r\n\t\t\tname: 'Freelancer Basic Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '13,153',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '5.00',\r\n\t\t\tprogress: 93,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'freelancer_extra',\r\n\t\t\tname: 'Freelancer Extra Subscription',\r\n\t\t\timage: '/images/products/product_freelancer.svg',\r\n\t\t\tsubscriptions: '10,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '15.00',\r\n\t\t\tprogress: 76,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'agency_basic',\r\n\t\t\tname: 'Agency Basic Subscription',\r\n\t\t\timage: '/images/products/product_agency.svg',\r\n\t\t\tsubscriptions: '5,300',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '25.00',\r\n\t\t\tprogress: 60,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_basic',\r\n\t\t\tname: 'Enterprise Basic Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '1,203',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '205.00',\r\n\t\t\tprogress: 46,\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'enterprise_extra',\r\n\t\t\tname: 'Enterprise Extra Subscription',\r\n\t\t\timage: '/images/products/product_enterprise.svg',\r\n\t\t\tsubscriptions: '254',\r\n\t\t\tcurrency: '$',\r\n\t\t\tprice: '500.00',\r\n\t\t\tprogress: 41,\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/customer-activity').reply(200, {\r\n\tcustomers: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\tavatar: '/images/avatars/avatar_2.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(23, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(56, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\tavatar: '/images/avatars/avatar_4.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(2, 'hours'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttype: 'payment',\r\n\t\t\tdescription: 'Subscription Purchase',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\tavatar: '/images/avatars/avatar_6.png',\r\n\t\t\t},\r\n\t\t\tcreated_at: moment().subtract(5, 'minutes'),\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/earnings').reply(200, {\r\n\tearnings: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Subscriptions',\r\n\t\t\tvalue: 56,\r\n\t\t\tcolor: colors.indigo[500],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Afiliate',\r\n\t\t\tvalue: 24,\r\n\t\t\tcolor: colors.indigo[300],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tlabel: 'Sales',\r\n\t\t\tvalue: 20,\r\n\t\t\tcolor: colors.indigo[100],\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-orders').reply(200, {\r\n\torders: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1042',\r\n\t\t\titems: 7,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Ekaterina Tankova',\r\n\t\t\t\temail: 'ekaterina@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1041',\r\n\t\t\titems: 8,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\temail: 'cao.yu@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1040',\r\n\t\t\titems: 4,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Alexa Richardson',\r\n\t\t\t\temail: 'alexa.richardson@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'rejected',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1039',\r\n\t\t\titems: 1,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\temail: 'anje.keiser@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'pending',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1038',\r\n\t\t\titems: 5,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Clarke Gillebert',\r\n\t\t\t\temail: 'clarke.gillebert@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\tref: 'DEV1037',\r\n\t\t\titems: 2,\r\n\t\t\tvalue: '25.00',\r\n\t\t\tcurrency: '$',\r\n\t\t\tcustomer: {\r\n\t\t\t\tname: 'Merrile Burgett',\r\n\t\t\t\temail: 'merrile.burgett@devias.io',\r\n\t\t\t},\r\n\t\t\tstatus: 'complete',\r\n\t\t},\r\n\t],\r\n});\r\n\r\nmock.onGet('/api/dashboard/latest-projects').reply(200, {\r\n\tprojects: [\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Mella Full Screen Slider',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Anje Keizer',\r\n\t\t\t\tavatar: '/images/avatars/avatar_5.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Dashboard Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Emilee Simchenko',\r\n\t\t\t\tavatar: '/images/avatars/avatar_9.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'HTML & CSS',\r\n\t\t\t\t\tcolor: colors.grey[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Ten80 Web Design',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Kwak Seong-Min',\r\n\t\t\t\tavatar: '/images/avatars/avatar_10.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'React JS',\r\n\t\t\t\t\tcolor: colors.indigo[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Neura e-commerce UI Kit',\r\n\t\t\tprice: '12,500',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Shen Zhi',\r\n\t\t\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Vue JS',\r\n\t\t\t\t\tcolor: colors.green[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tid: uuid(),\r\n\t\t\ttitle: 'Administrator Dashboard',\r\n\t\t\tprice: '15,750',\r\n\t\t\tcurrency: '$',\r\n\t\t\tauthor: {\r\n\t\t\t\tname: 'Cao Yu',\r\n\t\t\t\tavatar: '/images/avatars/avatar_3.png',\r\n\t\t\t},\r\n\t\t\ttags: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttext: 'Angular JS',\r\n\t\t\t\t\tcolor: colors.red[600],\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t},\r\n\t],\r\n});\r\n","import React from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { createBrowserHistory } from 'history';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport { Provider as StoreProvider } from 'react-redux';\r\nimport { StyledEngineProvider, ThemeProvider } from '@mui/material/styles';\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport { renderRoutes } from 'react-router-config';\r\nimport jwt from 'jwt-decode';\r\nimport { DateEnv } from '@fullcalendar/core';\r\nimport config from 'configuration/configuration.js';\r\nimport theme from './theme';\r\nimport { configureStore } from './store';\r\nimport routes from './routes';\r\nimport { getUserInfo } from './actions';\r\nimport { Loading, ScrollReset, GoogleAnalytics, CookiesNotification } from './components';\r\nimport Notifier from './components/Notifier/Notifier';\r\nimport './mixins/chartjs';\r\nimport './mixins/moment';\r\nimport './mixins/validate';\r\nimport './mixins/prismjs';\r\nimport './mock';\r\nimport './assets/scss/index.scss';\r\n\r\nimport { interceptor } from './utils/AxiosRequest';\r\n\r\nconst history = createBrowserHistory({ basename: process.env.PUBLIC_URL });\r\nconst store = configureStore();\r\ninterceptor(store);\r\n\r\nconst App = () => {\r\n\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\tif (token) {\r\n\t\tconst decoded = jwt(token);\r\n\t\tconst currentDate = new Date().getTime() / 1000;\r\n\t\tif (decoded.exp > currentDate) {\r\n\t\t\tstore.dispatch(getUserInfo(token));\r\n\t\t}\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderRoutes(routes)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default App;\r\n","import { applyMiddleware, createStore, compose } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\n// import { createLogger } from 'redux-logger';\r\nimport rootReducer from 'reducers';\r\n// const loggerMiddleware = createLogger();\r\n\r\nexport default function configureStore(preloadedState = {}) {\r\n\tconst middlewares = [thunkMiddleware]; // loggerMiddleware\r\n\tconst middlewareEnhancer = composeWithDevTools(\r\n\t\tapplyMiddleware(...middlewares)\r\n\t);\r\n\r\n\tconst enhancers = [middlewareEnhancer];\r\n\tconst composedEnhancers = compose(...enhancers);\r\n\r\n\tconst store = createStore(rootReducer, preloadedState, composedEnhancers);\r\n\r\n\treturn store;\r\n}\r\n","/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in projection, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n\twindow.location.hostname === 'localhost'\r\n\t// [::1] is the IPv6 localhost address.\r\n\t|| window.location.hostname === '[::1]'\r\n\t// 127.0.0.1/8 is considered localhost for IPv4.\r\n\t|| window.location.hostname.match(\r\n\t\t/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n\t)\r\n);\r\n\r\nexport function register(config) {\r\n\tif (process.env.NODE_ENV === 'projection' && 'serviceWorker' in navigator) {\r\n\t\t// The URL constructor is available in all browsers that support SW.\r\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n\t\tif (publicUrl.origin !== window.location.origin) {\r\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\r\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\r\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('load', () => {\r\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n\t\t\tif (isLocalhost) {\r\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\r\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\r\n\r\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\r\n\t\t\t\t// service worker/PWA documentation.\r\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t'This web app is being served cache-first by a service '\r\n\t\t\t\t\t\t+ 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Is not localhost. Just register service worker\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n\tnavigator.serviceWorker\r\n\t\t.register(swUrl)\r\n\t\t.then((registration) => {\r\n\t\t\tregistration.onupdatefound = () => {\r\n\t\t\t\tconst installingWorker = registration.installing;\r\n\t\t\t\tif (installingWorker == null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tinstallingWorker.onstatechange = () => {\r\n\t\t\t\t\tif (installingWorker.state === 'installed') {\r\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\r\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\r\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\r\n\t\t\t\t\t\t\t// content until all client tabs are closed.\r\n\t\t\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t\t\t'New content is available and will be used when all '\r\n\t\t\t\t\t\t\t\t+ 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\r\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// At this point, everything has been precached.\r\n\t\t\t\t\t\t\t// It's the perfect time to display a\r\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\r\n\t\t\t\t\t\t\tconsole.log('Content is cached for offline use.');\r\n\r\n\t\t\t\t\t\t\t// Execute callback\r\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\r\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t})\r\n\t\t.catch((error) => {\r\n\t\t\tconsole.error('Error during service worker registration:', error);\r\n\t\t});\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n\t// Check if the service worker can be found. If it can't reload the page.\r\n\tfetch(swUrl)\r\n\t\t.then((response) => {\r\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\r\n\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\tif (\r\n\t\t\t\tresponse.status === 404\r\n\t\t\t\t|| (contentType != null\r\n\t\t\t\t\t&& contentType.indexOf('javascript') === -1)\r\n\t\t\t) {\r\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\r\n\t\t\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\t\t\tregistration.unregister().then(() => {\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// Service worker found. Proceed as normal.\r\n\t\t\t\tregisterValidSW(swUrl, config);\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(() => {\r\n\t\t\tconsole.log(\r\n\t\t\t\t'No internet connection found. App is running in offline mode.'\r\n\t\t\t);\r\n\t\t});\r\n}\r\n\r\nexport function unregister() {\r\n\tif ('serviceWorker' in navigator) {\r\n\t\tnavigator.serviceWorker.ready.then((registration) => {\r\n\t\t\tregistration.unregister();\r\n\t\t});\r\n\t}\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.unregister();\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport { makeStyles } from '@mui/styles';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tchips: {\r\n\t\tdisplay: 'flex',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tchip: {\r\n\t\tmargin: theme.spacing(0.25),\r\n\t},\r\n}));\r\n\r\nconst SelectField = (props) => {\r\n\tconst { id, name, value, error = false, onChange, hintText, menuItems, isMultiSelect = false, customRenderValue, formControlStyle, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\tconst [labelWidth, setLabelWidth] = useState(0);\r\n\tconst InputLabelRef = useRef(undefined);\r\n\tuseEffect(() => {\r\n\t\tsetLabelWidth(InputLabelRef.current ? InputLabelRef.current.offsetWidth : 0);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\tInputLabelRef.current = ref;\r\n\t\t\t\t}}\r\n\t\t\t\thtmlFor={`${hintText}_selectField_input_id`}\r\n\t\t\t>\r\n\t\t\t\t{hintText}\r\n\t\t\t\r\n\t\t\t {\r\n\t\t\t\t\tconst selectedText = menuItems.filter((item) => selected.indexOf(item.value) !== -1);\r\n\t\t\t\t\treturn selectedText.map(item => item.text).join(', ');\r\n\t\t\t\t} : false}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t{\r\n\t\t\t\t\t!isMultiSelect && menuItems.map((item, i) => ({item.text}))\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tisMultiSelect && menuItems.map((item, i) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t -1} />\r\n\t\t\t\t\t\t\t{item.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t{\r\n\t\t\t\terror && (\r\n\t\t\t\t\t{error}\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t\r\n\t);\r\n};\r\n\r\nSelectField.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\tvalue: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.number\r\n\t]),\r\n\tname: PropTypes.string,\r\n\terror: PropTypes.any,\r\n\tonChange: PropTypes.func.isRequired,\r\n\thintText: PropTypes.string.isRequired,\r\n\tmenuItems: PropTypes.array.isRequired,\r\n\tclasses: PropTypes.object,\r\n\tisMultiSelect: PropTypes.bool,\r\n\tcustomRenderValue: PropTypes.func,\r\n\tformControlStyle: PropTypes.object\r\n};\r\n\r\nexport default SelectField;\r\n","export default (name = '') => name\r\n\t.replace(/\\s+/, ' ')\r\n\t.split(' ')\r\n\t.slice(0, 2)\r\n\t.map((v) => v && v[0].toUpperCase())\r\n\t.join('');\r\n","import React, { useState, useRef } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardContent,\r\n\tDivider,\r\n\tIconButton,\r\n\tInput,\r\n\tPaper,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport AddPhotoIcon from '@mui/icons-material/AddPhotoAlternate';\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tcontent: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tpaper: {\r\n\t\tflexGrow: 1,\r\n\t\tpadding: theme.spacing(0.5, 2),\r\n\t},\r\n\tinput: {\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\twidth: 1,\r\n\t\theight: 24,\r\n\t},\r\n\tfileInput: {\r\n\t\tdisplay: 'none',\r\n\t},\r\n}));\r\n\r\nconst AddPost = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst fileInputRef = useRef(null);\r\n\tconst [value, setValue] = useState('');\r\n\tconst session = useSelector((state) => state.session);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetValue(event.target.value);\r\n\t};\r\n\r\n\tconst handleAttach = () => {\r\n\t\tfileInputRef.current.click();\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t 0 ? 'primary' : 'default'} size=\"large\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nAddPost.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default AddPost;\r\n","import React, { forwardRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, IconButton, Typography, Collapse, colors } from '@mui/material';\r\nimport CheckCircleIcon from '@mui/icons-material/CheckCircleOutlined';\r\nimport CloseIcon from '@mui/icons-material/CloseOutlined';\r\nimport ErrorIcon from '@mui/icons-material/ErrorOutlined';\r\nimport InfoIcon from '@mui/icons-material/InfoOutlined';\r\nimport WarningIcon from '@mui/icons-material/WarningOutlined';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tpadding: '6px 16px',\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t},\r\n\tdefault: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t},\r\n\tsuccess: {\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\tcolor: theme.palette.white,\r\n\t},\r\n\tinfo: {\r\n\t\tbackgroundColor: colors.lightBlue[600],\r\n\t\tcolor: theme.palette.white,\r\n\t},\r\n\twarning: {\r\n\t\tbackgroundColor: colors.orange[900],\r\n\t\tcolor: theme.palette.white,\r\n\t},\r\n\terror: {\r\n\t\tbackgroundColor: theme.palette.error.main,\r\n\t\tcolor: theme.palette.error.contrastText,\r\n\t},\r\n\tmessage: {\r\n\t\tflexGrow: 1,\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tpadding: '8px 0',\r\n\t},\r\n\ticon: {\r\n\t\tfontSize: 20,\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\taction: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tmarginLeft: 'auto',\r\n\t\tpaddingLeft: 16,\r\n\t\tmarginRight: -8,\r\n\t},\r\n}));\r\n\r\nconst icons = {\r\n\tdefault: ,\r\n\tsuccess: ,\r\n\tinfo: ,\r\n\twarning: ,\r\n\terror: ,\r\n};\r\n\r\nconst Alert = forwardRef((props, ref) => {\r\n\tconst { className, icon, variant, message, onClose, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [open, setOpen] = useState(true);\r\n\r\n\tconst _onClose = () => {\r\n\t\tsetOpen(false);\r\n\t\tonClose(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{icon || icons[variant]}\r\n\t\t\t\t
    {message}
    \r\n\t\t\t\t{onClose && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n});\r\n\r\nAlert.displayName = 'Alert';\r\n\r\nAlert.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\ticon: PropTypes.node,\r\n\tmessage: PropTypes.string.isRequired,\r\n\tonClose: PropTypes.func,\r\n\tvariant: PropTypes.oneOf([\r\n\t\t'default',\r\n\t\t'info',\r\n\t\t'success',\r\n\t\t'warning',\r\n\t\t'error',\r\n\t]),\r\n};\r\n\r\nAlert.defaultProps = {\r\n\tvariant: 'default',\r\n};\r\n\r\nexport default Alert;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport * as Prism from 'prismjs';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport makeStyles from '@mui/styles/makeStyles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {},\r\n}));\r\n\r\nconst trimCode = (input) => {\r\n\tconst codeLines = input.split('\\n');\r\n\r\n\tif (!codeLines[0].trim()) {\r\n\t\tcodeLines.shift();\r\n\t}\r\n\r\n\tif (!codeLines[codeLines.length - 1].trim()) {\r\n\t\tcodeLines.pop();\r\n\t}\r\n\r\n\tconst indexOfFirstChar = codeLines[0].search(/\\S|$/);\r\n\r\n\tlet output = '';\r\n\r\n\tcodeLines.forEach((line, index) => {\r\n\t\toutput += line.substr(indexOfFirstChar, line.length);\r\n\r\n\t\tif (index !== codeLines.length - 1) {\r\n\t\t\toutput = `${output}\\n`;\r\n\t\t}\r\n\t});\r\n\r\n\treturn output;\r\n};\r\n\r\nconst CodeBlock = (props) => {\r\n\tconst {\r\n\t\tasync,\r\n\t\tsource,\r\n\t\tlanguage,\r\n\t\tclassName,\r\n\t\tcomponent: Component,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst ref = useRef(null);\r\n\tconst classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst highlight = () => {\r\n\t\t\tPrism.highlightElement(ref.current, async);\r\n\t\t};\r\n\r\n\t\thighlight();\r\n\t});\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t{trimCode(source)}\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nCodeBlock.propTypes = {\r\n\tasync: PropTypes.bool,\r\n\tclassName: PropTypes.string,\r\n\tcomponent: PropTypes.node,\r\n\tlanguage: PropTypes.string.isRequired,\r\n\tsource: PropTypes.string.isRequired,\r\n};\r\n\r\nCodeBlock.defaultProps = {\r\n\tcomponent: 'code',\r\n};\r\n\r\nexport default CodeBlock;\r\n","import React, { useState, useEffect } from 'react';\r\nimport Cookies from 'js-cookie';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, Typography, Link, Button } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmaxWidth: 420,\r\n\t\tposition: 'fixed',\r\n\t\tbottom: 0,\r\n\t\tright: 0,\r\n\t\tmargin: theme.spacing(3),\r\n\t\toutline: 'none',\r\n\t\tzIndex: 2000,\r\n\t},\r\n\tmedia: {\r\n\t\tpadding: theme.spacing(1, 2),\r\n\t\theight: 180,\r\n\t\ttextAlign: 'center',\r\n\t\t'& > img': {\r\n\t\t\theight: '100%',\r\n\t\t\twidth: 'auto',\r\n\t\t},\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(1, 2),\r\n\t},\r\n\tactions: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\tpadding: theme.spacing(1, 2, 2, 1),\r\n\t},\r\n}));\r\n\r\nconst CookiesNotification = () => {\r\n\tconst classes = useStyles();\r\n\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst consent = Cookies.get('consent');\r\n\r\n\t\tif (!consent) {\r\n\t\t\tsetOpen(true);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleClose = () => {\r\n\t\tCookies.set('consent', 'true');\r\n\t\tsetOpen(false);\r\n\t};\r\n\r\n\tif (!open) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{/*
    \r\n\t\t\t\t\"Cookies\"\r\n\t\t\t
    */}\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\tWe use Cookies to ensure that we give you the best\r\n\t\t\t\t\texperience on our website. Read our\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPrivacy Policy\r\n\t\t\t\t\t\r\n\t\t\t\t\t.\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\tI Agree\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default CookiesNotification;\r\n","export default (bytes, decimals = 2) => {\r\n\tif (bytes === 0) return '0 Bytes';\r\n\r\n\tconst k = 1024;\r\n\tconst dm = decimals < 0 ? 0 : decimals;\r\n\tconst sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n\r\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n\t// eslint-disable-next-line no-restricted-properties\r\n\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\r\n};\r\n","import React, { Fragment, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tIconButton,\r\n\tLink,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTypography,\r\n\tTooltip,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\n\r\nimport bytesToSize from 'utils/bytesToSize';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdropZone: {\r\n\t\tborder: `1px dashed ${theme.palette.divider}`,\r\n\t\tpadding: theme.spacing(6),\r\n\t\toutline: 'none',\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\talignItems: 'center',\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.grey[50],\r\n\t\t\topacity: 0.5,\r\n\t\t\tcursor: 'pointer',\r\n\t\t},\r\n\t},\r\n\tdragActive: {\r\n\t\tbackgroundColor: colors.grey[50],\r\n\t\topacity: 0.5,\r\n\t},\r\n\timage: {\r\n\t\twidth: 130,\r\n\t},\r\n\tinfo: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tlist: {\r\n\t\tmaxHeight: 320,\r\n\t},\r\n\tactions: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst FilesDropzone = (props) => {\r\n\tconst { multiple, acceptedTypes, upload, maxSize, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [files, setFiles] = useState([]);\r\n\r\n\tconst handleDrop = useCallback((acceptedFiles) => {\r\n\t\tif (multiple) {\r\n\t\t\tsetFiles((f) => [...f].concat(acceptedFiles));\r\n\t\t} else {\r\n\t\t\tsetFiles([...acceptedFiles]);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleRemoveAll = () => {\r\n\t\tsetFiles([]);\r\n\t};\r\n\r\n\tconst { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n\t\tmultiple,\r\n\t\taccept: acceptedTypes,\r\n\t\tmaxSize,\r\n\t\tonDrop: handleDrop,\r\n\t});\r\n\r\n\tconst _upload = () => {\r\n\t\tif (upload) {\r\n\t\t\tupload(files);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tSelect files\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tDrop files here or click\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\tbrowse\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\tthorough your\r\n\t\t\t\t\t\tmachine\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t{files.length > 0 && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{files.map((file, i) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/* \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tUpload\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nFilesDropzone.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tmultiple: PropTypes.bool,\r\n\tacceptedTypes: PropTypes.string,\r\n\tmaxSize: PropTypes.number,\r\n\tupload: PropTypes.func\r\n};\r\n\r\nexport default FilesDropzone;\r\n","import React, { Fragment, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tIconButton,\r\n\tLink,\r\n\tList,\r\n\tListItem,\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTypography,\r\n\tTooltip,\r\n\tcolors,\r\n\tGrid\r\n} from '@mui/material';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\n\r\nimport bytesToSize from 'utils/bytesToSize';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tdropZone: {\r\n\t\tborder: `1px dashed ${theme.palette.divider}`,\r\n\t\tpadding: theme.spacing(6),\r\n\t\toutline: 'none',\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\talignItems: 'center',\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.grey[50],\r\n\t\t\topacity: 0.5,\r\n\t\t\tcursor: 'pointer',\r\n\t\t},\r\n\t},\r\n\tdropZonePaste: {\r\n\t\tborder: `1px dashed ${theme.palette.divider}`,\r\n\t\tpadding: theme.spacing(6),\r\n\t\toutline: 'none',\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tdragActive: {\r\n\t\tbackgroundColor: colors.grey[50],\r\n\t\topacity: 0.5,\r\n\t},\r\n\timage: {\r\n\t\twidth: 130,\r\n\t},\r\n\tinfo: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tlist: {\r\n\t\tmaxHeight: 320,\r\n\t},\r\n\tactions: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst FilesDropzone = (props) => {\r\n\tconst { multiple, acceptedTypes, upload, maxSize, className, title, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [files, setFiles] = useState([]);\r\n\r\n\tconst handleDrop = useCallback((acceptedFiles) => {\r\n\t\tif (multiple) {\r\n\t\t\tsetFiles((f) => [...f].concat(acceptedFiles));\r\n\t\t} else {\r\n\t\t\tsetFiles([...acceptedFiles]);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst [image, setImage] = useState(null);\r\n\r\n\tconst handleRemoveAll = () => {\r\n\t\tsetFiles([]);\r\n\t\tsetImage(null);\r\n\t};\r\n\r\n\tconst { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n\t\tmultiple,\r\n\t\taccept: acceptedTypes,\r\n\t\tmaxSize,\r\n\t\tonDrop: handleDrop,\r\n\t});\r\n\r\n\tconst _upload = () => {\r\n\t\tif (upload) {\r\n\t\t\tupload(files, image);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleOnPaste = (event) => {\r\n\t\tconst { items } = event.clipboardData || event.originalEvent.clipboardData;\r\n\r\n\t\tlet blob = null;\r\n\t\tfor (let i = 0; i < items.length; i++) {\r\n\t\t\tif (items[i].type.indexOf('image') === 0) {\r\n\t\t\t\tblob = items[i].getAsFile();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (blob !== null) {\r\n\t\t\tconst reader = new FileReader();\r\n\t\t\treader.onload = function (eventer) {\r\n\t\t\t\tsetImage(eventer.target.result);\r\n\t\t\t};\r\n\t\t\treader.readAsDataURL(blob);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    handleOnPaste(event, title)}>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \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\tSelect files\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tDrop files here or click\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tbrowse\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tthorough your\r\n\t\t\t\t\t\t\t\tmachine\r\n\t\t\t\t\t\t\t\r\n\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\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    handleOnPaste(event, title)}>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    handleOnPaste(event, title)}>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tPaste image here\r\n\t\t\t\t\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
    \r\n\t\t\t\r\n\t\t\t{\r\n\t\t\t\t(files.length > 0 || image) && (\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{files.map((file, i) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\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\tUpload\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t\r\n\t);\r\n};\r\n\r\nFilesDropzone.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tmultiple: PropTypes.bool,\r\n\tacceptedTypes: PropTypes.string,\r\n\tmaxSize: PropTypes.number,\r\n\tupload: PropTypes.func,\r\n\ttitle: PropTypes.string\r\n};\r\n\r\nexport default FilesDropzone;\r\n","import React, { Fragment, useRef, useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tListItemIcon,\r\n\tListItemText,\r\n\tTooltip,\r\n\tIconButton,\r\n\tMenu,\r\n\tMenuItem,\r\n} from '@mui/material';\r\nimport MoreIcon from '@mui/icons-material/MoreVert';\r\nimport GetAppIcon from '@mui/icons-material/GetApp';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport PrintIcon from '@mui/icons-material/Print';\r\nimport PictureAsPdfIcon from '@mui/icons-material/PictureAsPdf';\r\nimport AchiveIcon from '@mui/icons-material/ArchiveOutlined';\r\n\r\nconst useStyles = makeStyles(() => ({}));\r\n\r\nconst GenericMoreButton = (props) => {\r\n\tconst classes = useStyles();\r\n\tconst moreRef = useRef(null);\r\n\tconst [openMenu, setOpenMenu] = useState(false);\r\n\r\n\tconst handleMenuOpen = () => {\r\n\t\tsetOpenMenu(true);\r\n\t};\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetOpenMenu(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nGenericMoreButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default memo(GenericMoreButton);\r\n","/* eslint-disable react/no-danger */\r\nimport React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\n\r\n// eslint-disable-next-line no-undef\r\nconst GA_MEASUREMENT_ID = process.env.REACT_APP_GA_MEASUREMENT_ID;\r\n\r\nconst GoogleAnalytics = () => (\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default GoogleAnalytics;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport Prism from 'prismjs';\r\nimport ReactMarkdown from 'react-markdown/with-html';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\t'& h1': {\r\n\t\t\t...theme.typography.h1,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h2': {\r\n\t\t\t...theme.typography.h2,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h3': {\r\n\t\t\t...theme.typography.h3,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h4': {\r\n\t\t\t...theme.typography.h4,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h5': {\r\n\t\t\t...theme.typography.h5,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& h6': {\r\n\t\t\t...theme.typography.h6,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& p': {\r\n\t\t\t...theme.typography.subtitle1,\r\n\t\t\tmarginBottom: theme.spacing(2),\r\n\t\t},\r\n\t\t'& ul': {\r\n\t\t\tmarginLeft: theme.spacing(3),\r\n\t\t\tmarginBottom: theme.spacing(2),\r\n\t\t},\r\n\t\t'& ol': {\r\n\t\t\tmarginLeft: theme.spacing(3),\r\n\t\t\tmarginBottom: theme.spacing(2),\r\n\t\t},\r\n\t\t'& li': {\r\n\t\t\t...theme.typography.subtitle1,\r\n\t\t\tmarginBottom: theme.spacing(1),\r\n\t\t},\r\n\t\t'& hr': {\r\n\t\t\tmarginTop: theme.spacing(3),\r\n\t\t\tmarginBottom: theme.spacing(3),\r\n\t\t\tbackgroundColor: colors.grey[300],\r\n\t\t\tborder: 0,\r\n\t\t\theight: 1,\r\n\t\t},\r\n\t\t'& a': {\r\n\t\t\tcolor: theme.palette.link,\r\n\t\t\t'&:hover': {\r\n\t\t\t\ttextDecoration: 'underline',\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Markdown = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\tPrism.highlightAll();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nMarkdown.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default Markdown;\r\n","/* eslint-disable react/display-name */\r\nimport React, { useState, forwardRef } from 'react';\r\nimport { NavLink as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { ListItem, Button, Collapse, colors } from '@mui/material';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\r\n\r\nconst CustomRouterLink = forwardRef((props, ref) => (\r\n\t
    \r\n\t\t\r\n\t
    \r\n));\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\titem: {\r\n\t\tdisplay: 'block',\r\n\t\tpaddingTop: 0,\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\titemLeaf: {\r\n\t\tdisplay: 'flex',\r\n\t\tpaddingTop: 0,\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\tbutton: {\r\n\t\tcolor: colors.blueGrey[800],\r\n\t\tpadding: '10px 8px',\r\n\t\tjustifyContent: 'flex-start',\r\n\t\ttextTransform: 'none',\r\n\t\tletterSpacing: 0,\r\n\t\twidth: '100%',\r\n\t},\r\n\tbuttonLeaf: {\r\n\t\tcolor: colors.blueGrey[800],\r\n\t\tpadding: '10px 8px',\r\n\t\tjustifyContent: 'flex-start',\r\n\t\ttextTransform: 'none',\r\n\t\tletterSpacing: 0,\r\n\t\twidth: '100%',\r\n\t\tfontWeight: theme.typography.fontWeightRegular,\r\n\t\t'&.depth-0': {\r\n\t\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t\t},\r\n\t},\r\n\ticon: {\r\n\t\tcolor: theme.palette.icon,\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\texpandIcon: {\r\n\t\tmarginLeft: 'auto',\r\n\t\theight: 16,\r\n\t\twidth: 16,\r\n\t},\r\n\tlabel: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tactive: {\r\n\t\tcolor: theme.palette.primary.main,\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t\t'& $icon': {\r\n\t\t\tcolor: theme.palette.primary.main,\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst NavigationListItem = (props) => {\r\n\tconst {\r\n\t\ttitle,\r\n\t\thref,\r\n\t\tdepth,\r\n\t\tchildren,\r\n\t\ticon: Icon,\r\n\t\tclassName,\r\n\t\topen: openProp,\r\n\t\tlabel: Label,\r\n\t\ttarget,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst [open, setOpen] = useState(openProp);\r\n\r\n\tconst handleToggle = () => {\r\n\t\tsetOpen((o) => !o);\r\n\t};\r\n\r\n\tlet paddingLeft = 8;\r\n\r\n\tif (depth > 0) {\r\n\t\tpaddingLeft = 32 + 8 * depth;\r\n\t}\r\n\r\n\tconst style = {\r\n\t\tpaddingLeft,\r\n\t};\r\n\r\n\tif (children) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Icon && }\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\t{open ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t);\r\n\t} if (target) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t window.open(href, target)}\r\n\t\t\t\t>\r\n\t\t\t\t\t{Icon && }\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\t{Label && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Icon && }\r\n\t\t\t\t{title}\r\n\t\t\t\t{Label && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavigationListItem.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\tclassName: PropTypes.string,\r\n\tdepth: PropTypes.number,\r\n\thref: PropTypes.string,\r\n\ticon: PropTypes.any,\r\n\tlabel: PropTypes.any,\r\n\topen: PropTypes.bool,\r\n\ttitle: PropTypes.string.isRequired,\r\n\ttarget: PropTypes.any\r\n};\r\n\r\nNavigationListItem.defaultProps = {\r\n\tdepth: 0,\r\n\topen: false,\r\n};\r\n\r\nexport default NavigationListItem;\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React from 'react';\r\nimport { matchPath } from 'react-router-dom';\r\nimport _ from 'underscore';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { List, Typography } from '@mui/material';\r\n\r\nimport useRouter from 'utils/useRouter';\r\nimport { NavigationListItem } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tmarginBottom: theme.spacing(3),\r\n\t},\r\n}));\r\n\r\nconst reduceChildRoutes = (props) => {\r\n\tconst { router, items, page, depth, userRole, userProjects } = props;\r\n\tif ((!page.roles || page.roles.includes(userRole)) && (!page.projects || _.intersection(page.projects, userProjects).length !== 0)) {\r\n\t\tif (page.children) {\r\n\t\t\tconst open = matchPath(router.location.pathname, {\r\n\t\t\t\tpath: page.href,\r\n\t\t\t\texact: false,\r\n\t\t\t});\r\n\r\n\t\t\titems.push(\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\titems.push(\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\treturn items;\r\n};\r\n\r\nconst NavigationList = (props) => {\r\n\tconst { pages, ...rest } = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{pages.reduce(\r\n\t\t\t\t(items, page) => reduceChildRoutes({ items, page, ...rest }),\r\n\t\t\t\t[]\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavigationList.propTypes = {\r\n\tdepth: PropTypes.number,\r\n\tpages: PropTypes.array,\r\n};\r\n\r\nconst Navigation = (props) => {\r\n\tconst { title, pages, className, component: Component, userRole, userProjects, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst router = useRouter();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{title && {title}}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nNavigation.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tcomponent: PropTypes.any,\r\n\tpages: PropTypes.array.isRequired,\r\n\ttitle: PropTypes.string,\r\n\tuserRole: PropTypes.string,\r\n\tuserProjects: PropTypes.string\r\n};\r\n\r\nNavigation.defaultProps = {\r\n\tcomponent: 'nav',\r\n};\r\n\r\nexport default Navigation;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useDispatch } from 'react-redux';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tList,\r\n\tListItem,\r\n\tListItemAvatar,\r\n\tListItemText,\r\n} from '@mui/material';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\nimport AnnouncementIcon from '@mui/icons-material/Announcement';\r\nimport WarningIcon from '@mui/icons-material/Warning';\r\nimport ErrorIcon from '@mui/icons-material/Error';\r\nimport CheckIcon from '@mui/icons-material/CheckCircle';\r\n\r\nimport gradients from '../../../../utils/gradients';\r\n\r\nimport { NotificationMarkAsRead } from '../../../../actions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tlistItem: {\r\n\t\tcursor: 'pointer',\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: theme.palette.background.default,\r\n\t\t},\r\n\t},\r\n\tavatarBlue: {\r\n\t\tbackgroundImage: gradients.blue,\r\n\t},\r\n\tavatarGreen: {\r\n\t\tbackgroundImage: gradients.green,\r\n\t},\r\n\tavatarOrange: {\r\n\t\tbackgroundImage: gradients.orange,\r\n\t},\r\n\tavatarRed: {\r\n\t\tbackgroundImage: gradients.red,\r\n\t},\r\n\tarrowForwardIcon: {\r\n\t\tcolor: theme.palette.icon,\r\n\t},\r\n}));\r\n\r\nconst NotificationList = (props) => {\r\n\tconst { notifications, className, ...rest } = props;\r\n\tconst dispatch = useDispatch();\r\n\tconst classes = useStyles();\r\n\r\n\tconst avatars = {\r\n\t\tinfo: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t\twarning: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t\tsuccess: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t\terror: (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t),\r\n\t};\r\n\r\n\tconst handleNotificationClick = (id) => {\r\n\t\tdispatch(NotificationMarkAsRead(id));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{notifications.map((notification, i) => (\r\n\t\t\t\t (!notification.readed ? handleNotificationClick(notification.id) : {})}\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{avatars[notification.icon]}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nNotificationList.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tnotifications: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default NotificationList;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\ttextAlign: 'center',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\timage: {\r\n\t\theight: 240,\r\n\t\tbackgroundImage: 'url(\"/images/undraw_empty_xct9.svg\")',\r\n\t\tbackgroundPositionX: 'right',\r\n\t\tbackgroundPositionY: 'center',\r\n\t\tbackgroundRepeat: 'no-repeat',\r\n\t\tbackgroundSize: 'cover',\r\n\t},\r\n}));\r\n\r\nconst EmptyList = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t
    \r\n\t\t\tThere's nothing here...\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nEmptyList.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default EmptyList;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tPopover,\r\n\tCardHeader,\r\n\tCardActions,\r\n\tDivider,\r\n\tButton,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nimport { NotificationList, EmptyList } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n\troot: {\r\n\t\twidth: 350,\r\n\t\tmaxWidth: '100%',\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[50],\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n}));\r\n\r\nconst NotificationsPopover = (props) => {\r\n\tconst { notifications, anchorEl, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{notifications.length > 0 ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nNotificationsPopover.propTypes = {\r\n\tanchorEl: PropTypes.any,\r\n\tclassName: PropTypes.string,\r\n\tnotifications: PropTypes.array.isRequired,\r\n\tonClose: PropTypes.func.isRequired,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default NotificationsPopover;\r\n","/* eslint-disable no-undef */\r\nimport React, { useEffect } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport useRouter from 'utils/useRouter';\r\n\r\nconst { NODE_ENV } = process.env;\r\nconst GA_MEASUREMENT_ID = process.env.REACT_APP_GA_MEASUREMENT_ID;\r\n\r\nconst Page = (props) => {\r\n\tconst { title, children, ...rest } = props;\r\n\r\n\tconst router = useRouter();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (NODE_ENV !== 'production') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (window.gtag) {\r\n\t\t\twindow.gtag('config', GA_MEASUREMENT_ID, {\r\n\t\t\t\tpage_path: router.location.pathname,\r\n\t\t\t\tpage_name: title,\r\n\t\t\t});\r\n\t\t}\r\n\t}, [title, router]);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\t\t\t{children}\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nPage.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\ttitle: PropTypes.string,\r\n};\r\n\r\nexport default Page;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport ReactPaginate from 'react-paginate';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\t...theme.typography.button,\r\n\t\tlistStyle: 'none',\r\n\t\tuserSelect: 'none',\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tactive: {},\r\n\tactiveLink: {},\r\n\tbreak: {},\r\n\tbreakLink: {},\r\n\tdisabled: {},\r\n\tnext: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tnextLink: {\r\n\t\tpadding: '6px 16px',\r\n\t\toutline: 'none',\r\n\t\tcursor: 'pointer',\r\n\t\tborderRadius: 4,\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t},\r\n\t},\r\n\tpage: {},\r\n\tpageLink: {\r\n\t\tcolor: theme.palette.text.secondary,\r\n\t\tpadding: theme.spacing(1),\r\n\t\toutline: 'none',\r\n\t\tcursor: 'pointer',\r\n\t\twidth: 40,\r\n\t\theight: 40,\r\n\t\tborderRadius: '50%',\r\n\t\tdisplay: 'block',\r\n\t\ttextAlign: 'center',\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t\tcolor: theme.palette.text.primary,\r\n\t\t},\r\n\t\t'&$activeLink': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t\tcolor: theme.palette.text.primary,\r\n\t\t},\r\n\t},\r\n\tprevious: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tpreviousLink: {\r\n\t\tpadding: '6px 16px',\r\n\t\toutline: 'none',\r\n\t\tcursor: 'pointer',\r\n\t\tborderRadius: 4,\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.blueGrey[50],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Paginate = (props) => {\r\n\tconst {\r\n\t\tpageCount,\r\n\t\tpageRangeDisplayed,\r\n\t\tonPageChange,\r\n\t\tclassName,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nPaginate.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonPageChange: PropTypes.func.isRequired,\r\n\tpageCount: PropTypes.number.isRequired,\r\n\tpageRangeDisplayed: PropTypes.number.isRequired,\r\n};\r\n\r\nPaginate.defaultProps = {\r\n\t// eslint-disable-next-line react/default-props-match-prop-types\r\n\tonPageChange: () => {},\r\n\t// eslint-disable-next-line react/default-props-match-prop-types\r\n\tpageRangeDisplayed: 5,\r\n};\r\n\r\nexport default Paginate;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Avatar, Link, Typography } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tbubble: {\r\n\t\tflexGrow: 1,\r\n\t\tpadding: theme.spacing(1),\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t\tbackgroundColor: theme.palette.background.default,\r\n\t},\r\n\theader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\ttime: {\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tmessage: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst CommentBubble = (props) => {\r\n\tconst { comment, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{comment.author.name}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{moment(comment.created_at).fromNow()}\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{comment.message}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nCommentBubble.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tcomment: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default CommentBubble;\r\n","import React, { useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tDivider,\r\n\tIconButton,\r\n\tInput,\r\n\tPaper,\r\n\tTooltip,\r\n} from '@mui/material';\r\nimport SendIcon from '@mui/icons-material/Send';\r\nimport AddPhotoIcon from '@mui/icons-material/AddPhotoAlternate';\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tpaper: {\r\n\t\tflexGrow: 1,\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tpadding: theme.spacing(0.5, 2),\r\n\t},\r\n\tinput: {\r\n\t\twidth: '100%',\r\n\t},\r\n\tdivider: {\r\n\t\twidth: 1,\r\n\t\theight: 24,\r\n\t},\r\n\tfileInput: {\r\n\t\tdisplay: 'none',\r\n\t},\r\n}));\r\n\r\nconst CommentForm = (props) => {\r\n\tconst { className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst fileInputRef = useRef(null);\r\n\r\n\tconst [value, setValue] = useState('');\r\n\r\n\tconst sender = {\r\n\t\tavatar: '/images/avatars/avatar_11.png',\r\n\t};\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tsetValue(event.target.value);\r\n\t};\r\n\r\n\tconst handleAttach = () => {\r\n\t\tfileInputRef.current.click();\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t{' '}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t 0 ? 'primary' : 'default'} size=\"large\">\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nCommentForm.propTypes = {\r\n\tclassName: PropTypes.string,\r\n};\r\n\r\nexport default CommentForm;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tTypography,\r\n\tButton,\r\n\tIconButton,\r\n\tTooltip,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport FavoriteIcon from '@mui/icons-material/Favorite';\r\nimport FavoriteBorderIcon from '@mui/icons-material/FavoriteBorder';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tlikeButton: {},\r\n\tlikedButton: {\r\n\t\tcolor: colors.red[600],\r\n\t},\r\n\tshareButton: {\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tshareIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst Reactions = (props) => {\r\n\tconst { post, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [liked, setLiked] = useState(post.liked);\r\n\tconst [likes, setLikes] = useState(post.likes);\r\n\r\n\tconst handleLike = () => {\r\n\t\tsetLiked(true);\r\n\t\tsetLikes((l) => l + 1);\r\n\t};\r\n\r\n\tconst handleUnlike = () => {\r\n\t\tsetLiked(false);\r\n\t\tsetLikes((l) => l - 1);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{liked ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t\r\n\t\t\t\t{likes}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tShare\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nReactions.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tpost: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Reactions;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tCard,\r\n\tCardHeader,\r\n\tCardContent,\r\n\tCardActionArea,\r\n\tCardMedia,\r\n\tAvatar,\r\n\tLink,\r\n\tTypography,\r\n\tDivider,\r\n} from '@mui/material';\r\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\r\n\r\nimport { Reactions, CommentBubble, CommentForm } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\tsubheader: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\taccessTimeIcon: {\r\n\t\tcolor: theme.palette.text.secondary,\r\n\t\tfontSize: '14px',\r\n\t\theight: 14,\r\n\t\twidth: 14,\r\n\t\tmarginRight: 6,\r\n\t},\r\n\tcontent: {\r\n\t\tpaddingTop: 0,\r\n\t},\r\n\tmessage: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tmediaArea: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\tmedia: {\r\n\t\theight: 400,\r\n\t\tbackgroundPosition: 'initial',\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst PostCard = (props) => {\r\n\tconst { post, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tdisableTypography\r\n\t\t\t\tsubheader={(\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{moment(post.created_at).fromNow()}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\ttitle={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{post.author.name}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{post.message}\r\n\t\t\t\t\r\n\t\t\t\t{post.media && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{post.comments && (\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{post.comments.map((comment) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nPostCard.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tpost: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default PostCard;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tDialog,\r\n\tDivider,\r\n\tGrid,\r\n\tLink,\r\n\tPaper,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\twidth: 960,\r\n\t},\r\n\theader: {\r\n\t\tmaxWidth: 600,\r\n\t\tmargin: '0 auto',\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcontent: {\r\n\t\tmarginTop: theme.spacing(5),\r\n\t\tpadding: theme.spacing(2),\r\n\t\tmaxWidth: 720,\r\n\t\tmargin: '0 auto',\r\n\t},\r\n\tproduct: {\r\n\t\toverflow: 'unset',\r\n\t\tposition: 'relative',\r\n\t\tpadding: theme.spacing(5, 3),\r\n\t\tcursor: 'pointer',\r\n\t\ttransition: theme.transitions.create('transform', {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t\t'&:hover': {\r\n\t\t\ttransform: 'scale(1.1)',\r\n\t\t},\r\n\t},\r\n\timage: {\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t\tposition: 'absolute',\r\n\t\ttop: -24,\r\n\t\tleft: theme.spacing(3),\r\n\t\theight: 48,\r\n\t\twidth: 48,\r\n\t\tfontSize: 24,\r\n\t},\r\n\tdivider: {\r\n\t\tmargin: theme.spacing(2, 0),\r\n\t},\r\n\toptions: {\r\n\t\tlineHeight: '26px',\r\n\t},\r\n\trecommended: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t\t'& *': {\r\n\t\t\tcolor: `${theme.palette.white} !important`,\r\n\t\t},\r\n\t},\r\n\tcontact: {\r\n\t\tmargin: theme.spacing(3, 0),\r\n\t},\r\n\tactions: {\r\n\t\tbackgroundColor: colors.grey[100],\r\n\t\tpadding: theme.spacing(2),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n\tstartButton: {\r\n\t\tcolor: theme.palette.white,\r\n\t\tbackgroundColor: colors.green[600],\r\n\t\t'&:hover': {\r\n\t\t\tbackgroundColor: colors.green[900],\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst PricingModal = (props) => {\r\n\tconst { open, onClose, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tStart with Freelancer today. Boost up your services!\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWelcome to the first platform created for freelancers\r\n\t\t\t\t\t\tand agencies for showcasing and finding the best clients\r\n\t\t\t\t\t\tin the market. 30% of our income goes into Whale Charity\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tFreelancer\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$5\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t/month\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tMax 1 user\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t20\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tproposals/month\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t10\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\ttemplates\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tAnalytics\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tdashboard\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tEmail\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\talerts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAgency\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$29\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t/month\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tMax 3 user\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t20\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tproposals/month\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t10\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\ttemplates\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tAnalytics\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tdashboard\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tEmail\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\talerts\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tEnterprise\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t$259\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t/month\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tUnlimited\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAll from above\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tUnlimited\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t24/7 support\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tPersonalised\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tPage\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\tAdvertise\r\n\t\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\t\tyour profile\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tHave a larger team?\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tContact us\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\tfor information about more enterprise options.\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tStart with freelancer\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nPricingModal.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\topen: PropTypes.bool,\r\n};\r\n\r\nexport default PricingModal;\r\n","import React, { useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tAvatar,\r\n\tButton,\r\n\tCard,\r\n\tCardContent,\r\n\tCardHeader,\r\n\tDivider,\r\n\tGrid,\r\n\tIconButton,\r\n\tLink,\r\n\tTooltip,\r\n\tTypography,\r\n\tcolors,\r\n} from '@mui/material';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\nimport FavoriteIcon from '@mui/icons-material/Favorite';\r\nimport FavoriteBorderIcon from '@mui/icons-material/FavoriteBorder';\r\n\r\nimport getInitials from 'utils/getInitials';\r\nimport { Label } from '..';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\theader: {\r\n\t\tpaddingBottom: 0,\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: 0,\r\n\t\t'&:last-child': {\r\n\t\t\tpaddingBottom: 0,\r\n\t\t},\r\n\t},\r\n\tdescription: {\r\n\t\tpadding: theme.spacing(2, 3, 1, 3),\r\n\t},\r\n\ttags: {\r\n\t\tpadding: theme.spacing(0, 3, 1, 3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tlearnMoreButton: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n\tlikedButton: {\r\n\t\tcolor: colors.red[600],\r\n\t},\r\n\tshareButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\tdetails: {\r\n\t\tpadding: theme.spacing(1, 3),\r\n\t},\r\n}));\r\n\r\nconst ProjectCard = (props) => {\r\n\tconst { project, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [liked, setLiked] = useState(project.liked);\r\n\r\n\tconst handleLike = () => {\r\n\t\tsetLiked(true);\r\n\t};\r\n\r\n\tconst handleUnlike = () => {\r\n\t\tsetLiked(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\t\t{getInitials(project.author.name)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\tclassName={classes.header}\r\n\t\t\t\tdisableTypography\r\n\t\t\t\tsubheader={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tby\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{project.author.name}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t| Updated:\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t{moment(project.updated_at).fromNow()}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\ttitle={(\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{project.title}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWe're looking for experienced Developers and Product\r\n\t\t\t\t\t\tDesigners to come aboard and help us build succesful\r\n\t\t\t\t\t\tbusinesses through softare.\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{project.tags.map((tag) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t\t{project.price}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tPer Project\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{project.location}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tLocation\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{project.type}\r\n\t\t\t\t\t\t\tType\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{liked ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tLearn more\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nProjectCard.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tproject: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default ProjectCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\nimport StarIcon from '@mui/icons-material/Star';\r\nimport StarBorderIcon from '@mui/icons-material/StarBorder';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'inline-flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tstarIcon: {\r\n\t\tfontSize: 18,\r\n\t\theight: 18,\r\n\t\twidth: 18,\r\n\t},\r\n\tstarFilledIcon: {\r\n\t\tcolor: colors.amber[400],\r\n\t},\r\n\tstarBorderIcon: {\r\n\t\tcolor: theme.palette.icon,\r\n\t},\r\n}));\r\n\r\nconst ReviewStars = (props) => {\r\n\tconst { value, starCount, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst starNodes = [];\r\n\r\n\tfor (let i = 1; i <= starCount; i++) {\r\n\t\tconst key = uuid();\r\n\r\n\t\tconst starNode = i <= value ? (\r\n\t\t\t\r\n\t\t) : (\r\n\t\t\t\r\n\t\t);\r\n\r\n\t\tstarNodes.push(starNode);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{starNodes}\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nReviewStars.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tstarCount: PropTypes.number,\r\n\tvalue: PropTypes.number,\r\n};\r\n\r\nReviewStars.defaultProps = {\r\n\tvalue: 0,\r\n\tstarCount: 5,\r\n};\r\n\r\nexport default ReviewStars;\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tooltip, Button } from '@mui/material';\r\nimport { alpha } from '@mui/material/styles';\r\nimport CodeIcon from '@mui/icons-material/Code';\r\nimport FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';\r\nimport FormatListNumberedIcon from '@mui/icons-material/FormatListNumbered';\r\nimport FormatItalicIcon from '@mui/icons-material/FormatItalic';\r\nimport FormatBoldIcon from '@mui/icons-material/FormatBold';\r\nimport FormatUnderlined from '@mui/icons-material/FormatUnderlined';\r\nimport FormatQuoteIcon from '@mui/icons-material/FormatQuote';\r\nimport FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft';\r\nimport FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter';\r\nimport FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight';\r\nimport FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify';\r\n\r\nconst useStyles1 = makeStyles((theme) => ({\r\n\troot: {},\r\n\tinner: {\r\n\t\tpadding: theme.spacing(1),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n}));\r\n\r\nconst useStyles2 = makeStyles((theme) => ({\r\n\tbutton: {\r\n\t\tpadding: 0,\r\n\t\twidth: 32,\r\n\t\theight: 32,\r\n\t\tminWidth: 32,\r\n\t\tcolor: theme.palette.icon,\r\n\t\t'& + &': {\r\n\t\t\tmarginLeft: theme.spacing(1),\r\n\t\t},\r\n\t},\r\n\tactiveButton: {\r\n\t\tbackgroundColor: alpha(theme.palette.primary.main, 0.1),\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n}));\r\n\r\nconst BLOCK_TYPES = [\r\n\t{\r\n\t\tblockType: 'header-one',\r\n\t\ttooltip: 'Heading 1',\r\n\t\ttext: 'H1',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-two',\r\n\t\ttooltip: 'Heading 2',\r\n\t\ttext: 'H2',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-three',\r\n\t\ttooltip: 'Heading 3',\r\n\t\ttext: 'H3',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-four',\r\n\t\ttooltip: 'Heading 4',\r\n\t\ttext: 'H4',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-five',\r\n\t\ttooltip: 'Heading 5',\r\n\t\ttext: 'H5',\r\n\t},\r\n\t{\r\n\t\tblockType: 'header-six',\r\n\t\ttooltip: 'Heading 6',\r\n\t\ttext: 'H6',\r\n\t},\r\n\t{\r\n\t\tblockType: 'blockquote',\r\n\t\ttooltip: 'Blockquote',\r\n\t\ticon: FormatQuoteIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'unordered-list-item',\r\n\t\ttooltip: 'Unordered list',\r\n\t\ticon: FormatListBulletedIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'ordered-list-item',\r\n\t\ttooltip: 'Ordered list',\r\n\t\ticon: FormatListNumberedIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'code-block',\r\n\t\ttooltip: 'Code Block',\r\n\t\ticon: CodeIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'left',\r\n\t\ttooltip: 'Align left',\r\n\t\ticon: FormatAlignLeftIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'center',\r\n\t\ttooltip: 'Align center',\r\n\t\ticon: FormatAlignCenterIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'right',\r\n\t\ttooltip: 'Align right',\r\n\t\ticon: FormatAlignRightIcon,\r\n\t},\r\n\t{\r\n\t\tblockType: 'justify',\r\n\t\ttooltip: 'Justify',\r\n\t\ticon: FormatAlignJustifyIcon,\r\n\t},\r\n];\r\n\r\nconst INLINE_STYLES = [\r\n\t{\r\n\t\tinlineStyle: 'BOLD',\r\n\t\ttooltip: 'Bold',\r\n\t\ticon: FormatBoldIcon,\r\n\t},\r\n\t{\r\n\t\tinlineStyle: 'ITALIC',\r\n\t\ttooltip: 'Italic',\r\n\t\ticon: FormatItalicIcon,\r\n\t},\r\n\t{\r\n\t\tinlineStyle: 'UNDERLINE',\r\n\t\ttooltip: 'Underline',\r\n\t\ticon: FormatUnderlined,\r\n\t},\r\n\t{\r\n\t\tinlineStyle: 'CODE',\r\n\t\ttooltip: 'Monospace',\r\n\t\ticon: CodeIcon,\r\n\t},\r\n];\r\n\r\nconst ButtonBase = (props) => {\r\n\tconst { active, tooltip, children, ...rest } = props;\r\n\r\n\tconst classes = useStyles2();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nButtonBase.propTypes = {\r\n\tactive: PropTypes.bool,\r\n\tchildren: PropTypes.node,\r\n\tonClick: PropTypes.func,\r\n\ttooltip: PropTypes.string,\r\n};\r\n\r\nconst BlockTypeButtons = (props) => {\r\n\tconst { editorState, onToggle } = props;\r\n\r\n\tconst handleClick = (event, blockType) => {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tonToggle('blockType', blockType);\r\n\t};\r\n\r\n\tconst selection = editorState.getSelection();\r\n\tconst blockType = editorState\r\n\t\t.getCurrentContent()\r\n\t\t.getBlockForKey(selection.getStartKey())\r\n\t\t.getType();\r\n\tconst blockData = editorState\r\n\t\t.getCurrentContent()\r\n\t\t.getBlockForKey(selection.getStartKey())\r\n\t\t.getData();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{BLOCK_TYPES.map((button) => {\r\n\t\t\t\tlet active = false;\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t['left', 'center', 'right', 'justify'].includes(\r\n\t\t\t\t\t\tbutton.blockType\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\tactive = blockData.get('text-align') === button.blockType;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tactive = button.blockType === blockType;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t handleClick(event, button.blockType)}\r\n\t\t\t\t\t\ttooltip={button.tooltip}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{button.icon ? : button.text}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nBlockTypeButtons.propTypes = {\r\n\teditorState: PropTypes.any.isRequired,\r\n\tonToggle: PropTypes.func,\r\n};\r\n\r\nconst InlineStyleButtons = (props) => {\r\n\tconst { editorState, onToggle } = props;\r\n\r\n\tconst handleClick = (event, inlineStyle) => {\r\n\t\tevent.preventDefault();\r\n\t\tonToggle('inlineStyle', inlineStyle);\r\n\t};\r\n\r\n\tconst currentStyle = editorState.getCurrentInlineStyle();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{INLINE_STYLES.map((button) => (\r\n\t\t\t\t handleClick(event, button.inlineStyle)}\r\n\t\t\t\t\ttooltip={button.tooltip}\r\n\t\t\t\t>\r\n\t\t\t\t\t{button.icon ? : button.text}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nInlineStyleButtons.propTypes = {\r\n\teditorState: PropTypes.any.isRequired,\r\n\tonToggle: PropTypes.func,\r\n};\r\n\r\nconst EditorToolbar = (props) => {\r\n\tconst { editorState, onToggle, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles1();\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nEditorToolbar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\teditorState: PropTypes.any.isRequired,\r\n\tonToggle: PropTypes.func,\r\n};\r\n\r\nexport default EditorToolbar;\r\n","import { Map } from 'immutable';\r\nimport { EditorState, DefaultDraftBlockRenderMap, Modifier } from 'draft-js';\r\n\r\nexport function setBlockData(editorState, data) {\r\n\tconst newContentState = Modifier.setBlockData(\r\n\t\teditorState.getCurrentContent(),\r\n\t\teditorState.getSelection(),\r\n\t\tdata\r\n\t);\r\n\r\n\treturn EditorState.push(editorState, newContentState, 'change-block-data');\r\n}\r\n\r\nconst newBlockRenderMap = Map({\r\n\tunstyled: {\r\n\t\telement: 'p',\r\n\t},\r\n\tparagraph: {\r\n\t\telement: 'p',\r\n\t},\r\n});\r\n\r\n// TODO:\r\n// 1. DraftJS uses 'div' tags inside every block.\r\n// When we use 'p' tag for paragraphs, we get a warning because \"div\" tag cannot be inside a \"p\" tag.\r\n\r\nexport const blockRenderMap = DefaultDraftBlockRenderMap.merge(\r\n\tnewBlockRenderMap\r\n);\r\n","import { useEffect } from 'react';\r\n\r\nimport useRouter from 'utils/useRouter';\r\n\r\nconst ScrollReset = () => {\r\n\tconst router = useRouter();\r\n\r\n\tuseEffect(() => {\r\n\t\twindow.scrollTo(0, 0);\r\n\t}, [router.location.pathname]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default ScrollReset;\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport {\r\n\tEditor,\r\n\tEditorState,\r\n\tRichUtils,\r\n\tModifier,\r\n\tgetDefaultKeyBinding,\r\n} from 'draft-js';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, Divider } from '@mui/material';\r\n\r\nimport { EditorToolbar } from './components';\r\nimport { blockRenderMap } from './utils';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n\teditorContainer: {\r\n\t\tpadding: theme.spacing(2),\r\n\t\tminHeight: 400,\r\n\t\t'& .public-DraftEditorPlaceholder-root': {\r\n\t\t\t...theme.typography.body2,\r\n\t\t},\r\n\t\t'& .public-DraftEditorPlaceholder-hasFocus': {\r\n\t\t\tdisplay: 'none',\r\n\t\t},\r\n\t\t'& .public-DraftEditor-content': {\r\n\t\t\t'& p': {\r\n\t\t\t\t...theme.typography.body1,\r\n\t\t\t},\r\n\t\t\t'& h1': {\r\n\t\t\t\t...theme.typography.h1,\r\n\t\t\t},\r\n\t\t\t'& h2': {\r\n\t\t\t\t...theme.typography.h2,\r\n\t\t\t},\r\n\t\t\t'& h3': {\r\n\t\t\t\t...theme.typography.h3,\r\n\t\t\t},\r\n\t\t\t'& h4': {\r\n\t\t\t\t...theme.typography.h4,\r\n\t\t\t},\r\n\t\t\t'& h5': {\r\n\t\t\t\t...theme.typography.h5,\r\n\t\t\t},\r\n\t\t\t'& h6': {\r\n\t\t\t\t...theme.typography.h6,\r\n\t\t\t},\r\n\t\t\t'& blockquote': {\r\n\t\t\t\t...theme.typography.subtitle1,\r\n\t\t\t},\r\n\t\t\t'& ul': {\r\n\t\t\t\t...theme.typography.body1,\r\n\t\t\t\tmarginLeft: theme.spacing(4),\r\n\t\t\t},\r\n\t\t\t'& ol': {\r\n\t\t\t\t...theme.typography.body1,\r\n\t\t\t\tmarginLeft: theme.spacing(4),\r\n\t\t\t},\r\n\t\t\t'& pre': {\r\n\t\t\t\tbackgroundColor: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\t\tfontFamily: '\"Inconsolata\", \"Menlo\", \"Consolas\", monospace',\r\n\t\t\t\tfontSize: 16,\r\n\t\t\t\tpadding: 2,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\ttextAlignLeft: {\r\n\t\ttextAlign: 'left',\r\n\t},\r\n\ttextAlignCenter: {\r\n\t\ttextAlign: 'center',\r\n\t},\r\n\ttextAlignRight: {\r\n\t\ttextAlign: 'right',\r\n\t},\r\n\ttextAlignJustify: {\r\n\t\ttextAlign: 'justify',\r\n\t},\r\n}));\r\n\r\nconst capitalize = (string) => string.charAt(0).toUpperCase() + string.slice(1);\r\n\r\nconst RichEditor = (props) => {\r\n\tconst { placeholder, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst editorRef = useRef(null);\r\n\r\n\tconst [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n\r\n\tconst handleContainerClick = () => {\r\n\t\teditorRef.current.focus();\r\n\t};\r\n\r\n\tconst handleToolbarToggle = (type, value) => {\r\n\t\tif (type === 'blockType') {\r\n\t\t\tif (['left', 'center', 'right', 'justify'].includes(value)) {\r\n\t\t\t\tconst newContentState = Modifier.setBlockData(\r\n\t\t\t\t\teditorState.getCurrentContent(),\r\n\t\t\t\t\teditorState.getSelection(),\r\n\t\t\t\t\t{ 'text-align': value }\r\n\t\t\t\t);\r\n\r\n\t\t\t\tconst newEditorState = EditorState.push(\r\n\t\t\t\t\teditorState,\r\n\t\t\t\t\tnewContentState,\r\n\t\t\t\t\t'change-block-data'\r\n\t\t\t\t);\r\n\r\n\t\t\t\tsetEditorState(newEditorState);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tsetEditorState(RichUtils.toggleBlockType(editorState, value));\r\n\t\t} else {\r\n\t\t\tsetEditorState(RichUtils.toggleInlineStyle(editorState, value));\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleEditorChange = (es) => {\r\n\t\tsetEditorState(es);\r\n\t};\r\n\r\n\tconst handleKeyCommand = (command, es) => {\r\n\t\tconst newState = RichUtils.handleKeyCommand(es, command);\r\n\r\n\t\tif (newState) {\r\n\t\t\thandleEditorChange(newState);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t};\r\n\r\n\tconst mapKeyToEditorCommand = (event) => {\r\n\t\tif (event.keyCode === 9) {\r\n\t\t\tconst newEditorState = RichUtils.onTab(event, editorState, 4);\r\n\r\n\t\t\tif (newEditorState !== editorState) {\r\n\t\t\t\thandleEditorChange(newEditorState);\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// eslint-disable-next-line consistent-return\r\n\t\treturn getDefaultKeyBinding(event);\r\n\t};\r\n\r\n\tfunction blockStyleFn(contentBlock) {\r\n\t\tconst textAlign = contentBlock.getData().get('text-align');\r\n\r\n\t\tif (textAlign) {\r\n\t\t\t// eslint-disable-next-line no-shadow\r\n\t\t\tconst className = `textAlign${capitalize(textAlign)}`;\r\n\r\n\t\t\treturn classes[className];\r\n\t\t}\r\n\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nRichEditor.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tplaceholder: PropTypes.string\r\n};\r\n\r\nexport default RichEditor;\r\n","/* eslint-disable jsx-a11y/control-has-associated-label */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tChip,\r\n\tCollapse,\r\n\tDivider,\r\n\tDrawer,\r\n\tFormControlLabel,\r\n\tRadio,\r\n\tRadioGroup,\r\n\tSlider,\r\n\tTextField,\r\n\tTypography,\r\n\tToggleButton, ToggleButtonGroup } from '@mui/material';\r\n\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DeleteIcon from '@mui/icons-material/DeleteOutlined';\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tdrawer: {\r\n\t\twidth: 420,\r\n\t\tmaxWidth: '100%',\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(2, 1),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tbuttonIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 3),\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tcontentSection: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tcontentSectionHeader: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tcursor: 'pointer',\r\n\t},\r\n\tcontentSectionContent: {},\r\n\tformGroup: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tfieldGroup: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tfield: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: 0,\r\n\t},\r\n\tflexGrow: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\taddButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\ttags: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tminAmount: {\r\n\t\tmarginRight: theme.spacing(3),\r\n\t},\r\n\tmaxAmount: {\r\n\t\tmarginLeft: theme.spacing(3),\r\n\t},\r\n\tradioGroup: {},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginTop: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst Filter = (props) => {\r\n\tconst { open, onClose, onFilter, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst initialValues = {\r\n\t\tpaymentStatus: '',\r\n\t\ttag: '',\r\n\t\ttags: ['Full-Time'],\r\n\t\tamount: [1, 7],\r\n\t\tprojectStatus: 'ended',\r\n\t\tcustomerName: '',\r\n\t\tcustomerType: 'freelancer',\r\n\t\tcustomerEmail: '',\r\n\t\tcustomerPhone: '',\r\n\t\tcustomerAge: '',\r\n\t};\r\n\r\n\tconst [expandProject, setExpandProject] = useState(true);\r\n\tconst [expandCustomer, setExpandCustomer] = useState(false);\r\n\tconst [values, setValues] = useState({ ...initialValues });\r\n\r\n\tconst handleClear = () => {\r\n\t\tsetValues({ ...initialValues });\r\n\t};\r\n\r\n\tconst handleFieldChange = (event, field, value) => {\r\n\t\tsetValues((items) => ({\r\n\t\t\t...items,\r\n\t\t\t[field]: value,\r\n\t\t}));\r\n\t};\r\n\r\n\tconst handleTagAdd = () => {\r\n\t\tsetValues((items) => {\r\n\t\t\tconst newValues = { ...items };\r\n\r\n\t\t\tif (newValues.tag && !newValues.tags.includes(newValues.tag)) {\r\n\t\t\t\tnewValues.tags = [...newValues.tags];\r\n\t\t\t\tnewValues.tags.push(newValues.tag);\r\n\t\t\t}\r\n\r\n\t\t\tnewValues.tag = '';\r\n\r\n\t\t\treturn newValues;\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleTagDelete = (tag) => {\r\n\t\tsetValues((items) => {\r\n\t\t\tconst newValues = { ...items };\r\n\r\n\t\t\tnewValues.tags = newValues.tags.filter((t) => t !== tag);\r\n\r\n\t\t\treturn newValues;\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleToggleProject = () => {\r\n\t\tsetExpandProject((ep) => !ep);\r\n\t};\r\n\r\n\tconst handleToggleCustomer = () => {\r\n\t\tsetExpandCustomer((ec) => !ec);\r\n\t};\r\n\r\n\tconst handleSubmit = (event) => {\r\n\t\tevent.preventDefault();\r\n\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\tonFilter && onFilter(values);\r\n\t};\r\n\r\n\tconst paymentStatusOptions = [\r\n\t\t'Pending',\r\n\t\t'Canceled',\r\n\t\t'Completed',\r\n\t\t'Rejected',\r\n\t];\r\n\tconst customerAgeOption = ['18 - 30', '30 - 45', '50 - 60', '60+'];\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tProject\r\n\t\t\t\t\t\t\t{expandProject ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t'paymentStatus',\r\n\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\tselect\r\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line react/jsx-sort-props\r\n\t\t\t\t\t\t\t\t\t\tSelectProps={{ native: true }}\r\n\t\t\t\t\t\t\t\t\t\tvalue={values.paymentStatus}\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'tag',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.tag}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tAdd\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{values.tags.map((tag) => (\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tkey={tag}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={tag}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonDelete={() => handleTagDelete(tag)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tProject amount\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t\t\t\t\t{values.amount[0]}\r\n\t\t\t\t\t\t\t\t\t\t\tK\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'amount',\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.amount}\r\n\t\t\t\t\t\t\t\t\t\t\tvalueLabelDisplay=\"auto\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t$\r\n\t\t\t\t\t\t\t\t\t\t\t{values.amount[1]}\r\n\t\t\t\t\t\t\t\t\t\t\tK\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tProject status\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'projectStatus',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.projectStatus}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Ended\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"ended\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"On-Going\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"onGoing\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"In Review\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"inReview\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Competed\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"completed\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tCustomer\r\n\t\t\t\t\t\t\t{expandCustomer ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerName',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerName}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t value\r\n\t\t\t\t\t\t\t\t\t\t\t\t&& handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'customerType',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerType}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tProject owner\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tFreelancer\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerEmail',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerEmail}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerPhone',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerPhone}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t handleFieldChange(\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t\t\t\t\t'customerAge',\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.target.value\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\tselect\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line react/jsx-sort-props\r\n\t\t\t\t\t\t\t\t\t\t\tSelectProps={{ native: true }}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={values.customerAge}\r\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tApply filters\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nFilter.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\tonFilter: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default Filter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Paper, Button, Input } from '@mui/material';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tsearch: {\r\n\t\tflexGrow: 1,\r\n\t\theight: 42,\r\n\t\tpadding: theme.spacing(0, 2),\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tsearchIcon: {\r\n\t\tmarginRight: theme.spacing(2),\r\n\t\tcolor: theme.palette.icon,\r\n\t},\r\n\tsearchInput: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tsearchButton: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n}));\r\n\r\nconst Search = (props) => {\r\n\tconst { onSearch, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tSearch\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nSearch.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonSearch: PropTypes.func,\r\n};\r\n\r\nexport default Search;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Button } from '@mui/material';\r\nimport FilterListIcon from '@mui/icons-material/FilterList';\r\n\r\nimport { Search, Filter } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tflexWrap: 'wrap',\r\n\t},\r\n\tsearch: {\r\n\t\tflexGrow: 1,\r\n\t\tmaxWidth: 480,\r\n\t\tflexBasis: 480,\r\n\t},\r\n\tfilterButton: {\r\n\t\tmarginLeft: 'auto',\r\n\t},\r\n\tfilterIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst SearchBar = (props) => {\r\n\tconst { onFilter, onSearch, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst [openFilter, setOpenFilter] = useState(false);\r\n\r\n\tconst handleFilterOpen = () => {\r\n\t\tsetOpenFilter(true);\r\n\t};\r\n\r\n\tconst handleFilterClose = () => {\r\n\t\tsetOpenFilter(false);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{' '}\r\n\t\t\t\t\tShow\r\n\t\t\t\t\tfilters\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nSearchBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonFilter: PropTypes.func,\r\n\tonSearch: PropTypes.func,\r\n};\r\n\r\nexport default SearchBar;\r\n","import React, { memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport uuid from 'uuid/v1';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Tooltip, Avatar } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\tpaddingLeft: 20,\r\n\t},\r\n\tavatar: {\r\n\t\tborder: `3px solid ${theme.palette.white}`,\r\n\t\tmarginLeft: -20,\r\n\t\t'&:hover': {\r\n\t\t\tzIndex: 2,\r\n\t\t},\r\n\t},\r\n\tmore: {\r\n\t\tbackgroundColor: theme.palette.error.main,\r\n\t\tcolor: theme.palette.error.contrastText,\r\n\t\tfontSize: 14,\r\n\t\tfontWeight: theme.typography.fontWeightMedium,\r\n\t},\r\n}));\r\n\r\nconst StackAvatars = (props) => {\r\n\tconst { avatars, limit, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst avatarNodes = avatars.slice(0, limit).map((item) => (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t));\r\n\r\n\tif (avatars.length > limit) {\r\n\t\tavatarNodes.push(\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t+\r\n\t\t\t\t\t{avatars.length - limit}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{avatarNodes}\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nStackAvatars.propTypes = {\r\n\tavatars: PropTypes.array.isRequired,\r\n\tclassName: PropTypes.string,\r\n\tlimit: PropTypes.number.isRequired,\r\n};\r\n\r\nStackAvatars.defaultProps = {\r\n\t// eslint-disable-next-line react/default-props-match-prop-types\r\n\tlimit: 3,\r\n};\r\n\r\nexport default memo(StackAvatars);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { colors } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'inline-block',\r\n\t\tborderRadius: '50%',\r\n\t\tflexGrow: 0,\r\n\t\tflexShrink: 0,\r\n\t},\r\n\tsmall: {\r\n\t\theight: theme.spacing(1),\r\n\t\twidth: theme.spacing(1),\r\n\t},\r\n\tmedium: {\r\n\t\theight: theme.spacing(2),\r\n\t\twidth: theme.spacing(2),\r\n\t},\r\n\tlarge: {\r\n\t\theight: theme.spacing(3),\r\n\t\twidth: theme.spacing(3),\r\n\t},\r\n\tdefault: {\r\n\t\tbackgroundColor: colors.grey[50],\r\n\t},\r\n\tprimary: {\r\n\t\tbackgroundColor: theme.palette.primary.main,\r\n\t},\r\n\tinfo: {\r\n\t\tbackgroundColor: colors.lightBlue[600],\r\n\t},\r\n\twarning: {\r\n\t\tbackgroundColor: colors.orange[900],\r\n\t},\r\n\terror: {\r\n\t\tbackgroundColor: theme.palette.error.main,\r\n\t},\r\n\tsuccess: {\r\n\t\tbackgroundColor: colors.green[600],\r\n\t},\r\n}));\r\n\r\nconst StatusBullet = (props) => {\r\n\tconst { className, size, color, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst rootClassName = clsx(\r\n\t\t{\r\n\t\t\t[classes.root]: true,\r\n\t\t\t[classes[size]]: size,\r\n\t\t\t[classes[color]]: color,\r\n\t\t},\r\n\t\tclassName\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nStatusBullet.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tcolor: PropTypes.oneOf([\r\n\t\t'default',\r\n\t\t'primary',\r\n\t\t'info',\r\n\t\t'success',\r\n\t\t'warning',\r\n\t\t'error',\r\n\t]),\r\n\tsize: PropTypes.oneOf(['small', 'medium', 'large']),\r\n};\r\n\r\nStatusBullet.defaultProps = {\r\n\tsize: 'medium',\r\n\tcolor: 'default',\r\n};\r\n\r\nexport default StatusBullet;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Drawer, Grid, Typography, Button, Hidden } from '@mui/material';\r\nimport CheckIcon from '@mui/icons-material/Check';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DeleteIcon from '@mui/icons-material/DeleteOutline';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n\tactions: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexWrap: 'wrap',\r\n\t\t'& > * + *': {\r\n\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n\tbuttonIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n}));\r\n\r\nconst TableEditBar = (props) => {\r\n\tconst {\r\n\t\tselected,\r\n\t\tclassName,\r\n\t\tonMarkPaid,\r\n\t\tonMarkUnpaid,\r\n\t\tonDelete,\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst classes = useStyles();\r\n\tconst open = selected.length > 0;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{selected.length}\r\n\t\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t\tselected\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nTableEditBar.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonDelete: PropTypes.func,\r\n\tonMarkPaid: PropTypes.func,\r\n\tonMarkUnpaid: PropTypes.func,\r\n\tselected: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default TableEditBar;\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Backdrop, CircularProgress } from '@mui/material';\r\nimport makeStyles from '@mui/styles/makeStyles';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tbackdrop: {\r\n\t\tzIndex: theme.zIndex.drawer + 999999,\r\n\t\tcolor: '#fff',\r\n\t},\r\n}));\r\n\r\nconst Loading = () => {\r\n\tconst classes = useStyles();\r\n\tconst isLoading = useSelector(state => state.session.isLoading);\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Loading;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Grid, Typography } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {},\r\n}));\r\n\r\nconst Header = (props) => {\r\n\tconst { module, view, actions, className, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{module}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{view}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{actions\r\n\t\t\t\t\t&& (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{actions}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tmodule: PropTypes.string,\r\n\tview: PropTypes.string,\r\n\tactions: PropTypes.object\r\n};\r\n\r\nHeader.defaultProps = {};\r\n\r\nexport default Header;\r\n","import React, { useSate } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Paper } from '@mui/material';\r\nimport withStyles from '@mui/styles/withStyles';\r\nimport CalendarPicker from '@mui/lab/CalendarPicker';\r\n\r\nconst styles = theme => ({\r\n\ticonButton: {\r\n\t\tbackgroundColor: '#465A65'\r\n\t}\r\n});\r\n\r\nconst Calendar = ({\r\n\tselectedDate,\r\n\thandleDateChange,\r\n\tclasses,\r\n\t...rest\r\n}) => {\r\n\tconst [selectedStateDate, setSelectedDate] = useSate({\r\n\t\tdate: selectedDate,\r\n\t\tonChange: handleDateChange\r\n\t});\r\n\r\n\tconst handleChange = date => {\r\n\t\tsetSelectedDate(date);\r\n\t\thandleDateChange(date);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nCalendar.propTypes = {\r\n\tselectedDate: PropTypes.any.isRequired,\r\n\thandleDateChange: PropTypes.func.isRequired,\r\n\tclasses: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withStyles(styles)(Calendar);\r\n","import React, { useRef, useEffect } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Button, Card, CardContent, CardActions, Grid, Divider, colors, Paper, Tooltip, IconButton, InputBase } from '@mui/material';\r\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tpadding: '2px 4px',\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\twidth: '100%',\r\n\t\theight: '100%',\r\n\t},\r\n\tinput: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t\tflex: 1,\r\n\t},\r\n\ticonButton: {\r\n\t\tpadding: 10,\r\n\t},\r\n\tdivider: {\r\n\t\theight: 28,\r\n\t\tmargin: 4,\r\n\t},\r\n}));\r\n\r\nconst FilePicker = (props) => {\r\n\tconst { value, onChange, accept } = props;\r\n\tconst classes = useStyles();\r\n\tconst inputFile = useRef(null);\r\n\r\n\tconst _selectFile = () => {\r\n\t\tinputFile.current.click();\r\n\t};\r\n\r\n\tconst _onChange = (event) => {\r\n\t\tonChange(event);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t { inputFile.current = ref; }} onChange={_onChange} style={{ display: 'none' }} />\r\n\t\t\r\n\t);\r\n};\r\n\r\nFilePicker.propTypes = {\r\n\tvalue: PropTypes.string,\r\n\tonChange: PropTypes.func.isRequired,\r\n\taccept: PropTypes.string,\r\n};\r\n\r\nexport default FilePicker;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@mui/styles';\r\n\r\nimport { PowerBIEmbed } from 'powerbi-client-react';\r\nimport { models } from 'powerbi-client';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '80vh',\r\n\t},\r\n}));\r\n\r\nconst PowerBIDashboard = (props) => {\r\n\tconst { url, reportId, accessToken } = props;\r\n\r\n\tconst classes = useStyles();\r\n\tuseEffect(() => {\r\n\t}, [url]);\r\n\r\n\tif (!url) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t { console.log('Report loaded'); }],\r\n\t\t\t\t\t['rendered', () => { console.log('Report rendered'); }],\r\n\t\t\t\t\t['error', (event) => { console.log(event.detail); }]\r\n\t\t\t\t])\r\n\t\t\t} */\r\n\t\t\tcssClassName={classes.root}\r\n\t\t\tgetEmbeddedComponent={(embeddedReport) => {\r\n\t\t\t\twindow.report = embeddedReport;\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nPowerBIDashboard.propTypes = {\r\n\turl: PropTypes.string.isRequired,\r\n\treportId: PropTypes.string.isRequired,\r\n\taccessToken: PropTypes.string.isRequired\r\n};\r\n\r\nexport default PowerBIDashboard;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport {\r\n\tButton,\r\n\tChip,\r\n\tCollapse,\r\n\tDivider,\r\n\tDrawer,\r\n\tFormControlLabel,\r\n\tRadio,\r\n\tRadioGroup,\r\n\tSlider,\r\n\tTextField,\r\n\tTypography,\r\n\tToggleButton, ToggleButtonGroup } from '@mui/material';\r\n\r\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport DeleteIcon from '@mui/icons-material/DeleteOutlined';\r\nimport AddIcon from '@mui/icons-material/Add';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t},\r\n\tdrawer: {\r\n\t\twidth: 420,\r\n\t\tmaxWidth: '100%',\r\n\t},\r\n\theader: {\r\n\t\tpadding: theme.spacing(2, 1),\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t},\r\n\tbuttonIcon: {\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(0, 3),\r\n\t\tflexGrow: 1,\r\n\t},\r\n\tcontentSection: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tcontentSectionHeader: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'space-between',\r\n\t\tcursor: 'pointer',\r\n\t},\r\n\tcontentSectionContent: {},\r\n\tformGroup: {\r\n\t\tpadding: theme.spacing(2, 0),\r\n\t},\r\n\tfieldGroup: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\tfield: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: 0,\r\n\t},\r\n\tflexGrow: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\taddButton: {\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n\ttags: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t},\r\n\tminAmount: {\r\n\t\tmarginRight: theme.spacing(3),\r\n\t},\r\n\tmaxAmount: {\r\n\t\tmarginLeft: theme.spacing(3),\r\n\t},\r\n\tradioGroup: {},\r\n\tactions: {\r\n\t\tpadding: theme.spacing(3),\r\n\t\t'& > * + *': {\r\n\t\t\tmarginTop: theme.spacing(2),\r\n\t\t},\r\n\t},\r\n}));\r\n\r\nconst FiltersDrawer = (props) => {\r\n\tconst { open, onClose, onFilter, className, children, filterDisabled, onClear, ...rest } = props;\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{children}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{onClear && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tApply filters\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nFiltersDrawer.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tonClose: PropTypes.func,\r\n\tonFilter: PropTypes.func,\r\n\topen: PropTypes.bool.isRequired,\r\n\tchildren: PropTypes.object,\r\n\tfilterDisabled: PropTypes.bool,\r\n\tonClear: PropTypes.func\r\n};\r\n\r\nexport default FiltersDrawer;\r\n","import React, { 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\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\t// Fix map drift for Leaflet.sync\r\n\t\tthis.mapContext.map.on('dragend', (e) => {\r\n\t\t\t// console.log('Moved!');\r\n\t\t\t// console.log(this.mapContext.map._container.id);\r\n\t\t\tconst currentZoom = this.mapContext.map.getZoom();\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.mapContext.map.setZoom(currentZoom);\r\n\t\t\t}, 1);\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\tconst 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\tthis.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\tthis.mapContext.overlays.push(this.mapContext.Layer2G);\r\n\r\n\t\tthis.mapContext.layerControl.addOverlay(this.mapContext.Layer2G, '2G', 'Topology');\r\n\r\n\t\tthis.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\tthis.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\tthis.mapContext.overlays.push(this.mapContext.Layer3G);\r\n\r\n\t\tthis.mapContext.layerControl.addOverlay(this.mapContext.Layer3G, '3G', 'Topology');\r\n\r\n\t\tthis.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\tthis.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\tthis.mapContext.overlays.push(this.mapContext.Layer4G);\r\n\r\n\t\tthis.mapContext.layerControl.addOverlay(this.mapContext.Layer4G, '4G', 'Topology');\r\n\r\n\t\tthis.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\t}\r\n\r\n\tmakeDetailsTableTopology(item) {\r\n\t\tconst table = `\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\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\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\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\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\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\t\r\n\t\t\t\t\t\t\t\r\n\r\n
    Latitude: ${item.latitude}
    Longitude: ${item.longitude}
    Cell Name: ${item.cell}
    Technology: ${item.tech}
    Azimuth: ${item.azimuth}
    Code: ${item.code}
    `;\r\n\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\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, { 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 '@mui/material';\r\nimport ZoomInIcon from '@mui/icons-material/ZoomIn';\r\nimport ZoomOutIcon from '@mui/icons-material/ZoomOut';\r\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\nimport AspectRatioIcon from '@mui/icons-material/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\t// eslint-disable-next-line no-shadow\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\t// eslint-disable-next-line react/prop-types\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 '@mui/material';\r\nimport ZoomInIcon from '@mui/icons-material/ZoomIn';\r\nimport ZoomOutIcon from '@mui/icons-material/ZoomOut';\r\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\r\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\r\nimport AspectRatioIcon from '@mui/icons-material/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\t// eslint-disable-next-line no-shadow\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\t// eslint-disable-next-line react/prop-types\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\t// eslint-disable-next-line no-shadow\r\n\tfunction onDocumentLoadSuccess({ numPages }) {\r\n\t\tsetNumPages(numPages);\r\n\t}\r\n\r\n\t// eslint-disable-next-line react/prop-types\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 { colors } from '@mui/material';\r\n\r\nconst buildGradient = (start, end) => `linear-gradient(180deg, ${start} 0%, ${end} 100%)`;\r\n\r\nconst grey = buildGradient(colors.grey[400], colors.grey[600]);\r\nconst blue = buildGradient(colors.blue[700], colors.blue[900]);\r\nconst indigo = buildGradient(colors.indigo[400], colors.indigo[600]);\r\nconst green = buildGradient(colors.green[400], colors.green[600]);\r\nconst orange = buildGradient(colors.orange[400], colors.orange[700]);\r\nconst red = buildGradient(colors.red[500], colors.red[700]);\r\n\r\nexport default {\r\n\tgrey,\r\n\tblue,\r\n\tindigo,\r\n\tgreen,\r\n\torange,\r\n\tred,\r\n};\r\n","const config = {\r\n\tAPI_URL: process.env.REACT_APP_API_URL,\r\n\tTOKEN_KEY: process.env.REACT_APP_TOKEN_KEY,\r\n};\r\n\r\nexport default config;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@mui/styles';\r\nimport { Typography, colors } from '@mui/material';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\troot: {\r\n\t\tdisplay: 'inline-flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'center',\r\n\t\tflexGrow: 0,\r\n\t\tflexShrink: 0,\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t\tlineHeight: '10px',\r\n\t\tfontSize: '10px',\r\n\t\theight: 20,\r\n\t\tminWidth: 20,\r\n\t\twhiteSpace: 'nowrap',\r\n\t\tpadding: theme.spacing(0.5, 1),\r\n\t},\r\n\trounded: {\r\n\t\tborderRadius: 10,\r\n\t\tpadding: theme.spacing(0.5),\r\n\t},\r\n}));\r\n\r\nconst Label = (props) => {\r\n\tconst { className, variant, color, shape, children, style, ...rest } = props;\r\n\r\n\tconst classes = useStyles();\r\n\r\n\tconst rootClassName = clsx(\r\n\t\t{\r\n\t\t\t[classes.root]: true,\r\n\t\t\t[classes.rounded]: shape === 'rounded',\r\n\t\t},\r\n\t\tclassName\r\n\t);\r\n\r\n\tconst finalStyle = { ...style };\r\n\r\n\tif (variant === 'contained') {\r\n\t\tfinalStyle.backgroundColor = color;\r\n\t\tfinalStyle.color = '#FFF';\r\n\t} else {\r\n\t\tfinalStyle.border = `1px solid ${color}`;\r\n\t\tfinalStyle.color = color;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\nLabel.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\tclassName: PropTypes.string,\r\n\tcolor: PropTypes.string,\r\n\tshape: PropTypes.oneOf(['square', 'rounded']),\r\n\tstyle: PropTypes.object,\r\n\tvariant: PropTypes.oneOf(['contained', 'outlined']),\r\n};\r\n\r\nLabel.defaultProps = {\r\n\tstyle: {},\r\n\tcolor: colors.grey[600],\r\n\tvariant: 'contained',\r\n\tshape: 'square',\r\n};\r\n\r\nexport default Label;\r\n","import _ from 'underscore';\r\nimport axios from 'axios';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport { SetLoading, RedirectToError } from 'actions/sessionActions';\r\n\r\nexport const interceptor = (store) => {\r\n\t// Add a request interceptor\r\n\taxios.interceptors.request.use((configuration) => {\r\n\t\t// Do something before request is sent\r\n\t\tif (!configuration.headers.Authorization) {\r\n\t\t\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\t\t\tif (token) {\r\n\t\t\t\t// eslint-disable-next-line no-param-reassign\r\n\t\t\t\tconfiguration.headers.Authorization = `Bearer ${token}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (configuration.hasLoading !== false || configuration.hasLoading === undefined) {\r\n\t\t\tstore.dispatch(SetLoading(true));\r\n\t\t}\r\n\r\n\t\treturn configuration;\r\n\t}, (error) => {\r\n\t\t// Do something with request error\r\n\t\tstore.dispatch(SetLoading(false));\r\n\t\treturn Promise.reject(error);\r\n\t});\r\n\r\n\t// Add a response interceptor\r\n\taxios.interceptors.response.use((response) => {\r\n\t\t// Any status code that lie within the range of 2xx cause this function to trigger\r\n\t\t// Do something with response data\r\n\t\tstore.dispatch(SetLoading(false));\r\n\t\treturn response;\r\n\t}, (error) => {\r\n\t\t// Any status codes that falls outside the range of 2xx cause this function to trigger\r\n\t\t// Do something with response error\r\n\t\tconst { request, response } = error;\r\n\t\tconst statusCode = response ? response.status : request.status;\r\n\r\n\t\tstore.dispatch(SetLoading(false));\r\n\t\tif (statusCode === 401) {\r\n\t\t\tstore.dispatch(RedirectToError('/errors/error-401'));\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\r\n\t\tif (statusCode === 404) {\r\n\t\t\tstore.dispatch(RedirectToError('/errors/error-404'));\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\r\n\t\tif (statusCode < 599 && statusCode >= 500) {\r\n\t\t\tstore.dispatch(RedirectToError('/errors/error-500'));\r\n\t\t\treturn Promise.reject();\r\n\t\t}\r\n\r\n\t\tconst errorObject = {\r\n\t\t\t// eslint-disable-next-line no-nested-ternary\r\n\t\t\tmessage: error.response ? (_.isString(error.response.data) ? error.response.data : 'Something went wrong!') : 'Network error!',\r\n\t\t\t// eslint-disable-next-line no-nested-ternary\r\n\t\t\tvariant: error.response ? (statusCode === 599 ? 'warning' : 'error') : 'error'\r\n\t\t};\r\n\r\n\t\treturn Promise.reject(errorObject);\r\n\t});\r\n};\r\n\r\nexport default axios;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { TextField } from '@mui/material';\r\nimport { DatePicker as MuiDatePicker } from '@mui/lab';\r\n\r\nconst DatePicker = (props) => {\r\n\tconst { value,\r\n\t\tonChange,\r\n\t\t...rest } = props;\r\n\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\treturn (\r\n\t\t setOpen(true)}\r\n\t\t\tonClose={() => setOpen(false)}\r\n\t\t\trenderInput={(p) => (\r\n\t\t\t\t setOpen(true)}\r\n\t\t\t\t\t{...rest}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t\tinputFormat=\"yyyy-MM-DD\"\r\n\t\t\tvalue={value || null}\r\n\t\t\tonChange={onChange}\r\n\t\t\tvariant=\"inline\"\r\n\t\t\tinputVariant=\"outlined\"\r\n\t\t\temptyLabel=\"\"\r\n\t\t\t{...rest}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nDatePicker.propTypes = {\r\n\tvalue: PropTypes.any.isRequired,\r\n\tonChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DatePicker;\r\n","import React, { 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","export { default } from './Label';\r\n","import React from 'react';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst propTypes = {\r\n\tid: PropTypes.string,\r\n\tname: PropTypes.string,\r\n\tcolor: PropTypes.string,\r\n\tchecked: PropTypes.bool,\r\n\tonCheck: PropTypes.func,\r\n\tdisabled: PropTypes.bool,\r\n\tlabel: PropTypes.object,\r\n\tlabelPlacement: PropTypes.string,\r\n\tlabelStyle: PropTypes.object,\r\n};\r\n\r\nconst MaterialCheckbox = ({\r\n\tid,\r\n\tcolor = 'primary',\r\n\tchecked = false,\r\n\tonCheck,\r\n\tdisabled = false,\r\n\tlabel = '',\r\n\tlabelPlacement = 'end',\r\n\tlabelStyle,\r\n\t...rest\r\n}) => (\r\n\t\r\n\t\t)}\r\n\t\tlabel={label}\r\n\t\tlabelPlacement={labelPlacement}\r\n\t\tstyle={labelStyle}\r\n\t/>\r\n);\r\n\r\nMaterialCheckbox.muiName = 'Checkbox';\r\nMaterialCheckbox.displayName = Checkbox.muiName;\r\n\r\nMaterialCheckbox.propTypes = propTypes;\r\n\r\nexport default MaterialCheckbox;\r\n","import React from 'react';\r\n\r\nimport MuiDialogTitle from '@mui/material/DialogTitle';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Typography from '@mui/material/Typography';\r\nimport withStyles from '@mui/styles/withStyles';\r\n\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nconst DialogTitle = withStyles(theme => ({\r\n\troot: {\r\n\t\tborderBottom: `1px solid ${theme.palette.divider}`,\r\n\t\tmargin: 0,\r\n\t\tpadding: theme.spacing(3),\r\n\t},\r\n\tcloseButton: {\r\n\t\tposition: 'absolute',\r\n\t\tright: theme.spacing(1),\r\n\t\ttop: theme.spacing(1),\r\n\t\tcolor: theme.palette.grey[500],\r\n\t},\r\n}))(props => {\r\n\tconst { children, classes, onClose } = props;\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t{onClose ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t) : null}\r\n\t\t\r\n\t);\r\n});\r\n\r\nexport default DialogTitle;\r\n","import withStyles from '@mui/styles/withStyles';\r\nimport MuiDialogContent from '@mui/material/DialogContent';\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n\troot: {\r\n\t\tmargin: 0,\r\n\t\tpadding: theme.spacing(2),\r\n\t},\r\n}))(MuiDialogContent);\r\n\r\nexport default DialogContent;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog, DialogActions, Typography, Button } from '@mui/material';\r\n\r\nimport DialogTitle from './components/DialogTitle.js';\r\nimport DialogContent from './components/DialogContent.js';\r\n\r\nconst propTypes = {\r\n\tonClose: PropTypes.func,\r\n\tonConfirmClicked: PropTypes.func,\r\n\tcancelLabel: PropTypes.string,\r\n\tconfirmLabel: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\topen: PropTypes.bool,\r\n\tmodal: PropTypes.bool,\r\n\tisDisabled: PropTypes.bool,\r\n\tchildren: PropTypes.object,\r\n\thasConfirm: PropTypes.bool,\r\n\tautoScrollBodyContent: PropTypes.bool,\r\n\tdialogProps: PropTypes.object,\r\n\tmaxWidth: PropTypes.string,\r\n\tid: PropTypes.string\r\n};\r\n\r\nconst ModalDialog = (props) => {\r\n\tconst {\r\n\t\tcancelLabel,\r\n\t\tconfirmLabel,\r\n\t\ttitle,\r\n\t\topen,\r\n\t\thasConfirm = true,\r\n\t\tonClose,\r\n\t\tchildren,\r\n\t\tonConfirmClicked,\r\n\t\tisDisabled,\r\n\t\tmodal = false,\r\n\t\tautoScrollBodyContent,\r\n\t\tdialogProps,\r\n\t\tmaxWidth,\r\n\t\tid = 'confirm_dialog'\r\n\t} = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{cancelLabel || 'Cancel'}\r\n\t\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\thasConfirm && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{confirmLabel || 'Apply'}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nModalDialog.propTypes = propTypes;\r\n\r\nexport default ModalDialog;\r\n","import { useContext } from 'react';\r\nimport { __RouterContext } from 'react-router';\r\n\r\nexport default () => useContext(__RouterContext);\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport moment from 'moment';\r\nimport _ from 'underscore';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport jwt from 'jwt-decode';\r\nimport config from 'configuration/configuration.js';\r\n\r\nimport useRouter from 'utils/useRouter';\r\n\r\nimport { RedirectToError } from 'actions';\r\n\r\n// Example of user roles: ['GUEST', 'USER', 'ADMIN'];\r\n\r\nconst AuthGuard = (props) => {\r\n\tconst { roles, children, operators, projects } = props;\r\n\tconst loggedIn = useSelector((state) => state.session.loggedIn);\r\n\tconst link = useSelector((state) => state.session.link);\r\n\tconst user = useSelector((state) => state.session.user);\r\n\tconst router = useRouter();\r\n\tconst dispatch = useDispatch();\r\n\tconst { history } = router;\r\n\tconst token = localStorage.getItem(config.TOKEN_KEY);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (token) {\r\n\t\t\tconst decoded = jwt(token);\r\n\t\t\t// const currentDate = moment().add(1, 'year').toDate().getTime() / 1000;\r\n\t\t\tconst currentDate = new Date().getTime() / 1000;\r\n\t\t\tif (decoded.exp < currentDate) {\r\n\t\t\t\thistory.push('/auth/login');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\thistory.push('/auth/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!loggedIn || !user) {\r\n\t\t\thistory.push('/auth/login');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (link) {\r\n\t\t\tdispatch(RedirectToError());\r\n\t\t\thistory.push(link);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ((roles && !roles.includes(user.role)) || (operators && !operators.includes(user.operator)) || (projects && user.projects && _.intersection(projects, user.projects).length === 0)) {\r\n\t\t\thistory.push('/errors/error-401');\r\n\t\t}\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [router]);\r\n\r\n\treturn <>{children};\r\n};\r\n\r\nAuthGuard.propTypes = {\r\n\tchildren: PropTypes.node,\r\n\troles: PropTypes.array.isRequired,\r\n\toperators: PropTypes.array,\r\n\tprojects: PropTypes.array,\r\n};\r\n\r\nexport default AuthGuard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { createTheme, ThemeProvider, StyledEngineProvider, adaptV4Theme } from '@mui/material/styles';\r\n\r\nconst DataTable = (props) => {\r\n\tconst {\r\n\t\tid,\r\n\t\ttitle = '',\r\n\t\tdata = [],\r\n\t\tcolumns = [],\r\n\t\toptions,\r\n\t\t// pagination = true,\r\n\t\tshowDownload = false, // show download icon button\r\n\t\tshowPrint = false, // show print icon button\r\n\t\tselectableRows = 'none', // multiple, single, none\r\n\t\trowsPerPage = 20, // number of rows displayed by page\r\n\t\tfilterType = 'multiselect', // filter type can be multiselect, texfield, etc.,\r\n\t\ttableBodyMaxHeight = '40em',\r\n\t\t...rest\r\n\t} = props;\r\n\r\n\tconst getMuiTheme = (outerTheme) => {\r\n\t\tconst {\r\n\t\t\ttableBodyCellMaxWidth,\r\n\t\t\tactionColumnWidth\r\n\t\t} = props;\r\n\r\n\t\treturn createTheme(adaptV4Theme({\r\n\t\t\t// ...outerTheme,\r\n\t\t\toverrides: {\r\n\t\t\t\tMUIDataTable: {},\r\n\t\t\t\tMUIDataTableHead: {},\r\n\t\t\t\tMUIDataTableHeadCell: {},\r\n\t\t\t\tMUIDataTableHeadRow: {},\r\n\t\t\t\tMUIDataTableBody: {},\r\n\t\t\t\tMUIDataTableBodyRow: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\t'&:nth-child(odd)': {\r\n\t\t\t\t\t\t\tbackgroundColor: '#f2f2f2'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMuiTableCell: {\r\n\t\t\t\t\thead: {\r\n\t\t\t\t\t\tbackgroundColor: '#1565c0 !important',\r\n\t\t\t\t\t\tfontWeight: 'bold',\r\n\t\t\t\t\t\tcolor: 'white',\r\n\t\t\t\t\t\tpaddingRight: 2,\r\n\t\t\t\t\t\tpaddingTop: 2,\r\n\t\t\t\t\t\tpaddingBottom: 2,\r\n\t\t\t\t\t\tfontSize: 12\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\tpaddingRight: 2,\r\n\t\t\t\t\t\tpaddingTop: 2,\r\n\t\t\t\t\t\tpaddingBottom: 2,\r\n\t\t\t\t\t\tfontSize: 14\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tMUIDataTablePagination: {},\r\n\t\t\t\tMUIDataTableViewCol: {},\r\n\t\t\t\tMUIDataTableSearch: {},\r\n\t\t\t\tMUIDataTableToolbar: {},\r\n\t\t\t\tMUIDataTableFilter: {},\r\n\t\t\t\tMUIDataTableFilterList: {}\r\n\t\t\t}\r\n\t\t}));\r\n\t};\r\n\r\n\tconst _onRowSelection = (currentRowsSelected, allRowsSelected, rowsSelected) => {\r\n\t\tconst { onRowSelection } = props;\r\n\t\tconst selectedRows = data.filter((dt, index) => rowsSelected.indexOf(index) !== -1);\r\n\t\tonRowSelection(selectedRows);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t ({ ...getMuiTheme(outerTheme) })}>\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nDataTable.propTypes = {\r\n\tid: PropTypes.string.isRequired,\r\n\ttitle: PropTypes.string,\r\n\tdata: PropTypes.array.isRequired,\r\n\tcolumns: PropTypes.array.isRequired,\r\n\toptions: PropTypes.object,\r\n\tpagination: PropTypes.bool,\r\n\tshowDownload: PropTypes.bool,\r\n\tshowPrint: PropTypes.bool,\r\n\tselectableRows: PropTypes.string,\r\n\trowsPerPage: PropTypes.number,\r\n\tfilterType: PropTypes.string,\r\n\ttableBodyCellMaxWidth: PropTypes.string || PropTypes.number,\r\n\tactionColumnWidth: PropTypes.string || PropTypes.number,\r\n\tonRowSelection: PropTypes.func,\r\n\ttableBodyMaxHeight: PropTypes.string\r\n};\r\n\r\nexport default DataTable;\r\n","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"],"sourceRoot":""}